diff --git a/ja_JP.eucJP/books/handbook/book.xml b/ja_JP.eucJP/books/handbook/book.xml
index 6301d20b27..b2ceee4d8a 100644
--- a/ja_JP.eucJP/books/handbook/book.xml
+++ b/ja_JP.eucJP/books/handbook/book.xml
@@ -1,326 +1,326 @@
%entities;
%chapters;
%txtfiles;
]>
FreeBSD ハンドブック
FreeBSD ドキュメンテーションプロジェクト
1999 年 2 月
$FreeBSD$
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
The FreeBSD Documentation Project
&legalnotice;
&tm-attrib.freebsd;
&tm-attrib.3com;
&tm-attrib.3ware;
&tm-attrib.arm;
&tm-attrib.adaptec;
&tm-attrib.adobe;
&tm-attrib.apple;
&tm-attrib.corel;
&tm-attrib.creative;
&tm-attrib.cvsup;
&tm-attrib.heidelberger;
&tm-attrib.ibm;
&tm-attrib.ieee;
&tm-attrib.intel;
&tm-attrib.intuit;
&tm-attrib.linux;
&tm-attrib.lsilogic;
&tm-attrib.m-systems;
&tm-attrib.macromedia;
&tm-attrib.microsoft;
&tm-attrib.netscape;
&tm-attrib.nexthop;
&tm-attrib.opengroup;
&tm-attrib.oracle;
&tm-attrib.powerquest;
&tm-attrib.realnetworks;
&tm-attrib.redhat;
&tm-attrib.sap;
&tm-attrib.sun;
&tm-attrib.symantec;
&tm-attrib.themathworks;
&tm-attrib.thomson;
&tm-attrib.usrobotics;
&tm-attrib.vmware;
&tm-attrib.waterloomaple;
&tm-attrib.wolframresearch;
&tm-attrib.xfree86;
&tm-attrib.xiph;
&tm-attrib.general;
FreeBSD へようこそ!
このハンドブックは FreeBSD &rel2.current;-RELEASE
と FreeBSD &rel.current;-RELEASE
のインストールおよび、日常での使い方について記述したものです。
本ハンドブックは改編作業中であり、
さまざまな人々が編集に携わっています。
いま存在するセクションの中には情報が古くなってしまったため、
更新作業の必要があるものも含まれています。
もし、このハンドブックを編集するプロジェクトに協力したいとお考えなら、
&a.doc; まで電子メールを(英語で)送ってください。
この文書の最新バージョンは、いつでも
日本国内版の
FreeBSD ウェブサイト および
FreeBSD ウェブサイト
から入手できます
(この文書の以前のバージョンは
から入手できます)。
また、他のさまざまな文書形式、圧縮形式のものが
FreeBSD FTP
サーバ や数多くの ミラーサイト
からダウンロードできます。
このハンドブックの書籍版 (英語版) は、
FreeBSD Mall
から購入できます。
また、ハンドブックの検索
を行なうこともできます。
FreeBSD ハンドブック日本語版の作成は FreeBSD
日本語ドキュメンテーションプロジェクト (FreeBSD doc-jp) がおこなっています。
ハンドブックの日本語訳に関することは FreeBSD &a.jp.doc-jp;
において日本語で議論されています。
文書の日本語訳に関するお問い合わせや、
文書の原文に関する問い合わせをしたいが英語が得意でないという方は
FreeBSD &a.jp.doc-jp; まで、日本語でコメントをお寄せください。
&chap.preface;
導入
FreeBSD ハンドブックの第 1 部はユーザと
FreeBSD が初めての管理者向けです。各章の内容は以下のとおりです。
FreeBSD の紹介
インストールの手順の解説
&unix; の基礎
FreeBSD で利用できる豊富なサードパーティ製のアプリケーションの
インストール方法
&unix; におけるウィンドウシステム X、
およびクリエイティブなデスクトップ環境の設定の詳細の紹介
このハンドブックでは頻繁にページを飛すことなく前から後へと
スムーズに読み進めるように、
後方への参照を極力抑えるようにしています。
&chap.introduction;
- &chap.install;
&chap.bsdinstall;
+ &chap.install;
&chap.basics;
&chap.ports;
&chap.x11;
日々の生活
第 1 部では基礎的なことがらを説明したので、
FreeBSD ハンドブックの第 2 部では
FreeBSD でよく使われる機能について説明します。
各章の内容は以下のとおりです。
ブラウザ、生産的なツール、ドキュメントビューアといった、
人気があって便利なデスクトップアプリケーションの紹介
FreeBSD で利用可能なマルチメディアツールの紹介
システムで特別な機能を有効にするために、
カスタムカーネルを構築する手順の説明
デスクトップおよびネットワーク接続両方のプリンタの設定に関する、
印刷システムの詳細な説明
FreeBSD システムで Linux アプリケーションを実行する方法
これらの章では、読み飛ばしを推奨しているものもあります。
これについてはそれぞれの章の始めにある概要に書かれています。
&chap.desktop;
&chap.multimedia;
&chap.kernelconfig;
&chap.printing;
&chap.linuxemu;
システム管理
FreeBSD ハンドブックの以下の章は、
FreeBSD のシステム管理の面について書かれています。
各章のはじめでは、その章で学ぶ内容や
実際に取り組む前に知っておくべきことについて説明します。
各章は、必要になった時に個別に参照できるように構成されています。
どの順番で読んでも構いませんし、FreeBSD を使うのに、
すべてを読み通す必要がある、というわけでもありません。
&chap.config;
&chap.boot;
&chap.users;
&chap.security;
&chap.mac;
&chap.disks;
&chap.geom;
&chap.l10n;
&chap.cutting-edge;
ネットワーク通信
FreeBSD は、高性能なネットワークサーバとして最も広く使用されているオペレーティングシステムの 1 つです。
各章の内容は以下の通りです。
シリアル通信
PPP と PPP オーバイーサネット (PPPoE)
電子メール
ネットワークサーバの運用
ファイアウォール
その他の高度なネットワークに関する話題
各章は、必要になった時に個別に参照できるように構成されています。
どの順番で読んでも構いませんし、ネットワーク環境で FreeBSD を使うのに、
すべてを読み通す必要がある、というわけでもありません。
&chap.serialcomms;
&chap.ppp-and-slip;
&chap.mail;
&chap.network-servers;
&chap.firewalls;
&chap.advanced-networking;
付録
&chap.mirrors;
&chap.bibliography;
&chap.eresources;
&chap.pgpkeys;
&freebsd-glossary;
&chap.index;
&chap.colophon;
diff --git a/ja_JP.eucJP/books/handbook/ports/chapter.xml b/ja_JP.eucJP/books/handbook/ports/chapter.xml
index be71be5e8b..ea88f508cf 100644
--- a/ja_JP.eucJP/books/handbook/ports/chapter.xml
+++ b/ja_JP.eucJP/books/handbook/ports/chapter.xml
@@ -1,2099 +1,2099 @@
アプリケーションのインストール - packages と ports
この章では
ports
packages
FreeBSD の基本システムには数多くのシステムツールが含まれています。
しかしながら、サードパーティ製のアプリケーションをインストールしないと、
実用的にはそれほどたくさんのことはできません。
FreeBSD は、サードパーティ製のソフトウェアの導入を支援するために、
ソースコードをコンパイルしてインストールする Ports Collection と、
コンパイル済みのバイナリをインストールする packages
という相補的な 2 つの技術を提供しています。
どちらのシステムを用いても、ローカルメディアやネットワーク上からお気に入りのアプリケーションの最新版をインストールできます。
この章を読むと、以下のことがわかります。
packages を用いてサードパーティ製のソフトウェアをバイナリからインストールする方法
Ports Collection を用いてサードパーティ製のソフトウェアをソースコードからコンパイルする方法
インストールした packages や ports を削除する方法
Ports Collection が用いるデフォルトの設定を変更する方法
お望みのソフトウェア package を探しだす方法
アプリケーションをアップグレードする方法
ソフトウェアのインストール
&unix; システムを使ったことのある人なら、
サードパーティ製ソフトウェアの典型的なインストール手順が以下のようになることをご存知でしょう。
ソースコード、
またはバイナリ形式で配布されているソフトウェアをダウンロードする。
配布時のフォーマット (一般的には
&man.compress.1;, &man.gzip.1; または &man.bzip2.1;
で圧縮された tarball) からソフトウェアを取り出す。
ドキュメント (INSTALL または
README ファイル、あるいは
doc/ サブディレクト中のファイル) を探しだし、
ソフトウェアのインストール方法を調べる。
ソース形式でソフトウェアが配布されている場合はコンパイルを行う。
ここでは、Makefile の編集、
または、configure スクリプトの実行、
あるいは他の作業を伴うことがある。
ソフトウェアの動作を確認し、インストールする。
すべてがうまくいったならば、インストール作業は以上です。
もしインストールしているソフトウェアパッケージが、
FreeBSD を意識して移植されたものでなければ、
適切に動くようコードを調べ、編集する必要があるかもしれません。
あなたが望むのであれば、FreeBSD 上へのソフトウェアのインストールに
従来
の方法を使い続けることができます。
しかしながら、FreeBSD は
インストール時にかかるたくさんの労力を軽減する 2 つの技術、
すなわち packages と ports を提供しています。
この文書を書いている時点では、&os.numports;
を越えるサードパーティ製アプリケーションがこれらの方法で利用可能となっています。
FreeBSD package では、いかなるアプリケーションに対しても
ダウンロードする必要のあるファイルはただ一つです。
package には、コンパイル済みのアプリケーションの全コマンド、
各種設定ファイルやドキュメントが含まれています。
FreeBSD に用意されている
&man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1;
といった package 管理コマンドで、
ダウンロードした package ファイルを扱うことができます。
新しいアプリケーションをインストールするには、
たった一つのコマンドを実行するだけです。
FreeBSD port は、
アプリケーションをソースコードからコンパイルする際の処理を自動化するように設計されたファイルの集まりです。
プログラムをコンパイルする時のことを思い出して下さい。
通常、とてもたくさんの手順
(ダウンロード、展開、パッチ作業、コンパイル、インストール)
を踏まなくてはなりません。
port を構成するファイルは、
これらすべての作業をあなたの代わりに行うために必要な情報を含んでいます。
いくつかの簡単なコマンドを実行すると、
自動的にアプリケーションのソースコードがダウンロードされ、展開、
パッチ作業、コンパイル、そして、インストール作業が行われます。
さらに ports システムは、pkg_add
コマンドや他の package 管理コマンドで扱うことのできる
packages を生成できます。
これらのコマンドについては後の節で簡単に紹介します。
packages と ports は依存関係を理解します。
ある特定のライブラリに依存する
アプリケーションをインストールするとします。
また、アプリケーションとライブラリは FreeBSD ports や packages によって
入手可能であるとします。
アプリケーションを追加するために
pkg_add コマンドまたは ports システムを用いると、
インストールされていないライブラリが検出され、
先に依存するライブラリが自動的にインストールされます。
2 つの技術が非常に類似していて、
なぜ FreeBSD がわざわざ両者を採用しているのか不思議に思うでしょう。
packages と ports にはそれぞれ独自の特徴があり、
どちらを使うかはあなたの好みによります。
package の利点
一般的に、あるアプリケーションの package の tarball は、
ソースコードを含む tarball より小さなサイズとなります。
packages はコンパイル作業を必要としません。
このことは、Mozilla,
KDE,
または GNOME
といった大きなアプリケーションで重要となります。
特にシステムが遅い場合にはなおさら重要です。
packages を用いれば、
ソフトウェアのコンパイルに関する知識は必要ありません。
ports の利点
packages は、通常最も多くのシステムで実行できるように、
非常に保守的な設定で構築されています。
port からインストールすることで、
たとえば Pentium 4 や Athlon
プロセッサに特化したコードを生成するような
コンパイルオプションを指定できます。
アプリケーションのなかには、コンパイル時に
プログラムの機能を決めるようなオプションを設定するものがあります。
たとえば、Apache は多種多様な
ビルトインオプションを設定できます。
port から構築することで、デフォルトオプションではなく、
自分でオプションを設定することができます。
設定を区別するために、同じアプリケーションに対して
複数の packages が存在することがあります。
たとえば、Ghostscript は
X11 サーバーがインストールされているかどうかにより、
ghostscript package と
ghostscript-nox11 package
が選択可能となっています。
packages でもこのような方法が可能ですが、
アプリケーションのコンパイルオプションがさらに用意されている場合は困難となります。
ライセンス条項で、
バイナリでの配布を禁止しているソフトウェアがあります。
それらはソースコードで配布されなくてはいけません。
バイナリ配布を信用していない人もいます。
ソースコードがあれば、少なくともソースコードを読んで
(理論的には) 潜在的な問題点を自分で見つけ出すことができます。
ローカルなパッチがある場合、
それを適用するためにソースコードが必要になります。
ソースコードを手元に置いておきたい人たちもいます。
彼らは、退屈したときに眺めたり、あちこち解析してみたり、
ソースコードを借用したり (もちろん、
ライセンスが許せばの話ですが) するのです。
ports の更新状況を把握するために、
&a.ports; や &a.ports-bugs; を購読するとよいでしょう。
アプリケーションをインストールする前に、
そのアプリケーションに関連したセキュリティ上の問題がないことを
で確認してください。
また、
インストールされているアプリケーションに既知の脆弱性がないことを自動的に調べる
ports-mgmt/portaudit
をインストールしてもよいでしょう。
このコマンドは、ビルド前の port についても調査します。
インストールされている packages を確認する場合には、
portaudit -F -a コマンドを使ってください。
この章では、packages と ports を用いた FreeBSD 上での
サードパーティ製ソフトウェアのインストール方法や管理方法について説明します。
アプリケーションの探し方
どんなアプリケーションをインストールするにしても、
まずあなたが何を望んで、
またその名前がなんというのかを理解している必要があります。
FreeBSD 上で利用可能なアプリケーションのリストは常に増えています。
幸運にも、多くの方法で望むものを探すことができます。
FreeBSD ウェブサイトは、
利用可能なすべてのアプリケーションの最新の一覧を、検索できる形で
http://www.FreeBSD.org/ja/ports/
において公開しています。
ports はカテゴリに分類されています。
アプリケーションは、(名前を知っているならば) 名前で検索でき、
あるカテゴリで利用可能なアプリケーションをすべて表示させることもできます。
FreshPorts
Dan Langille は
で FreshPorts を公開しています。
FreshPorts は ports ツリー中のアプリケーションの変更を追跡します。
一つまたはそれ以上の ports を 監視
することができ、
変更があるとメールで更新情報を送ってくれます。
Freecode
ご希望のアプリケーションの名前がわからなければ、
Freecode ()
のようなサイトでアプリケーションを探して下さい。
その後、そのアプリケーションが ports で利用可能かどうかを
FreeBSD サイトで調べて下さい。
port の正確な名前を知っていて、
どのカテゴリに分類されているのかを知りたいだけなら、
&man.whereis.1; コマンドで調べることができます。
単に whereis file
と入力してください。file
の部分にはインストールしたいプログラム名を入れます。
システム上でプログラムが見つかったら、
そのプログラムのパスが次のように表示されます。
&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsof
この表示は、lsof (システムユーティリティの一つ) が
/usr/ports/sysutils/lsof
というディレクトリにあることを示しています。
さらに、以下の例のように &man.echo.1; を使って
port が存在するかどうかを簡単に調べることもできます。
&prompt.root; echo /usr/ports/*/*lsof*
/usr/ports/sysutils/lsof
この方法では /usr/ports/distfiles
以下にダウンロードされたファイル名にもマッチします。
また、Ports Collection に備わっている検索機能を利用して
port を検索する方法もあります。
この検索機能を利用するには、カレントディレクトリが
/usr/ports である必要があります。
そのディレクトリに移動したら、
make search
name=プログラム名
と入力してください。
プログラム名の部分には検索したいプログラム名を入れます。
たとえば、lsof
を探したい場合には次のようにします。
&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps:
出力のうち特に注意して見なければならないのは
Path:
という行です。
この行は port がどこにあるかを示しています。
出力される他の情報は port
をインストールする際には必要となるものではありませんので、
ここでは触れないでおきます。
さらに、ports を検索するもう一つの機能があります。
これは quicksearch と呼ばれる機能で、
出力される情報がより絞られます。
この機能では search と同じパラメータを受け付けます。
たとえば、lsof を検索すると以下のように出力されます。
&prompt.root; cd /usr/ports
&prompt.root; make quicksearch name=lsof
Port: lsof-4.87.a,7
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
もっと詳しく検索するには、
make search
key=string または
make quicksearch
key=string
と入力してください。
string
の部分には検索したいテキストを入れます。
port 名、コメント、説明文および依存情報が検索されます。
探しているプログラムの名前を知らない場合でも、
ある目的に関連した ports の検索に利用できます。
どちらの場合 (search
および quicksearch) でも、
検索文字列中の大文字と小文字を区別せずに検索が行われるので、
LSOF
を検索した結果は、
lsof
と同じ検索結果になります。
Chern
Lee
寄稿:
packages システムの利用
FreeBSD には packages を管理するツールが複数あります。
sysinstall
からシステムに packages をインストールしたり削除できます。
また、インストールされた packages や利用可能な packages の一覧を表示できます。
詳細については、
を参照してください。
この章では、コマンドラインの
package 管理ツールについて説明します。
package のインストール
packages
インストール
pkg_add
&man.pkg.add.1; は、ローカルファイルやネットワーク上のサーバから
FreeBSD ソフトウェア package を
インストールするためのユーティリティです。
手動で package をダウンロードしてローカルからインストールする
&prompt.root; ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp> get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp> exit
&prompt.root; pkg_add lsof-4.56.4.tgz
(FreeBSD CD-ROM セットのような)
ローカルな packages がない場合は、
&man.pkg.add.1; に オプションをつける方が楽でしょう。
このユーティリティは、このオプションを指定して実行すると
自動的に適切なオブジェクトの形式とリリースを判断し、
package を FTP サイトからダウンロードしてインストールします。
pkg_add
&prompt.root; pkg_add -r lsof
上の例では適当な package がダウンロードされた後、インストールされます。
ユーザはこのほかに何もする必要はありません。
メインの配布サイトではなく
&os; Package ミラーサイトの package を使うには、
PACKAGESITE
環境変数に利用したいサイトを設定してください。
&man.pkg.add.1; は、FTP_PASSIVE_MODE,
FTP_PROXY, FTP_PASSWORD
といった環境変数を参照する &man.fetch.3;
を用いてファイルをダウンロードします。
ファイアウォールの内側であったり、
FTP/HTTP プロキシを使う場合には、
これらの環境変数を設定することになります。
環境変数の一覧については &man.fetch.3; をご覧ください。
また、上の例で lsof-4.56.4 の代わりに
lsof を使っていることに注意してください。
リモートフェッチ機能を使用する場合には、
package のバージョン番号を取り除かなければなりません。
&man.pkg.add.1; は自動的に最新版のアプリケーションを取得します。
&os.current; または、&os.stable; を使用している場合、
&man.pkg.add.1; は最新版のアプリケーションをダウンロードします。
-RELEASE を使用している場合には、
そのバージョンのリリース時にビルドされた package がダウンロードされます。
この設定は PACKAGESITE を上書きすることで変更できます。
たとえば、&os; 8.1-RELEASE を使用している場合には、
&man.pkg.add.1; を実行するとデフォルトで
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/
から packages をダウンロードします。
もし、&man.pkg.add.1; を使って
&os; 8-STABLE の packages をダウンロードしたければ、
PACKAGESITE 環境変数を
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/
に設定してください。
package は .tgz や .tbz
という拡張子を持つファイルとして配布されており、
や FreeBSD CD-ROM にあります。
FreeBSD 4-CD セット (または PowerPak など) の CD はすべて、
/packages ディレクトリに packages
があります。packages のレイアウトは、
/usr/ports ツリーのものと同様です。
カテゴリごとにディレクトリがあり、
All ディレクトリにはすべての package
があります。
package システムのディレクトリ構造は ports のレイアウトと同一です。
両者が組み合わさって package/port システムが構成されます。
packages の管理
packages
管理
&man.pkg.info.1; は、インストールされている
packages の一覧と説明を表示するユーティリティです。
pkg_info
&prompt.root; pkg_info
colordiff-1.0.13 A tool to colorize diff output
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...
&man.pkg.version.1; は、インストールされている
packages のバージョンを要約して表示するユーティリティです。
package のバージョンを、現在の ports ツリーのバージョンと
比較します。
pkg_version
&prompt.root; pkg_version
colordiff =
docbook =
...
2 列目の記号は、インストールされているバージョンの
ローカル ports ツリーのバージョンに対する
新旧を表します。
記号
意味
= インストールされている
package のバージョンは、
ローカル ports ツリーのものと一致しています。
<
インストールされているバージョンは、
ローカル ports ツリーのものより古いです。
>インストールされているバージョンは、
ローカル ports ツリーのものより新しいです
(おそらくローカル ports ツリーは古くなっています)。
?インストールされた package を
ports インデックスの中に見つけることができません
(インストールされた port が Ports Collection から削除されたり、
名前が変更された場合などに起こります)。
*複数のバージョンの
package が存在します。
!インストールされた package
はインデックス中に存在しますが、何らかの理由で、
インストールされた package
のバージョン番号をインデックス中のエントリと比較できません。
package の削除
pkg_delete
packages
削除
インストールされている package を削除するには、
&man.pkg.delete.1; ユーティリティを使ってください。
&prompt.root; pkg_delete xchat-1.7.1
&man.pkg.delete.1; は package 名とバージョン番号の両方を必要とします。
すなわち、先ほどの例において
xchat-1.7.1 を
xchat とした場合には動作しません。
インストールされている package のバージョンは、
&man.pkg.version.1; を使うと簡単に調べることができます。
バージョン番号のかわりにワイルドカードも使えます。
&prompt.root; pkg_delete xchat\*
上の例では、名前が xchat で始まるすべての packages が削除されます。
その他
package に関するすべての情報は
/var/db/pkg ディレクトリ以下に置かれています。
このディレクトリの下にあるファイルの中に、
インストールされたファイルの一覧やインストールされた各 package
についての説明が含まれています。
pkgng によるバイナリ
package の管理
pkgng は、&os; における伝統的な
pkg_install package
管理ツールの置き換えであり、バイナリ packages をより早く、
より簡単に管理できるようにする数多くの機能を提供します。
pkgng の最初のリリースは
2012 年 8 月に行われました。
pkgng は ports-mgmt/portmaster や ports-mgmt/portupgrade などの
port 管理ツールの置き換えではありません。
ports-mgmt/portmaster および
ports-mgmt/portupgrade は、
サードパーティ製ソフトウェアをバイナリ packages と
Ports Collection の両形式からインストールできますが、
pkgng はバイナリ packages
のみをインストールします。
pkgng 入門
&os; 9.1 以降では、
pkgng のための "ブートストラップ"
ユーティリティが用意されています。
ブートストラップユーティリティは pkgng
をダウンロードし、インストールします。
システムをブートストラップするためには、
以下を実行してください。
&prompt.root; /usr/sbin/pkg
これより前のバージョンの &os; では、Ports Collection
または packages を用いてインストールする必要があります。
pkgng port
をインストールするには以下を実行してください。
&prompt.root; cd /usr/ports/ports-mgmt/pkg
&prompt.root; make
&prompt.root; make install clean
package からインストールするには以下を実行してください。
&prompt.root; pkg_add -r pkg
pkgng package 管理ユーティリティは、
&os; 7.X および
&os; 8.0 には対応していません。
&os; のインストールがすでに行われているようなシステムでは、
pkg_install package
データベースを新しいフォーマットへ変換する必要があります。
変換を行うには以下を実行してください。
&prompt.root; pkg2ng
このステップは、
サードパーティ製ソフトウェアがまだインストールされていないような、
新しくインストールされた直後のシステムでは必要ありません。
このステップは非可逆です。
一度 package データベースを pkgng
フォーマットへと変換したら、pkg_install
ツールを使うべきではありません。
package データベースを変換する際には、
新しいバージョンへのデータ変換に伴ったエラーが出力されることがあります。
通常、これらのエラーは無視して構いませんが、
pkg2ng 終了後に表示される、
変換に失敗したサードパーティ製ソフトウェアの一覧については、
これらのソフトウェアを手動で修正する必要があります。
&os; のバージョンが
10.X より前であれば、
以下の行を /etc/make.conf に追加して、
&os; Ports Collection がソフトウェアの登録に、
pkg_install
ではなく pkgng
を用いるように設定してください。
WITH_PKGNG= yes
pkgng 環境の設定
pkgng package 管理システムでは、
ほとんどのコマンドに対して package リポジトリを使います。
デフォルトの package リポジトリは
/usr/local/etc/pkg.conf または
PACKAGESITE 環境変数で定義されます。
この環境変数は、設定ファイルを上書きします。
その他の pkgng
の設定オプションは、pkg.conf(5) に記述されています。
基本的な pkgng の操作
pkgng の利用情報は、
man.pkg(8) のマニュアルページや、
pkg を引数なしに実行すると表示されます。
各 pkgng コマンドの引数は、
コマンドに固有なマニュアルページに記述されています。
たとえば、pkg install のマニュアルページを読むには、
以下を実行してください。
&prompt.root; pkg help install
&prompt.root; man pkg-install
pkgng を使ってインストールされた
package の情報を得るには
pkg info を実行すると、
システムにインストールされている package 情報が得られます。
&man.pkg.info.1; 同様、すべての package のバージョン、
および説明の一覧が表示されます。
ある特定の package の情報が必要であれば、
以下を実行してください。
&prompt.root; pkg info packagename
たとえば、システムにインストールされている
pkgng の情報を調べるには、
以下のように実行してください。
&prompt.root; pkg info pkg
pkg-1.0.2 New generation package manager
pkgng
を用いた packages のインストールと削除
通常、ほとんどの &os; ユーザは、バイナリパッケージを
pkg install
packagename
でインストールすることでしょう。
&prompt.root; pkg install packagename
で説明した通り、
pkg install はリポジトリデータを使用します。
これとは反対に、pkg-add(8) はリポジトリデータを用いなければ、
定義されている PACKAGESITE も使いません。
そのため、依存関係は適切には追跡されず、
足りない依存についてもリモートホストからダウンロードされません。
この節では pkg install の使用方法について説明します。
pkg add の使用方法については pkg-add(8)
をご覧ください。
追加のバイナリ package は、
pkg install によりインストールされます。
たとえば、
curl をインストールするには以下を実行してください。
&prompt.root; pkg install curl
Updating repository catalogue
Repository catalogue is up-to-date, no need to fetch fresh copy
The following packages will be installed:
Installing ca_root_nss: 3.13.5
Installing curl: 7.24.0
The installation will require 4 MB more space
1 MB to be downloaded
Proceed with installing packages [y/N]: y
ca_root_nss-3.13.5.txz 100% 255KB 255.1KB/s 255.1KB/s 00:00
curl-7.24.0.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00
Checking integrity... done
Installing ca_root_nss-3.13.5... done
Installing curl-7.24.0... done
新しい package と依存関係から追加された package は、
インストール済み package 一覧に表示されます。
&prompt.root; pkg info
ca_root_nss-3.13.5 The root certificate bundle from the Mozilla Project
curl-7.24.0 Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
pkg-1.0.2 New generation package manager
必要のなくなった packages は、
pkg delete を使って削除できます。
たとえば、curl が必要なくなったら、
以下のようにして削除できます。
&prompt.root; pkg delete curl
The following packages will be deleted:
curl-7.24.0_1
The deletion will free 3 MB
Proceed with deleting packages [y/N]: y
Deleting curl-7.24.0_1... done
pkgng による package
のアップグレード
pkg version
を用いて古くなった packages を見つけることができます。
ローカルに ports ツリーがない場合には、
pkg-version(8) は、リモートリポジトリのカタログを利用します。
そうでなければ、ローカルの ports ツリーを使って
package のバージョンを同定します。
pkgng を用いて
package を新しいバージョンにアップグレードできます。
curl
の新しいバージョンがリリースされた場合には、ローカル package
を以下のようにして新しいバージョンにアップグレードできます。
&prompt.root; pkg upgrade
Updating repository catalogue
repo.txz 100% 297KB 296.5KB/s 296.5KB/s 00:00
The following packages will be upgraded:
Upgrading curl: 7.24.0 -> 7.24.0_1
1 MB to be downloaded
Proceed with upgrading packages [y/N]: y
curl-7.24.0_1.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00
Checking integrity... done
Upgrading curl from 7.24.0 to 7.24.0_1... done
pkgng による package
の検証
時折、Ports Collection
に含まれているソフトウェアに脆弱性が見つかることがあります。
pkgng は、ports-mgmt/portaudit package
同様の検証機能を持っています。
システムにインストールされているソフトウェアを検証するには、
以下のように実行してください。
&prompt.root; pkg audit -F
高度な pkgng の利用
pkgng によるリーフ依存 ports
の自動削除
package を削除すると、不必要な依存 ports、たとえば上の例では
security/ca_root_nss
が残されることがあります。
これらの packages は、
インストールされたままでどこからも依存されていません。
依存のために導入され、現在は不必要になった package は、
以下のようにすると自動的に検出され、削除されます。
&prompt.root; pkg autoremove
Packages to be autoremoved:
ca_root_nss-3.13.5
The autoremoval will free 723 kB
Proceed with autoremoval of packages [y/N]: y
Deinstalling ca_root_nss-3.13.5... done
pkgng package
データベースのバックアップ
pkg_install
package 管理システムとは異なり、
pkgng には package
データベースをバックアップするメカニズムがあります。
package データベースの内容を手動でバックアップするには、
以下を実行してください。
&prompt.root; pkg backup -d pkgng.db
ファイル名の pkgng.db
を適切なファイル名に置き換えてください。
さらに、pkgng は
package データベースを毎日自動的にバックアップする
&man.periodic.8; スクリプトを含んでいます。
&man.periodic.conf.5; の中で、
daily_backup_pkgng_enable を
YES に設定するとバックアップされます。
pkg_install
の定期的なスクリプトが、
package データベースを同様にバックアップすることを避けるためには、
&man.periodic.conf.5; の中で、
daily_backup_pkgdb_enable を
NO に設定してください。
過去にバックアップした package
データベースの中身をリストアするには、以下を実行してください。
&prompt.root; pkg backup -r /path/to/pkgng.db
古くなった pkgng package
の削除
デフォルトでは、pkgng
はキャッシュディレクトリにバイナリ packages を保存します。
このディレクトリは、pkg.conf(5) の
PKG_CACHEDIR 変数で定義されます。
pkg upgrade を使って packages
をアップグレードする際には、
アップグレードされた package
の古いバージョンは自動的には削除されません。
システムから古いバイナリ package を削除するには、
以下を実行してください。
&prompt.root; pkg clean
pkgng package
メタデータの変更
歴史的に &os; Ports Collection
は、メジャーバージョン番号の変更に対応できます。
pkg_install とは異なり、
pkgng には、
package の情報をアップデートするコマンドが組み込まれています。
たとえば、lang/php5 のバージョンが、もともとは
5.3 で、5.4
がリリースされたことに伴い
lang/php53
へと名前が変更される場合、
pkg_install では、
package のデータベースを、
どの port がインストール元であったかという情報を変更するために
ports-mgmt/portmaster
のような別のソフトウェアを必要とします。
ports-mgmt/portmaster および
ports-mgmt/portupgrade
ports とは異なり、引数に与えるバージョンの新、旧の順番は異なります。
pkgng での構文は、pkg set -o
category/oldport:category/newport となります。
たとえば、上記の例の package の情報を変更するには、
以下のように実行してください。
&prompt.root; pkg set -o lang/php5:lang/php53
別の例として、lang/ruby18 を lang/ruby19 にアップデートするには、
以下のようにしてください。
&prompt.root; pkg set -o lang/ruby18:lang/ruby19
最後の例として、
libglut 共有ライブラリの情報を graphics/libglut から graphics/freeglut へと変更するには、
以下のように実行してください。
&prompt.root; pkg set -o graphics/libglut:graphics/freeglut
package の情報を変更したら、多くの場合、
情報が変更された package に依存している
packages を再インストールすることが重要となります。
依存 packages を再インストールするには、
以下のように実行してください。
&prompt.root; pkg install -Rf graphics/freeglut
Ports Collection の利用
このセクションでは、Ports Collection
を利用してシステムにプログラムをインストールしたり、
システムから削除したりする基本的な手順について説明します。
利用可能な make のターゲットや環境変数についての詳細は
&man.ports.7; をご覧ください。
&os; Ports プロジェクトは、2012 年にバージョン管理システムを
CVS から Subversion へと移行しました。
一般的な ports の利用において推奨される方法は
Portsnap です。
ローカルで ports をカスタマイズしたい
(すなわち、ローカルで追加のパッチをメンテナンスしたい)
と考えているユーザは、直接 Subversion を使うとよいでしょう。
CVSup のサービスは、
2013 年 2 月 28 日までに段階的に廃止されるので、
今後 CVSup の利用を進めることは、推奨されません。
Ports Collection の準備
Ports Collection とは、/usr/ports
以下に置かれる Makefile, 修正パッチ、
説明文などの一連のファイルのことです。このファイルのセットは、
アプリケーションを構築して &os; にインストールするのに用いられます。
以下では、&os; のセットアップ時に Ports Collection をインストールしなかった場合に、
Ports Collection を準備する方法について示します。
Portsnap を利用する方法
Portsnap は Ports Collection
を取得するための速くて使いやすく、
多くのユーザに推奨されるツールです。
Portsnap の機能についての詳細は
Portsnap を使う
の節を参照してください。
圧縮された Ports Collection のスナップショットを
/var/db/portsnap
にダウンロードしてください。
&prompt.root; portsnap fetch
初めて Portsnap を使う時は、
スナップショットをまず /usr/ports に展開してください。
&prompt.root; portsnap extract
上で示した Portsnap
を初めて利用する際に行うコマンドを実行した後は、
以下のコマンドで
/usr/ports
をアップデートできます。
&prompt.root; portsnap update
Subversion を用いる方法
たとえば、ローカルで変更点をメンテナンスする状況のように、
ports ツリーの管理が必要な場合には、
Subversion を使って
Ports Collection を取得する方法があります。
Subversion のより詳細な説明については、
Subversion Primer を参照してください。
Subversion
を使って ports ツリーをチェックアウトする前に、
Subversion
をインストールしておく必要があります。
ports ツリーがすでにインストールされていれば、
以下のようにして Subversion
をインストールできます。
&prompt.root; cd /usr/ports/devel/subversion
&prompt.root; make install clean
ports ツリーがなければ、package から
Subversion をインストールできます。
&prompt.root; pkg_add -r subversion
package の管理に pkgng
を使っているのであれば、代わりに以下のようにして
Subversion をインストールできます。
&prompt.root; pkg install subversion
ports ツリーをチェックアウトしてください。
パフォーマンスを良くするため、以下のコマンドにおいて、
svn.FreeBSD.org を Subversion
ミラー
の中から地理的に近い場所にあるミラーに置き換えてください。
コミッタの方々は、最初に Subversion
Primer を読んで、適切なプロトコルを選択してください。
&prompt.root; svn checkout svn://svn.FreeBSD.org/ports/head /usr/ports
Subversion
でチェックアウトした後、
/usr/ports
をアップデートするには、以下を実行してください。
&prompt.root; svn update /usr/ports
sysinstall を利用する方法
ここでは、sysinstall
を利用してインストールメディアから Ports Collection
をインストールする方法について説明します。
この方法では、リリース時の古い Ports Collection
がインストールされることに注意してください。
もし、インターネットへの接続が可能であれば、
これまでに説明した方法を使ってください。
root ユーザ権限で、以下のように
sysinstall を実行してください。
&prompt.root; sysinstall
スクロールダウンして Configure を選び、
Enter を押してください。
スクロールダウンして Distributions を選び、
Enter を押してください。
スクロールダウンして ports を選び、
Space キーを押してください。
Exit までスクロールアップして、
Enter を押してください。
CDROM や FTP といったインストールメディアを選択してください。
Exit までスクロールアップして、Enter
を押してください。
X を押して、
sysinstall を終了してください。
CVSup/csup
から portsnap への移行
2013 年 2 月 28 日までに
ports ツリーの CVS
へのエクスポートは終了します。
そのため、CVSup および
csup を用いて ports
ツリーをアップデートすることはできなくなります。
Portsnap への移行
移行に際しては、
/usr に約
1 GB のディスク容量と、
さらに Portsnap
は約 150 MB のディスク容量を /var に必要とします。
もし &man.cron.8; を使って
CVSup
csup を実行するなど、
自動的な ports のアップデートを行なっているのであれば、
停止してください。
現在の ports ツリーを一時的に別の場所に移動します。
&prompt.root; mv /usr/ports /usr/ports.old
新しい ports ツリーを
Portsnap を使ってダウンロードして、
/usr/ports
に展開してください。
&prompt.root; portsnap fetch extract
distfiles および保存されている packages を新しい
port ツリーに移動してください。
&prompt.root; mv /usr/ports.old/distfiles /usr/ports
&prompt.root; mv /usr/ports.old/packages /usr/ports
古い ports ツリーを削除してください。
&prompt.root; rm -rf /usr/ports.old
もし CVSup
を使用していたのであれば、アンインストールできます。
&prompt.root; pkg_delete -r -v cvsup-without-gui-\*
pkgng のユーザは、
以下のコマンドを使って削除できます。
&prompt.root; pkg delete cvsup-without-gui
Portsnap の詳細と、
Portsnap を用いた
ports ツリーのアップデート方法については、
Portsnap
を使う の節を読んでください。
ports のインストール
ports
インストール
一番最初に知らなければならないのは、
Ports Collection は スケルトン
と呼ばれるもので構成されているという事実です。
port スケルトンは簡単に言うと、アプリケーションを FreeBSD
上で正しくコンパイルしインストールする方法を提供する最小限のファイルのセットのことです。
それぞれの port スケルトンには、次のファイルが含まれています。
Makefile。
Makefile
にはアプリケーションのコンパイル方法やシステムのどこにインストールするかを指定する、
さまざまな命令文が含まれています。
distinfo ファイル。
このファイルには、その port
を構築するためにダウンロードする必要があるファイルのファイル名と、
それらのファイルがダウンロードによって壊れていないかを
(&man.sha256.1; を使って)
確認するためのチェックサム情報が含まれています。
files ディレクトリ。
このディレクトリには FreeBSD
システム上でプログラムをコンパイルし、
インストールするための修正パッチが含まれています。
修正パッチ (patch) とは基本的に、
個々のファイルに対する変更点を表した小さなファイル群のことです。
ファイルはプレインテキスト形式で、
10 行目を削除
や
26 行目を ... に変更
などと書かれています。
修正パッチは、diff (差分)
とも呼ばれます。
これは、修正パッチが &man.diff.1;
プログラムで作成されるからです。
このディレクトリには、その port の構築に必要な
その他のファイルが入る場合もあります。
pkg-descr ファイル。
これにはプログラムの、複数行にわたる詳しい説明文が含まれます。
pkg-plist ファイル。
これは、その port によってインストールされる全ファイルのリストです。
これにはプログラムを削除する際に、
どのファイルを削除すれば良いのかを ports
システムに伝える役割もあります。
これらの他に pkg-message
といったファイルを含む ports もあります。
ports システムは、
このようなファイルを用いて特殊な状況にも対応しています。
これらのファイルについての詳細および
ports の一般的な説明については、port
作成者のためのハンドブック をご覧下さい。
port はソースコードからアプリケーションを構築する方法を提供しますが、
実際のソースコードを含んではいません。
ソースコードは CD-ROM やインターネットから入手できます。
ソースコードはソフトウェア作者のお気に入りの形式で配布されます。
たいてい、tar と gzip で作成された圧縮アーカイブとして配布されますが、
他のツールで圧縮されていたり、圧縮されずに配布されることもあります。
どのような形式で配布されているかに関わらず、
これらのプログラムのソースコードは distfile
と呼ばれています。
以下では &os; port をインストールする 2 つの方法について説明します。
ports をインストールするには、
root としてログインする必要があります。
port をインストールする前に、
Ports Collection が最新であることを確認してください。
また、そのアプリケーションに関連したセキュリティ上の問題がないことを
で確認してください。
アプリケーションをインストールする前に、
portaudit を使って
セキュリティに関する脆弱性を自動的に調べることができます。
このツールは Ports Collection (ports-mgmt/portaudit) に用意されています。
新しく port をインストールする前に、
portaudit -F コマンドを実行すると、
最新の脆弱性に関するデータベースがダウンロードされます。
セキュリティの検査およびデータベースの更新は、
日々のセキュリティチェックで行なわれます。
詳しくは、&man.portaudit.1; および &man.periodic.8;
のマニュアルページを参照してください。
Ports Collection は、ネットワークに接続できることを想定しています。
もし接続できなければ、distfile のコピーを
/usr/ports/distfiles
に手動で置いてください。
まず、インストールしたい port のディレクトリに移動してください。
&prompt.root; cd /usr/ports/sysutils/lsof
lsof ディレクトリに移動すると、
port スケルトンがあるのが確認できると思います。
次に行なうのは、port のコンパイルまたは
ビルド (build)
です。
これは、プロンプトから単に
make と入力するだけで行なえます。
そうすると、次のような出力が現われるはずです。
&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===> Extracting for lsof-4.57
...
[extraction output snipped]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[configure output snipped]
...
===> Building for lsof-4.57
...
[compilation output snipped]
...
&prompt.root;
コンパイルが終了してプロンプトに戻ることを確認してください。
次に port のインストールを行ないます。
port をインストールするのに必要なのは、
make コマンドに一つの単語、
install を指定することだけです。
&prompt.root; make install
===> Installing for lsof-4.57
...
[installation output snipped]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;
プロンプトに戻ったら、
インストールしたプログラムは実行できるようになっています。
lsof は高い権限で動作するプログラムなので、
セキュリティに関する警告が表示されます。
ports のコンパイルや
インストール中に表示されるこれらの警告に注意してください。
コンパイル時に作成される作業用ディレクトリを削除すると良いでしょう。
このディレクトリにはコンパイル時に使用されるすべての一時ファイルが含まれています。
このディレクトリを残しておくと、ディスク容量を消費するだけでなく、
port を新しいバージョンへアップデートする際に問題を引き起こす可能性があります。
&prompt.root; make clean
===> Cleaning for lsof-4.57
&prompt.root;
make、make install
および make clean
と三つに分けられた手順の代わりに、
最初から make install clean と実行することで、
余分な手順を二つ省くことができます。
デフォルトでは、ユーザに port
のオプションを選択させる設定のため、
最初から make
install
を使って port をインストールすると、
ユーザとの対話が起こり長時間待たされることがあります。
依存する port の数が多い場合には、一つの
port をインストールするだけでも大変面倒なことになる可能性があります。
これを避けるには、まず最初に make
config-recursive
を実行して設定を一括で行い、その後
make install
[clean] を実行してください。
config-recursive を実行する際、
&man.make.1; のターゲットである
all-depends-list
を実行すると、設定すべき ports の一覧を得ることができます。
多くの場合は、すべての依存 ports のオプションが定義され、
ports オプションの &man.dialog.1; 画面が表示されなくなり、
すべてのオプションが意図通りに設定されたことを確認できるまで
make
config-recursive
を実行すると良いでしょう。
シェルによってはコマンドの実行ファイルを探す時間を短縮するために、
環境変数 PATH に登録されている
ディレクトリのコマンド一覧をキャッシュするものがあります。
このようなシェルを使っているのであれば、
port をインストールしたあとで、
新しくインストールされたコマンドを用いる前に、
rehash コマンドを実行する必要があります。
このコマンドは tcsh などのシェルで動作します。
sh のようなシェルを使っているのであれば
hash -r を実行してください。
詳細については、
あなたの使っているシェルのドキュメントをご覧ください。
FreeBSD
Mall の FreeBSD Toolkit のようなサードパーティ製の DVD-ROM
製品の中には distfiles を収録しているものがあります。
これらを Ports Collection で使うことができます。
DVD-ROM を /cdrom にマウントしてください。
ほかのマウントポイントを使用したければ、
CD_MOUNTPTS 変数を設定してください。
ディスク上に必要な distfiles が存在すると、
自動的に利用されます。
port には CD-ROM
への収録を許可しないライセンス条項を持つものがあることに
注意してください。
これにはダウンロード前に登録を必要としたり、
再配布が禁止されているなどという理由があります。
CD-ROM に含まれていない port をインストールしたい場合には、
ネットワークに接続する必要があります。
ports は、FTP_PASSIVE_MODE,
FTP_PROXY, FTP_PASSWORD
といった環境変数を参照する &man.fetch.1;
を用いてファイルをダウンロードします。
ファイアウォールの内側であったり、
FTP/HTTP プロキシを使う場合には、
これらの環境変数を設定することなります。
環境変数の一覧については &man.fetch.3; をご覧ください。
ネットワークに常時接続できないユーザのために
make fetch
コマンドが用意されています。
(ネットワークに接続している時に) このコマンドを
ports のトップディレクトリ
(/usr/ports) で実行してください。
必要なファイルがダウンロードされます。
このコマンドは /usr/ports/net
といった、より下の階層のカテゴリにおいても使うことができます。
ある port がライブラリやその他の ports に依存している場合には、
それらの distfiles
はダウンロードされないことに注意してください。
port が依存しているものもダウンロードしたければ
fetch の代わりに
fetch-recursive を使って下さい。
前述した make fetch
と同じように、トップディレクトリで make
を実行するとすべての port がビルドされます。
しかしながら ports の中には同時に存在できないものがあったり、
異なる ports の別のファイルが同じ名前で
インストールされる場合があることに注意してください。
めったにないことかもしれませんが、
MASTER_SITES (ファイルをダウンロードしてくる場所)
に書かれているサイト以外から tarball
を持ってくることが必要になる場合があります。
そのような場合には以下のように
MASTER_SITES を変更してください。
&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch
上の例では MASTER_SITES を
ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/
に変更しています。
ports の中にはビルドオプションを指定できる
(または要求してくる) ものがあります。
このオプションを指定することで、
アプリケーションの機能の一部を有効もしくは無効にできます。
また、セキュリティオプションを設定したり、
その他のカスタマイズを行うことができます。
このようなアプリケーションには
www/firefox,
security/gpgme や
mail/sylpheed-claws
などがあります。
利用可能なオプションがある場合にはメッセージが表示されます。
ports ディレクトリの変更
作業ディレクトリやターゲットディレクトリを
デフォルトのものから変更したほうが有用な場合
(もしくは変更しなければならない場合) があります。
WRKDIRPREFIX 変数と
PREFIX 変数を変更することで、
違うディレクトリを使用することができます。
たとえば、
&prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install
とすると、ports は /usr/home/example/ports
でコンパイルされ、すべて /usr/local
以下にインストールされます。
&prompt.root; make PREFIX=/usr/home/example/local install
この場合、コンパイルは /usr/ports
でおこない、
/usr/home/example/local
にインストールします。
もちろん、
&prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install
とすれば両者を組み合わせることが可能です
(省略せずに記述したらこのページに収めるには長すぎるのですが、
考え方は理解していただけたと思います)。
あるいは、これらを環境変数に設定する方法もあります。
どのようにすれば良いかについては、
あなたの使っているシェルのマニュアルページを参照してください。
imake の使用
(X Window System に含まれる) imake を使用する
ports の場合は PREFIX が機能せず、
/usr/X11R6 にインストールしようとします。
また、Perl 関連の ports も同様に PREFIX を無視して
Perl ツリーにインストールします。
これらの ports で PREFIX
がきちんと参照されるように変更するのは、ほとんど不可能です。
ports の再構築
ports をコンパイルする際、ビルドオプションを設定するために
ncurses ベースのメニューが表示されることがあります。
port の構築後、再びこのメニューを表示させてオプションの追加や削除、設定の変更を行いたいと思うことがあるでしょう。
このための方法はたくさんあります。
一つ目の方法は port のディレクトリに移動し、
make config と入力する方法です。
現在の設定を反映させたメニューが再び表示されます。
別の方法は make showconfig
を使う方法です。
port の設定可能なオプションがすべて表示されます。
他の方法は make rmconfig
の実行です。
このコマンドを実行すると選択されているすべてのオプションが削除され、
設定をもう一度やり直すことができます。
これらの方法や他の方法についての詳細は、
&man.ports.7; マニュアルで説明されています。
インストールした ports の削除
ports
削除
ports のインストール方法について知ればおそらく、
インストールした後になって間違っていたことに気付いた時などに備えて、
それらを削除するにはどうすれば良いのか疑問に感じることでしょう。
さて、前の例 (例のまま何も変更していない人は
lsof)
を削除してみましょう。
packages を削除する時とまったく同じく (packages の章 で説明したように)
&man.pkg.delete.1; コマンドで ports を削除できます。
&prompt.root; pkg_delete lsof-4.57
ports のアップグレード
ports
アップグレード
まず最初に &man.pkg.version.1; コマンドを使って、
古くなってしまった ports
の中で新しいバージョンにアップデート可能なものを
Ports Collection からリストアップしてください。
&prompt.root; pkg_version -v
- /usr/ports/UPDATING
+ /usr/ports/UPDATING を読む
Ports Collection を更新したら、port をアップグレードする前に
/usr/ports/UPDATING
ファイルに目を通してください。
このファイルには
port をアップグレードする際にユーザが遭遇するであろう問題や、
追加で必要な作業などが記述されています。
例えば、ファイル形式の変更や設定ファイルの場所の変更、
前のバージョンと互換性がなくなったことなどが書かれています。
もし、この節に書いてあることと
UPDATING に書かれていることが矛盾している場合には、
UPDATING を優先してください。
portupgrade を用いた ports のアップグレード
portupgrade
portupgrade は、
インストールした ports
のアップグレードを簡単に行なうためのユーティリティです。
ports-mgmt/portupgrade
port から利用できます。
他の port と同じように make install
clean コマンドでインストールしてください。
&prompt.root; cd /usr/ports/ports-mgmt/portupgrade
&prompt.root; make install clean
pkgdb -F コマンドを使って、
インストールされている ports を調べてください。
矛盾が検出された場合には修復してください。
アプリケーションをアップデートする前には、
この作業を定期的に行なうとよいでしょう。
portupgrade -a を実行すると、
portupgrade
はシステムにインストールされている port
の中で古くなったものをすべてアップデートします。
もし、すべての ports
に対して個別にアップグレードするかどうかを確認したいのであれば、
オプションを使ってください。
&prompt.root; portupgrade -ai
ports で利用可能なすべてのアプリケーションではなく、
ある特定のアプリケーションだけを更新したいのであれば、
portupgrade pkgname
を実行してください。
アップグレードするアプリケーションが依存しているすべての
ports をまず先に更新したい場合には、
オプションを使ってください。
&prompt.root; portupgrade -R firefox
ports ではなく packages を用いてインストールを行ないたい場合には、
オプションを使ってください。
このオプションを使うと、portupgrade は
PKG_PATH に登録されているローカルディレクトリを検索します。
ローカルに packages が見つからなければ、
リモートサイトからダウンロードを試みます。
packages をローカルに見つけることができず、
リモートサイトからもダウンロードできない場合には、
portupgrade
は ports からインストールを行ないます。
ports を使用したくなければ、
オプションを指定してください。
&prompt.root; portupgrade -PP gnome2
また、ビルドやインストールを行なわず、
distfiles ( が指定されている場合は packages)
だけをダウンロードしたければ、
オプションを指定してください。
詳細は &man.portupgrade.1; を参照してください。
Portmaster を用いた ports のアップグレード
portmaster
インストールした ports
のアップグレードを行うためのもう一つのユーティリティが
Portmaster です。
Portmaster は、
どの ports をアップグレードすべきかの判断を、
(他の ports に依存せずに) base
システムのツールと
/var/db/pkg/
の情報から行うよう設計されています。
ports-mgmt/portmaster
から利用できます。
&prompt.root; cd /usr/ports/ports-mgmt/portmaster
&prompt.root; make install clean
Portmaster は、ports を 4 つのカテゴリに分類します。
Root ports (他の port に依存しません。他の port からも依存されません。)
Trunk ports (他の port に依存しませんが、他の port から依存されます。)
Branch ports (他の port に依存し、他の port からも依存されます。)
Leaf ports (他の port に依存しますが、他の port からは依存されません。)
オプションを使うと、
インストールした ports やアップデート可能な port の一覧が表示されます。
&prompt.root; portmaster -L
===>>> Root ports (No dependencies, not depended on)
===>>> ispell-3.2.06_18
===>>> screen-4.0.3
===>>> New version available: screen-4.0.3_1
===>>> tcpflow-0.21_1
===>>> 7 root ports
...
===>>> Branch ports (Have dependencies, are depended on)
===>>> apache-2.2.3
===>>> New version available: apache-2.2.8
...
===>>> Leaf ports (Have dependencies, not depended on)
===>>> automake-1.9.6_2
===>>> bash-3.1.17
===>>> New version available: bash-3.2.33
...
===>>> 32 leaf ports
===>>> 137 total installed ports
===>>> 83 have new versions available
以下のコマンドを使って、インストールされているすべての ports を簡単にアップデートできます。
&prompt.root; portmaster -a
Portmaster のデフォルトの設定では、
インストールされている port を削除する前にバックアップ用の package が作成されます。
このバックアップは、新しいバージョンのインストールに成功すると削除されます。
オプションを使うと、
Portmaster はバックアップを自動的に削除しません。
オプションを追加すると、
Portmaster をインタラクティブモードで使用できます。
このモードでは、各 port をアップグレードするかどうかの選択を対話的に行うことがでます。
アップグレードの過程でエラーに遭遇した場合には、
オプションを使ってすべての ports のアップグレードや再構築をできます。
&prompt.root; portmaster -af
Portmaster を使ってシステムに新しい ports
をインストールしたり、新しい port のコンパイルやインストール前に依存するすべての port をアップグレードできます。
&prompt.root; portmaster shells/bash
詳細については &man.portmaster.8; を参照してください。
ports とディスク容量
ports
ディスク容量
Ports Collection を使い続けていると、
そのうちディスクを食いつぶしてしまうでしょう。
ports からソフトウェアをビルドしてインストールした後には、
常に作業用の work
ディレクトリを make clean
コマンドで削除するようにしましょう。
以下のコマンドで Ports Collection を掃除することができます。
&prompt.root; portsclean -C
distfiles
ディレクトリには、たくさんのソースファイルがたまっていきます。
手動でそれらのファイルを削除してもよいのですが、
どの ports からも使われていない
distfiles を次のコマンドで削除できます。
&prompt.root; portsclean -D
また、システムにインストールされている port から使われていない
distfiles をすべて削除するには、以下のコマンドを使ってください。
&prompt.root; portsclean -DD
portsclean ユーティリティは
portupgrade ツール群の一部です。
インストールした ports のうちで、
必要なくなったものは削除してください。
ports-mgmt/pkg_cutleaves port は、
この作業を自動化するツールです。
インストール後の作業
新しいアプリケーションのインストールが終わったら、
次に付属のドキュメントを読みたいと思うでしょう。
また、必要な設定ファイルを編集したり、
(デーモンの場合には) システムの起動時にプログラムが開始することを確認したくなるでしょう。
port のインストール後に追加で行わなければならない作業の詳細は、
アプリケーションごとに異なります。
しかしながら、新しいアプリケーションをインストールしたばかりで、
次は何 ?
と思っているのであれば、
以下の tips は役に立つでしょう。
どのようなファイルがどこにインストールされているのかを知りたければ、
&man.pkg.info.1; を使ってください。
たとえば、FooPackage の 1.0.0 バージョンをインストールしたのであれば、
以下を実行してください。
&prompt.root; pkg_info -L foopackage-1.0.0 | less
上のコマンドを実行すると package
としてインストールされているすべてのファイルが表示されます。
特に、man/, etc/,
doc/ ディレクトリのファイルに注目してください。
それぞれ、マニュアルページ、
設定ファイル、より包括的なドキュメントが設置されています。
もし、アプリケーションのバージョンがわからなければ、
次のコマンドを実行してください。
&prompt.root; pkg_info | grep -i foopackage
インストールされた packages の中から、名前に
foopackage を含む package が表示されます。
必要に応じてコマンドラインの foopackage
を置き換えてください。
アプリケーションのマニュアルページがインストールされているのであれば、
&man.man.1; を使ってマニュアルを読んでください。
同様に、設定ファイルのサンプルや提供されているドキュメントにも目を通してください。
アプリケーションのウェブサイトがあれば、
そのサイトに更なるドキュメントや FAQ がないかを調べてください。
ウェブサイトのアドレスがわからなければ、
次のコマンドで表示されるかもしれません。
&prompt.root; pkg_info foopackage-1.0.0
ウェブサイトが存在すると、 URL が
WWW: を含む行に表示されます。
(インターネットサーバのように)
システム起動時に立ち上げる必要のある port は、
サンプルスクリプトを通常
/usr/local/etc/rc.d にインストールします。
このスクリプトを調べ、
必要があれば編集したりスクリプトの名前を変更してください。
詳細は サービスの起動
をご覧ください。
うまく動作しない ports に遭遇した場合には
port がうまく動作しない状況に遭遇したら、
あなたにできることは次のようなことしかありません。
その port に対する修正案が提出されていないかどうかを
障害報告
(Problem Report) データベース で調べてください。
もし提案されていれば、
その修正を使うことができるかもしれません。
port の保守担当者に対応してもらいましょう。
make maintainer と入力するか、
Makefile を直接読み、
保守担当者の電子メールアドレスを調べます。
メールを送る際には、port 名とバージョン番号
(Makefile の
$FreeBSD: 行)、
そしてエラーが出力されるまでの出力ログを忘れずに添付してください。
特定の保守担当者が存在せず、かわりに メーリングリスト
が保守している ports があります。
そのような場合には、メールアドレスは
freebsd-listname@FreeBSD.org
のようになります。
質問する際には、このことに気をつけてください。
特に ports@FreeBSD.org
が保守している ports には、保守担当者が本当にいません。
そのメーリングリストを購読する人々からなるコミュニティが、
修正や対応をおこなっています。
もっとボランティアが必要です!
保守担当者から返信がなければ、&man.send-pr.1;
を使ってバグレポートを提出しても構いません (
FreeBSD 障害報告の書き方 をご覧ください)。
自分で直しましょう!
Ports
システムに関する詳細な情報は
port 作成者のためのハンドブック にあります。
このセクションを読むと、壊れてしまった port を直したり、
自分で作った port を提出したりできるようになります!
近くの FTP サイトから package を入手しましょう。
マスタ
package コレクションは、
ftp.FreeBSD.org の
package のディレクトリ にありますが、
まずはあなたの地域の ミラーサイト
を最初に調べてください。
ソースからコンパイルすることを試みるより確実ですし、
時間もかかりません。
package をシステムにインストールするには、&man.pkg.add.1; を使います。