VMWareにFreeBSDを入れる。
前に入れたのだけど、うっかり操作ミスで消してしまったのでもう一度入れる。このエントリーは備忘録的に自分がやったこととか失敗とかを書き留める。FreeBSDは7.0。前は最初のインストールの時にPorts Collectionを入れなくて、後から入れようとしてうまくいかなくて挫折した。今回はちゃんとPortsを入れてみたらありとあらゆるもののインストールが楽になった。なんでもmake install。
■ 自分をwheelに追加し忘れたためsuできない
exitしてrootで入り直し、/etc/gruop をviで開いてwheelに自分を追加した。cf. suコマンドを実行可能なユーザーを限定するには
■ sshでログインする
VMWareの画面からコピペする方法がわからないから。いちいちCtrl+Altしたり画面をクリックしたりするのも面倒だしね。sshはインストール時にONにした。ifconfigでIPアドレスを調べる。ちなみにVMWareはブリッジモードにしてある。
■ emacsが入っていない
# cd /usr/ports/editors/emacs/ # make
makeじゃなくてmake installか。っていうか最初に入れるべきなのはEmacsじゃなくてscreenかも。DLしている間に他の作業をした方が効率が…。bgにしてscreenを入れることにした。
# cd /sysutils/screen/ # make install
screen使うのは初めて。C-a cとC-a ?だけとりあえず覚えた。cairoのインストールのところで問い合わせ画面を出して止まっていた。fgしてOpenGLは必要ないと答えた。グラフィックライブラリらしい。cairo - Wikipedia
screen入った。C-a cで新しい画面を作ってC-a C-aで直前のに戻る。とりあえずEmacsがmakeされただけでインストールされていないのでmake install。
■ bashが入っていない
# cd /usr/ports/shells/zsh/ # make install
rehash して which zsh。/usr/local/bin/zsh に入っていた。 chsh でシェルの設定を書き換える。
■ subversionを入れる
cd /usr/ports/ で make search name="subversion" | less をしてSubversionが /usr/ports/devel/subversion にあるのを確認。make install。
■ Djangoを入れる。
- ■ pythonが入っているか確認→2.5.1が入っていた
- ■ subversionを入れる
とりあえず今手元の開発環境に入っているのはrev5728なのでそれを入れる。動作確認が済んでから新しいバージョンに差し替える。差し替えが簡単なように適当な場所にチェックアウトしておいてシンボリックリンクでインストールする。
# cd /home/nishio/ # mkdir django/rev5726/ mkdir: django: No such file or directory # mkdir django # mkdir django/rev5726/ # cd django/rev5726/ # svn co -r 5726 http://code.djangoproject.com/svn/django/trunk/ trunk (snip) # cd /usr/local/lib/python2.5/site-packages/ # ln -s /home/nishio/django/rev5726/trunk/django/ django # ln -s /home/nishio/django/rev5726/trunk/django/bin/django-admin.py /usr/local/bin
試す。
# rehash # dj[C-d] django-admin.py djpeg # django-admin.py (snip) # django-admin.py startproject hoge # ls hoge # cd hoge/ # ./manage.py runserber # miss(typo) Error: Your action, 'runserber', was invalid. Run "./manage.py --help" for help. # ./manage.py runserver Validating models... 0 errors found. Django version 0.97-pre, using settings 'hoge.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
さて、サーバが立ち上がったのでブラウザでhttp://10.89.107.52:8000/にアクセスしてみる。あれ、みれない。ああ、そうか、デフォルトでは127.0.0.1にバインドしているから外のマシンからはみれないんだ。
# ./manage.py runserver 0.0.0.0:80 Validating models... 0 errors found. Django version 0.97-pre, using settings 'hoge.settings' Development server is running at http://0.0.0.0:80/ Quit the server with CONTROL-C.
これでhttp://10.89.107.52/にアクセスしてみると、うん、ちゃんとみれた。OK。
■ easy_install
- ■ easy_installを入れる
- ■ pygmentsをeasy_install Pygmentsで入れる
# curl http://peak.telecommunity.com/dist/ez_setup.py curl: Command not found. # wget http://peak.telecommunity.com/dist/ez_setup.py wget: Command not found.
おっと。
# pushd /usr/ports/ /usr/ports /home/nishio/tmp # make search name="curl" | less (snip) # cd /usr/ports/ftp/curl # make install
# popd (snip) # curl -O http://peak.telecommunity.com/dist/ez_setup.py (snip) # python ez_setup.py # rehash # easy_install Pygments
■ pysqliteを入れる
記録を取るのをすっかり忘れていた。historyコマンドで過去に入力したコマンドを確認してみる。
# make search name=pysqlite # cd databases/py-pysqlite23 # make install
■ memcached, cmemcachedを入れる
これもhistoryから発掘。
memcachedとcmemcachedを入れようと思ったのだけどcmemcachedがなかったのでとりあえずlibmemcachedを入れた。
cd databases/memcached make install /usr/local/etc/rc.d/memcached /usr/local/etc/rc.d/memcached start cd ../../ make search name=libmem cd databases/libmemcache/ make install
cmemcachedは公式サイトからダウンロードして入れた。
curl -O http://gijsbert.org/downloads/cmemcache/cmemcache-0.91.tar.bz2 tar -xzvf cmemcache-0.91.tar.bz2 cd cmemcache-0.91 python setup.py install
■ MySQLを入れる
/usr/ports/databases/
cd mysql51-server make install
screenで同時にmysql51-clientも入れようとしたら「Cコンパイラが実行可能なファイルを作れない」という謎のエラーが出た。同時にやってはいけない。serverだけもう一度インストールしたら問題なく入った。clientはserverに含まれている。
■ Apacheを入れる
portsでapache22を入れた。
Failed to enable the 'httpready' Accept Filter
と怒られる。
/boot/loader.confに以下を追加.
accf_http_load="YES"
http://www.cozmixng.org/~rwiki/?cmd=view;name=Apache
# emacs /usr/local/etc/apache22/httpd.conf
/etc/rc.confに「apache22_enable="YES"」を追加。ついでに「mysql_enable="YES"」も。
うまく動かない。エラーメッセージが表示されないがプロセスも存在しない。/usr/local/etc/rc.d/apache22 rcvarとやってYESと表示されるのを確認する。NOだった。apache22_enableにしないといけないのにapache2_enableって書いていた。それでも動かない。/var/log/httpd-error.logを読むと下のようなエラーが出ていた。
[Thu May 01 15:41:17 2008] [alert] (EAI 8)hostname nor servname provided, or not known: mod_unique_id: unable to find IPv4 address of "*******"
/etc/hostsの「127.0.0.1 localhost」と書いてあるところを「127.0.0.1 localhost *******」に変更する。動いた!
■ sudo
sudoを入れた後、visudoして、「wheelグループの人が全部のコマンドを起動できる」という設定の頭のコメントを外して保存(削除:x、保存して終了:ZZ)
■ mod_python, mod_fcgi
■ flup
mod_fastcgiを使うためにはflupが必要らしい。
http://trac.saddi.com/flup
> curl -O http://www.saddi.com/software/flup/dist/flup-1.0.tar.gz > tar -xvzf flup-1.0.tar.gz > cd flup-1.0 > sudo python setup.py install
あっさり。