2005年7月9日土曜日

(QEMU)FreeBSDのportsを使う

今回は、FreeBSDのパッケージ管理システム、portsを使ってみます。
バイナリパッケージは、ある環境を想定してコンパイルされた、「既製服」のようなものです。一方、portsを使うと、自分の環境に合わせて、オーダーメイドでソフトウェアをインストールできます。



ただし、オーダーメイドにするために、portsは、一生懸命、ソースファイルからコンパイルします。そのため、インストールに時間がかかってしまいます。また、それなりにディスク容量を食います。
QEMU内のFreeBSDは、それなりに処理能力が低いですから、状況に応じて、portsとpackageを使い分けるのがいいんじゃないでしょうか。



私は、FreeBSDでは、もう6年くらいまえから、パッケージは一切使わず、ぜんぶportsで、自前でコンパイルしてインストールしています。そのほうが、トラブルが少ないんですよ。



■ これまでのおさらい




■ 準備



  1. QEMUのFreeBSDを実行する


  2. ttssh(teraterm ssh)で、FreeBSDにログインし、ポートフォワーディングによって、FreeBSDからインターネットにアクセスできるようにする。PuTTYは調子わるいので、ttsshを使う!


  3. FreeBSD内でのプロキシーサーバの設定確認。これまでの流れではこうなる。

setenv http_proxy http://localhost:8080/
setenv ftp_proxy  http://localhost:8080/
setenv no_proxy   localhost


■ 最新のportsを入手



このへん
ftp://ftp2.jp.freebsd.org/pub/FreeBSD/ports/ports-stable/ports.tar.gz
に、最新のportsがあるので、ダウンロードします。

freebsd# cd /usr
freebsd# fetch ftp://ftp2.jp.freebsd.org/
pub/FreeBSD/ports/ports-stable/
ports.tar.gz

ports.tar.gz                                  100% of   26 MB  468 kBps 00m00s

/usr以下で、ports.tar.gzを展開します。/usr/ports/以下に、いろいろなディレクトリがある、という配置になります。

freebsd# pwd
/usr
freebsd# tar zxf ports.tar.gz

ファイルports.tar.gzの展開は、QEMU内で実行するには、けっこう重い処理のようで、時間がかかります。私のパソコンでは、7~8分もかかりました。

freebsd# ls /usr/ports/
.cvsignore      audio           french          mbone           sysutils
CHANGES         benchmarks      ftp             misc            textproc
LEGAL           biology         games           multimedia      ukrainian
MOVED           cad             german          net             vietnamese
Makefile        chinese         graphics        net-mgmt        www
Mk              comms           hebrew          news            x11
README          converters      hungarian       palm            x11-clocks
Templates       databases       irc             polish          x11-fm
Tools           deskutils       japanese        portuguese      x11-fonts
UPDATING        devel           java            print           x11-servers
accessibility   dns             korean          russian         x11-themes
arabic          editors         lang            science         x11-toolkits
archivers       emulators       mail            security        x11-wm
astro           finance         math            shells


■ portsでPHP4をインストールしてみる



なぜか、パッケージのPHPは、Apacheバージョン1.3.x用にコンパイルされています。以前インストールしたのは、Apacheバージョン2.0.xなので、PHPをパッケージではインストールできません。そこで、portsを使ってインストールする、というわけです。



  PHPは、あることをするのに必要になるので・・・詳細は後日



コンパイルするときの条件を指定します。

freebsd# cd /usr/ports/lang/php4/
freebsd# make config

「Use apache 2.x instead of apache 1.3.x」に、Xマークをつけます。
よくわからないけどMULTIBYTEもイネーブルしてみました。



ports01



コンパイルします。

freebsd# make
===>  Vulnerability check disabled, database not found
===>  Found saved configuration for php4-4.3.11_1
=> php-4.3.11.tar.bz2 doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://br.php.net/distributions/.
php-4.3.11.tar.bz2                             17% of 3918 kB  186 kBps
(このあと、それなりに時間がかかります)
(依存するほかのツールも、自動的にインストールされます)

インストールします。

freebsd# make install
===>  Installing for php4-4.3.11_1
===>   php4-4.3.11_1 depends on file: /usr/local/sbin/apxs - found
===>   Generating temporary packing list
(省略)



***************************************************************



Make sure index.php is part of your DirectoryIndex.



You should add the following to your Apache configuration file:



AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps



***************************************************************
===>   Compressing manual pages for php4-4.3.11_1
===>   Registering installation for php4-4.3.11_1

コンパイルしたときに、いろいろなファイルが作られるので、それを削除します。

freebsd# make clean

portsを使ってのソフトウェアのインストールは、以上のような流れになります。一番簡単なやり方は、

cd /usr/ports/なんとか/かんとか/
make install clean

とするだけです。



■ php4-extensionsをインストール

あとでmbstringやMYSQLなどを必要とするツールがあるので、そのために、php4-extensionsをインストールします。方法は、php4のときと同じ。

configを行います。

freebsd# cd /usr/ports/lang/php4-extensions/
freebsd# make config

MBSTRINGと、GDを追加し、Xマークをつけるは、以下のものになります。



  • CTYPE


  • GD


  • MBSTRING


  • MYSQL


  • OVERLOAD


  • PCRE


  • POSIX


  • SESSION


  • TOKENIZER


  • XML


  • ZLIB


ports02




makeします。

freebsd# make
===>  Vulnerability check disabled, database not found
===>  Found saved configuration for php4-extensions-1.0
===>  Extracting for php4-extensions-1.0
===>  Patching for php4-extensions-1.0
===>  Configuring for php4-extensions-1.0
freebsd# make install
===>  Installing for php4-extensions-1.0
===>   php4-extensions-1.0 depends on file: /usr/local/include/php/main/php.h -
found
===>   php4-extensions-1.0 depends on file: /usr/local/lib/php/20020429/ctype.so
- not found
===>    Verifying install for /usr/local/lib/php/20020429/ctype.so in /usr/ports
/textproc/php4-ctype
(以下略)

インストールします。
いくつかのportsで、configのメニューが表示されるので、それぞれ適当に設定します。

freebsd# make install

インストールが終わったら、make cleanでお掃除。



というわけで、portsを使ってのインストールは、makeと入力して、あとはのんびりまっていれば、しばらくすれば終わってる、という感じです。



次回、PHP4をつかった、何かをインストールします。





0 件のコメント:

コメントを投稿