tag:blogger.com,1999:blog-18779196417136490532024-02-08T19:04:48.981+09:00備忘録備忘録(´・ω・`)Unknownnoreply@blogger.comBlogger11125tag:blogger.com,1999:blog-1877919641713649053.post-52403927193801770852012-02-26T16:04:00.001+09:002012-02-26T19:36:38.627+09:00ubuntu 11.10 に python 2.5系をインストール$ wget 'http://python.org/ftp/python/2.5.6/Python-2.5.6.tar.bz2'<br />
$ tar xf Python-2.5.6.tar.bz2<br />
$ cd Python-2.5.6/<br />
<br />
$ ./configure --disable-ipv6 --disable-shared --enable-unicode<br />
<br />
$ make<br />
<br />
running build_ext<br />
/usr/include/sqlite3.h: version 3.7.7<br />
Traceback (most recent call last):<br />
File "./setup.py", line 1545, in <module><br />
main()<br />
File "./setup.py", line 1540, in main<br />
'Lib/smtpd.py']<br />
File "/usr/local/src/works/Python-2.5.6/Lib/distutils/core.py", line 151, in setup<br />
dist.run_commands()<br />
File "/usr/local/src/works/Python-2.5.6/Lib/distutils/dist.py", line 974, in run_commands<br />
self.run_command(cmd)<br />
File "/usr/local/src/works/Python-2.5.6/Lib/distutils/dist.py", line 994, in run_command<br />
cmd_obj.run()<br />
File "/usr/local/src/works/Python-2.5.6/Lib/distutils/command/build.py", line 112, in run<br />
self.run_command(cmd_name)<br />
File "/usr/local/src/works/Python-2.5.6/Lib/distutils/cmd.py", line 333, in run_command<br />
self.distribution.run_command(command)<br />
File "/usr/local/src/works/Python-2.5.6/Lib/distutils/dist.py", line 994, in run_command<br />
cmd_obj.run()<br />
File "/usr/local/src/works/Python-2.5.6/Lib/distutils/command/build_ext.py", line 290, in run<br />
self.build_extensions()<br />
File "./setup.py", line 97, in build_extensions<br />
self.detect_modules()<br />
File "./setup.py", line 810, in detect_modules<br />
sqlite_libdir = [os.path.abspath(os.path.dirname(sqlite_libfile))]<br />
File "/usr/local/src/works/Python-2.5.6/Lib/posixpath.py", line 119, in dirname<br />
return split(p)[0]<br />
File "/usr/local/src/works/Python-2.5.6/Lib/posixpath.py", line 77, in split<br />
i = p.rfind('/') + 1<br />
AttributeError: 'NoneType' object has no attribute 'rfind'<br />
make: *** [sharedmods] Error 1<br />
<br />
コケる c⌒っ゚Д゚)っ<br />
<br />
ライブラリパスを指定<br />
<br />
$ make distclean<br />
$ LDFLAGS="-L/usr/lib/i386-linux-gnu" ./configure --disable-ipv6 --disable-shared --disable-unicode<br />
$ make<br />
creating build/scripts-2.5<br />
copying and adjusting /usr/local/src/works/Python-2.5.6/Tools/scripts/pydoc -> build/scripts-2.5<br />
copying and adjusting /usr/local/src/works/Python-2.5.6/Tools/scripts/idle -> build/scripts-2.5<br />
copying and adjusting /usr/local/src/works/Python-2.5.6/Lib/smtpd.py -> build/scripts-2.5<br />
changing mode of build/scripts-2.5/pydoc from 664 to 775<br />
changing mode of build/scripts-2.5/idle from 664 to 775<br />
changing mode of build/scripts-2.5/smtpd.py from 664 to 775<br />
$ <br />
<br />
こんどは成功(`・ω・´)<br />
<br />
<br />
$ sudo make install<br />
:<br />
Compiling /usr/local/lib/python2.5/zipfile.py ...<br />
make: *** [libinstall] Error 1<br />
<br />
が、しかし・・・ make install 失敗(´・ω・`)<br />
<br />
しょうがないのでエラーを無視でaltinstall<br />
<br />
$ sudo make -i altinstall<br />
<br />
changing mode of /usr/local/bin/smtpd.py to 775<br />
running install_egg_info<br />
Removing /usr/local/lib/python2.5/lib-dynload/Python-2.5.6-py2.5.egg-info<br />
Writing /usr/local/lib/python2.5/lib-dynload/Python-2.5.6-py2.5.egg-info<br />
<br />
これでよしとしようUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-1877919641713649053.post-1711942386720976482012-02-25T22:34:00.001+09:002012-02-25T23:25:01.397+09:00xfce4 で eclipse 使用時に ctrl+F6 ctrl+F7 あたりが効くようにするeclipse使ってて、ctrl+F6とか効かない場合<br />
xfce4のショートカットが邪魔してる<br />
いちおう、debian(xubuntu)とかRedHat系含め、xfce4使ってるなら同じはず<br />
<br />
$ vim ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml<br />
<br />
<property name="&lt;Control&gt;F4" type="string" value="workspace_4_key"/><br />
<property name="&lt;Control&gt;F5" type="string" value="workspace_5_key"/><br />
<property name="&lt;Control&gt;F6" type="string" value="workspace_6_key"/><br />
<property name="&lt;Control&gt;F7" type="string" value="workspace_7_key"/><br />
<br />
あたりを、ばっさり削除する。<br />
<br />
保存後に、ログインし直しでOK<br />
<br />
注意<br />
・ワースペ使ってる場合、ショートカットが無くなる<br />
・設定エディタで、xfce4-keyboard-shortcutsのxfwm4の下を編集すると復活することがあるUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-1877919641713649053.post-75245709568312143812012-02-25T12:52:00.000+09:002012-02-25T12:52:56.103+09:00debian で時間帯を設定する<pre style="background-attachment: initial; background-clip: initial; background-color: #f2ede1; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"><span style="color: #333333;"><span style="line-height: 22px;">$ sudo vim /etc/default/rcS</span></span><span style="color: #333333; font-size: 13px; line-height: 22px;">
</span></pre><div>UTC=no</div><div><br />
</div><div>$ sudo dpkg-reconfigure tzdata</div><div><br />
</div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1877919641713649053.post-1961827222244451972012-01-23T17:00:00.003+09:002012-01-23T17:07:22.970+09:00Hoge.c<div>/*</div><div> ============================================================================</div><div> Name : Hoge.c</div><div> Author : M♂DS</div><div> Version :</div><div> Copyright : M♂DS</div><div> Description : Hoge in C, Ansi-style</div><div> ============================================================================</div><div> */</div><div><br /></div><div>#include <stdio.h></stdio.h></div><div>#include <stdlib.h></stdlib.h></div><div><br /></div><div>#define BUFFLEN 256</div><div><br /></div><div>struct _list {</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>struct _list *prev;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>struct _list *next;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>char buff[BUFFLEN];</div><div>};</div><div><br /></div><div>typedef struct _list LIST;</div><div><br /></div><div>LIST * makeList(LIST *current) {</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>if (current == (LIST *) NULL) {</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>current = (LIST *) calloc(1, sizeof(LIST));</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>current->prev = (LIST *) NULL;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>} else {</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>current->next = (LIST *) calloc(1, sizeof(LIST));</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>current->next->prev = current;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>current = current->next;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>}</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>current->next = (LIST *) NULL;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>return current;</div><div>}</div><div><br /></div><div>int main(void) {</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>LIST *q, *p;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>int i;</div><div><br /></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>p = q = (LIST *) NULL;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>for (i = 0; i < 100; i++) {</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>p = makeList(p);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>if (q == NULL) {</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>q = p;</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>}</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>snprintf(p->buff, BUFFLEN, "hoge %03d", i);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>}</div><div><br /></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>for (p = q; p; p = p->next) {</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>puts(p->buff);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>}</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>return EXIT_SUCCESS;</div><div>}</div><div><br /></div><div>次の案件に備えて11年ぶりくらいに</div><div>C言語を使ってみたが</div><div>意外と忘れてなくて良かったε-(´∀`*)ホッ</div><div><br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1877919641713649053.post-83616025770459824542012-01-23T02:28:00.002+09:002012-01-23T17:08:20.724+09:00.screenrc<div><div># -*- shell-script -*-</div><div><br /></div><div>termcap kterm hs@</div><div>terminfo kterm hs@</div><div>term ansi</div><div>vbell off</div><div>bind w windowlist -b</div><div>hardstatus alwayslastline "%{= gw} %H %{= wk}%-Lw%{= bw}%n%f* %t%{= wk}%+Lw %{= wk}%=%{= gk} %y/%m/%d %c "</div><div>defhstatus I^En:^EtI</div><div>shell -$SHELL</div><div>startup_message off</div><div>autodetach on</div><div>defscrollback 5000</div><div><br /></div><div>bind 'd' setenv DISPLAY</div><div>bind w windowlist -b</div><div>bind ^p paste</div><div>bind p paste</div><div><br /></div><div>bind r eval 'echo "Resize window"' 'command -c resize'</div><div>bind -c resize ^] command</div><div>bind -c resize j eval 'resize +1' 'command -c resize'</div><div>bind -c resize k eval 'resize -1' 'command -c resize'</div><div><br /></div><div>bindkey -m > eval "stuff ' '" writebuf 'exec sh -c "xsel -i -b < /tmp/screen-exchange; sleep 0.1"'</div><div><br /></div><div><br /></div></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1877919641713649053.post-28565719510019981162009-02-23T15:13:00.009+09:002012-01-14T19:13:11.274+09:00Ruby/RailsのためのVim導入(その1)CentOSに付属のvim(vi)は、rubyオプションが有効になっていないので<br />vim-rubyを導入しても正しく動作しない。<br />よってvimの最新版をソースから導入する事にした。<br /><br />作業前に、vimのrubyオプションが無効な事を確認<br /><br />$ vim --version | grep ruby<br />+python +quickfix +reltime +rightleft <span style="font-weight:bold;">-ruby</span> +scrollbind +signs +smartindent<br />つ´Д`)つ<br /><br /><br />ソースをダウンロード<br />$ wget ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2<br />$ wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-extra.tar.gz<br />$ wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz<br />$ tar xvfj vim-7.2.tar.bz2<br />$ tar xvfz vim-7.2-extra.tar.gz<br />$ tar xvfz vim-7.2-lang.tar.gz<br /><br />パッチをダウンロード<br />※ブラウザで、ftp://ftp.vim.org/pub/vim/patches/7.2/ にアクセスして、最新の番号を確認する<br />$ mkdir patches<br />$ cd patches<br />$ wget ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.001-100.gz<br />$ curl -O 'ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.[101-124]'<br />$ cd ../vim72<br />$ zcat ../patches/7.2.* | patch -p0<br /><br />configure<br />※--enable-rubyinterp を付ける<br /><br />$ ./configure --enable-perlinterp --enable-pythoninterp --enable-tclinterp \<br />> <span style="font-weight:bold;">--enable-rubyinterp</span> --enable-multibyte --enable-xim --enable-fontset \<br />> --with-features=big --prefix=$HOME 2>&1 | tee config.log<br /><br />makeして導入<br />$ make 2>&1 | tee make.log<br />$ make install<br />(prefixが、/usr/local とかならsudoを付ける)<br /><br />確認<br />$ $HOME/bin/vim --version | grep ruby<br />+printer -profile +python +quickfix +reltime +rightleft <span style="font-weight:bold;">+ruby</span> +scrollbind <br /><br />・-)<br /><br />参照(っていうか、そのまんま・・・)<br /><a href="http://www.hazama.nu/t2o2/archives/002696.html">http://www.hazama.nu/t2o2/archives/002696.html</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1877919641713649053.post-69974953249052088822008-08-02T18:55:00.011+09:002012-01-14T18:47:58.749+09:00[ruby] rubygems でmysql ライブラリをインストールするmysql-develが入っているか確認する<br /><div class="cmd"><br />$ rpm -qa | grep -i mysql<br />mysql-5.0.45-7.el5<br />mysql-devel-5.0.45-7.el5<br /></div><br />gemでインストールします(そのままだとエラーが出ますね)<br /><div class="cmd"><br />$ sudo /opt/ruby/bin/gem install mysql --no-rdoc --no-ri<br />Building native extensions. This could take a while...<br />ERROR: Error installing mysql:<br /> ERROR: Failed to build gem native extension.<br /><br />/opt/ruby/bin/ruby extconf.rb install mysql --no-rdoc --no-ri<br />checking for mysql_query() in -lmysqlclient... no<br />checking for main() in -lm... yes<br />checking for mysql_query() in -lmysqlclient... no<br />checking for main() in -lz... yes<br />checking for mysql_query() in -lmysqlclient... no<br />checking for main() in -lsocket... no<br />checking for mysql_query() in -lmysqlclient... no<br />checking for main() in -lnsl... yes<br />checking for mysql_query() in -lmysqlclient... no<br />*** extconf.rb failed ***<br />Could not create Makefile due to some reason, probably lack of<br />necessary libraries and/or headers. Check the mkmf.log file for more<br />details. You may need configuration options.<br /><br />Provided configuration options:<br /> --with-opt-dir<br /> --without-opt-dir<br /> --with-opt-include<br /> --without-opt-include=${opt-dir}/include<br /> --with-opt-lib<br /> --without-opt-lib=${opt-dir}/lib<br /> --with-make-prog<br /> --without-make-prog<br /> --srcdir=.<br /> --curdir<br /> --ruby=/opt/ruby/bin/ruby<br /> --with-mysql-config<br /> --without-mysql-config<br />(snip)<br /><br />Gem files will remain installed in /opt/ruby/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.<br />Results logged to /opt/ruby/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out<br /></div><br />mysqlの設定を、mysql-configから取得するように指定<br /><div class="cmd"><br />$ sudo /opt/ruby/bin/gem install mysql --no-rdoc --no-ri <span style="font-weight:bold;">-- --with-mysql-config</span><br />Building native extensions. This could take a while...<br />Successfully installed mysql-2.7<br />1 gem installed<br /></div><br />チェックする(require でmysqlが読み込めればOK)<br /><div class="cmd"><br />$ /opt/ruby/bin/irb -rrubygems<br />irb(main):001:0> require 'mysql'<br />=> true<br />irb(main):002:0> exit<br /></div><br />成功したっぽいUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-1877919641713649053.post-54542976259291950682008-07-28T19:56:00.006+09:002012-01-14T19:10:55.795+09:00[unix] スペースを含むファイル名をfindとxargsで使う方法Mac OS Xみたいに、ディレクトリやファイル名にスペースを含んでいる場合<br />find と xargsをそのまま実行すると<br />スペースの前後で別々の引数として処理される(´・ω・`)<br /><br />・対応方法<br />スペースを区切り文字にするのではなく0(ゼロ、null)を区切り文字にする。<br /><br /><div class="cmd">$ find . -type f <span style="font-weight:bold;">-print0</span> | xargs <span style="font-weight:bold;">-0</span> ls<br /></div>のように<br />find には、<span style="font-weight:bold;">-print0</span><br />xargsには、<span style="font-weight:bold;">-0</span>もしくは<span style="font-weight:bold;">--null</span><br />オプションを指定する。<br /><br />それでも正しく認識せんぞという場合は効率が悪いけど<br />xargs -i と "{}" を書くようにしよう・・・<br /> find -print0 | xargs --null -i ls "{}"Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1877919641713649053.post-7774470736263317862008-07-24T16:31:00.003+09:002008-08-02T19:17:55.258+09:00[bash][小ネタ] read でいろいろ<div class="cmd">$ read -ep 'USERNAME: ' uname<br />$ echo $uname</div><br /><br />-e で、readlineの機能(スクロールバックやCtrl-rでヒストリ検索など)を利用できる。<br />-p で、プロンプトを表示できます。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1877919641713649053.post-12279142677198937882008-07-16T21:08:00.006+09:002008-08-02T19:25:25.696+09:00[nkf] nkfのインストールソースからnkfを入れる<br /><br />http://sourceforge.jp/projects/nkf/ からダウンロード<br /><div class="cmd">$ wget http://iij.dl.sourceforge.jp/nkf/26243/nkf-2.0.8b.tar.gz</div><br /><br /><div class="cmd">$ tar xvfz nkf-2.0.8b.tar.gz<br />$ cd nkf-2.0.8</div><br /><br />Makefileを修正<br /><div class="cmd">$ vi Makefile</div><br /><br />修正内容<br /><div class="cmd">$ diff -dc Makefile.bak Makefile</div><br />*** Makefile.bak 2008-07-16 20:59:16.000000000 +0900<br />--- Makefile 2008-07-16 21:02:19.000000000 +0900<br />***************<br />*** 1,5 ****<br />! CC = cc<br />! CFLAGS = -O<br /> # CFLAGS = -O3<br /> SHAR = shar <br /> # SHAR = shar -T<br />--- 1,5 ----<br />! CC = gcc<br />! CFLAGS = -O3 -Wall<br /> # CFLAGS = -O3<br /> SHAR = shar <br /> # SHAR = shar -T<br /><br />デフォルト出力をutf8にする場合config.hファイルを修正<br /><div class="cmd">$ vi config.h</div><br /><br />config.h 修正内容<br /><div class="cmd">$ diff -dc config.h.bak config.h</div><br />*** config.h.bak 2007-07-25 00:13:03.000000000 +0900<br />--- config.h 2008-07-16 20:58:10.000000000 +0900<br />***************<br />*** 59,68 ****<br /> /******************************/<br /> /* デフォルトの出力コード選択 */<br /> /* Select DEFAULT_CODE */<br />! #define DEFAULT_CODE_JIS<br /> /* #define DEFAULT_CODE_SJIS */<br /> /* #define DEFAULT_CODE_EUC */<br />! /* #define DEFAULT_CODE_UTF8 */<br /> /******************************/<br /> #else<br /> #define DEFAULT_CODE_SJIS<br />--- 59,68 ----<br /> /******************************/<br /> /* デフォルトの出力コード選択 */<br /> /* Select DEFAULT_CODE */<br />! /* #define DEFAULT_CODE_JIS */<br /> /* #define DEFAULT_CODE_SJIS */<br /> /* #define DEFAULT_CODE_EUC */<br />! #define DEFAULT_CODE_UTF8<br /> /******************************/<br /> #else<br /> #define DEFAULT_CODE_SJIS<br /><br />make<br /><div class="cmd">$ make<br /></div><br />インストールは、パスの通っているディレクトリにコピー<br /><div class="cmd">$ sudo cp -p nkf /usr/local/bin/<br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1877919641713649053.post-28271740569106271942008-06-21T15:59:00.007+09:002008-08-02T19:24:06.119+09:00[OpenBSD] pkg_add パッケージの設定ring serverを使うのが良いですね。<br /><div class="cmd"><pre>$ vi .bashrc<br /># PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/`uname -r`/packages/`uname -m`/<br /># PKG_PATH=http://ring.k-opti.com/archives/OpenBSD/`uname -r`/packages/`uname -m`/<br />PKG_PATH=http://www.dnsbalance.ring.gr.jp/archives/OpenBSD/`uname -r`/packages/`uname -m`/<br />export PKG_PATH<br /></pre></div>Unknownnoreply@blogger.com0