Ports/Packages
Ports で make
Ports で使える make のターゲット。
ターゲット | 内容 |
---|---|
fetch | 必要なファイルを取得 |
extract | 取得したファイルを展開 |
patch | パッチを適用 |
build | コンパイル |
install | インストール |
deinstall | アンインストール |
package | インストールを行ってからパッケージを作成する |
clean | 作業ディレクトリを削除 |
search key="key" | キーワードで検索する |
search name="name" | 名前で検索する |
取得したソースは /usr/ports/distfiles/ に置かれる。
アプリの説明
/usr/ports/***/***/pkg-descr ファイルにアプリケーションの説明がある。
Packages ってどうやって使うのか
Packagesで使うコマンドはこんな感じ。
コマンド | 内容 |
---|---|
pkg_add | アプリケーションパッケージをインストール |
pkg_delete | Ports/Packagesからインストールされたアプリをアンインストール |
pkg_create | Ports/Packagesからインストールされたアプリのパッケージ化 |
pkg_info | Ports/Packagesからインストールされたアプリの情報を表示 |
pkg_version | Ports/PackagesからインストールされたアプリをPortsツリーと比較しバージョンを表示 |
Packages でインストールしてみる
# pkg_add -r mozilla
- r はインターネットから入手するという意味。
Packges でインストールしたアプリの一覧
/var/db/pkg/ の配下にあるディレクトリ名
Packages でアンインストールする
パッケージ名を指定、あるいはパスを指定して削除する
# pkg_delete mozilla-1.7.7,2 # pkg_delete /var/db/pkg/mozilla-1.7.7,2
他のアプリから要求されている場合、アンインストールができない。強制的にアンインストールする場合は、pkg_delete の後に -f をつける。
sysinstall から Packages をインストール/アンインストールする
sysinstallを起動し、Configure → Packages → HTTP(FTP) と進み必要なパッケージを選択する。後はインストール/アンインストールしてくれる。
Ports/Packages のアップグレード
コマンド portupgrade を使ってアップグレードします。手順は3つ。
- Portsツリーを最新の状態にアップデート
- インストールされているアプリとのバージョンの差を調べる
- 古いアプリは portupgrade でアップデートする
Portsツリーを最新にする
これからもよく使うので便利なように /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 MASTER_SITE_OVERRIDE?=ftp://ftp.jp.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR} ←適宜修正
その後 cvsup をインストールする
# cd /usr/ports/net/cvsup-without-gui/ # make install clean
準備はOK。実際に Ports ツリーを最新にしてみる。
# cd /usr/ports/ # make update ------------------------------------------------------------------------ >>> Running /usr/local/bin/cvsup ------------------------------------------------------------------------ Parsing supfile "/usr/share/examples/cvsup/ports-supfile" Connecting to cvsup.jp.FreeBSD.org .... Updating collection ports-all/cvs ... #
# make fetchindex #
バージョンのチェック
Portsツリーを最新にしたら pkg_version でインストール済みのバージョンと Portsツリーとを比較する。
# pkg_version -v bsdiff-4.2 = up-to-date with port expat-1.95.8 < needs updating (port has 1.95.8_3) ...
このうち "<" のものをアップグレードすればよい。
アップグレード
portupgrade コマンドはアプリの依存関係を壊すことなくアップグレードしてくれます。
まずは portupgrade のインストール。
# cd /usr/ports/sysutils/portupgrade/ # make install clean
アップグレードしたアプリに依存したアプリも再帰的にインストールする (-r)
# portupgrade -r expat-1.95.8 freetype2-2.1.9 ... ... #
インストールされているアプリをすべてアップグレードする(すごいな)
# portupgrade -a ... #
バージョンが更新されていなくても -f で再インストール可能
# portupgrade -f firefox-1.0.3,1
とここまで ports を最新にする方法を書いたけど、portsnap というものがあるらしい。