FrontPage | changes | index | create | search | preferences |

ports

Last-Modified: Sat Mar 22 21:46; by KM
edit | copy | diff | rlog | raw
  1. portsからのアプリケーションの追加と削除
    1. 基本的なインストール方法
    2. アンインストール
    3. 再インストール
  2. portsツリーの更新
    1. cvsupによる更新
      1. fastest_cvsupの利用例
    2. portsnapによる更新
  3. 関連情報

FreeBSDに移植されたアプリケーション群のこと。

各プログラムをコンパイルするためのMakefile、パッチ等の集大成である。

アプリケーションを導入しやすいよう、予め、各portをコンパイルし、そのバイナリをtarボールで固めて配布される形式のものは、packagesと呼ばれる。

FreeBSDには、portsをメンテナンスするために便利なツール群が、数多く用意されている。

portsからのアプリケーションの追加と削除

 通常、/usr/ports以下に、カテゴリ別に分けられたディレクトリがあり、その中に、各portのディレクトリが置かれている。もし、portsツリーが存在しないようであれば、FreeBSDのFTPサイトから最新のものを取り寄せる事が出来る。

基本的なインストール方法

 portsからアプリケーションをインストールするには、まず、カレントディレクトリを目的のportが置かれているディレクトリに移し、そのディレクトリ内で、makeコマンドを実行してビルドを行う必要がある。

 例えば、Emacsと言うエディタをインストールしたいのなら、

 # cd /usr/ports/editors/emacs

とカレントディレクトリを移動し、そこで、

 # make

を実行することにより、自動的に、ソースファイルを取り寄せて、展開し、ビルドが開始される*1。この間、ターゲットとするportsをビルドする為に、必要なportsが他にあれば、それらもビルドされ自動的にインストールされる。

 ビルドが終了し、それをインストールするには、

 # make install

を実行すると、インストールするための処理が始まる。

 無事、インストールが完了し、ビルドの際に出来た一時ファイル等が不要になれば、

 # make clean

を実行することにより、それらを削除することが出来る*2

 インストールされたportsの情報は、通常、/var/db/pkg/以下に記録される。

*1導入されるportによっては、この間、ビルドする際のオプションを選択するメニュー画面が立ち上がるといったものがあるが、そこで選んだオプションは、/var/db/ports/以下に保存され、次回からは省略される。もし、ビルドオプションを変更してビルドしたい場合は、「make config」を実行する。

*2但し、「make clean」だけでは、アプリケーションを構築するためにダウンロードしてきたファイルは削除されないので、それも含めて削除したい場合は、「make distclean」を実行する。

アンインストール

 また、インストールしたportが不要であれば、該当するportのあるディレクトリで、

 # make deinstall

を実行する事により、アンインストールすることが出来る。

ただし、以下で述べる「portsツリーの更新」を行って、既にインストールされているportとportsツリー上との間に、バージョンの食い違いが生じた場合、この方法ではアンインストールできない。既にインストールされたアプリケーションに関する情報は、portspackagesとを問わず、/var/db/pkg以下のディレクトリに、アプリケーションの名前にバージョン番号をつけて保存されるので、

 pkg_delete ${アプリケーション名}-${バージョン番号}

もしくは、

 pkg_delete /var/db/pkg/${アプリケーション名}-${バージョン番号}

を実行することによっても、削除することができる。

インストール

 さらに、該当portsに対し「make clean」で、作業ディレクトリを消去していない事が前提であるが、

 # make reinstall

を実行することにより、再インストールすることが出来る。

portsツリーの更新

 portsは絶えず更新されています。ローカルのportsツリーを最新の状態と同期するためには、cvsup等のコマンドが必要です。

cvsupによる更新

 cvsup(1)は、

  • /usr/ports/net/cvsup-without-gui/

のportから導入することが出来ます。

 # cd /usr/ports/net/cvsup-without-gui/
 # make install && make clean

 cvsupをインストールしたら、/etc/make.confに、次のように書き足します。

 SUP_UPDATE=     yes
 SUP=            /usr/local/bin/cvsup
 SUPFLAGS=       -g -L 2
 SUPHOST=        cvsup.jp.FreeBSD.org
 PORTSSUPFILE=   /usr/share/examples/cvsup/ports-supfile

 こうすることにより、

 # cd /usr/ports/
 # make update

と実行するだけで、portsツリーを更新することが出来ます。

fastest_cvsupの利用例

 ただ、SUPHOSTを固定してしまうと、そのcvsupサーバーにアクセスが集中した場合などは、一時的に接続できなくなってしまい、長く待たされてしまう可能性があります。

 sysutils/fastest_cvsupというportが用意されているので、使ってみると便利です。これは、各cvsupサーバーにアクセスして、現在の速度等をレポートしてくれるというものです。例えば、日本にあるcvsupサーバー*3の状況を知りたい場合、

 # fastest_cvsup -c jp

とする事により、日本国内の各サーバーの現在の速度をレポートしてくれます。 make updateと併用するには、次のように*4すると良いでしょう。

 # make SUPHOST=`fastest_cvsup -Q -c jp` update

こうする事により、国内の一番速いcvsupサーバーに接続し、portsの更新を行えるはずです。

*3現在、日本には、6箇所のcvsupサーバーがある。

*4逆クオートであることに注意。

portsnapによる更新

FreeBSD 6.0からは、ベースシステムにportsnap(8)というコマンドが加わりました*5。cvsupと同様、portsツリーの内容を最新の状態に保つために用います。cvsupは独自のプロトコルを使用するため、ファイアーフォール環境下では使用できない場合がありますが、こちらの方は、HTTPプロトコルが開放されていれば問題はなく、通信の暗号化も行われているので、cvsupよりもセキュアであるといえます。また、最新のINDEXも高速に生成してくれます。

使い方は、まず、

 # portsnap fetch

を実行し、作業に必要なファイルを取り寄せます。取り寄せたファイル群は、

  • /var/db/portsnap

以下に格納されます*6

必要なファイルが揃えば、

 # portsnap extract

を実行することにより、それらは、通常、/usr/ports以下に展開され、INDEXも生成されます。

次回からは、同様に、

 # portsnap fetch

を実行すると、更新分だけを取得することができます。

そして、

 # portsnap update

と実行することにより、差分のみを/usr/ports以下に適用出来ます。

*5以前のバージョンのFreeBSDでも、ports-mgmt/portsnapに同様のものが用意されているので、個別に導入して使用する事が出来る。

*6大体、50MB程度の容量が必要になる。

関連情報


  • FreeBSD/packages - アプリケーションを導入しやすいよう、予め、各portをコンパイルし、そのバ...
  • FreeBSD/portaudit -  ports-mgmt/portauditをインストールすると、既に導入さ...
  • FreeBSD - このWikiフォーラム内におけるFreeBSDに関係するものの目次です。 ...