ports管理

FrontPage - Tips for us.

portsを最新にする

# csup -g -h cvsup2.jp.FreeBSD.org /usr/share/examples/cvsup/ports-supfile

(初回)
# portsnap fetch && portsnap extract && portsnap update
(2回目以降)
# portsnap fetch && portsnap update

パッケージ検索

FreeBSD Ver7 パッケージ関係 : もろもろメモ

(portの検索)
# cd /usr/ports
# make search name=autoconf

portupgrade

インストール
# cd /usr/ports/ports-mgmt/portupgrade
# make install clean
# rehash
portinstall
# portinstall sudo
# portinstall wget
更新手順

更新可能なportsのバージョン情報を表示
portversion -vL=
#更新する前に,更新予定のportsの変更内容を確認(目を通した方が良い)
less /usr/ports/UPDATING
# 特に問題なければ、portversionで表示されたパッケージを更新
portupgrade [パッケージ名]

また,portupgrade -a とすると,全てのパッケージを更新できる.


portversion -v バージョンの状態確認。最新版があるかどうか調べてくれる
portupgrade emacs

http://hazyinfo.net/wiki/index.php?FreeBSD%2FPorts

パッケージ一覧
# pkg_info

config削除して、作り直し

# cd /usr/ports/japanese/webalizer
# make rmconfig
# portupgrade -f ja-webalizer

config の設定を変えて再インストール

# make config
# make clean
# make
# setenv FORCE_PKG_REGISTER yes
# make install

(bashの場合) export FORCE_PKG_REGISTER=yes

http://app.m-cocolog.jp/t/typecast/158451/140645/14865877

# cd /usr/ports/lang/php5
# make config
# make
# make deinstall
# make install

FreeBSD portinstallでパッケージの再インストール時のTips | adrufの目指せ鯖缶

まずportsの対象パッケージまで移動
cd /usr/ports/(package)
オプション指定をクリアするために以下のコマンドを実行
make rmconfig

アンインストール

http://deppari783.blog7.fc2.com/blog-entry-15.html

pkg_deinstall パッケージ名

ソースファイル

http://hiiro-sou.hp.infoseek.co.jp/unix/tips/ports.html

portsを使用したとき、ネット上よりダウンロードしたソースファイルは [/ usr/ports/
distfiles]以下に保存されています。

ports の make のターゲット

ports の make のターゲット
上の例では make のターゲットとして install を選びましたが、 これをいろいろ変えると、いろんな段階で作業をストップさせられます。

make のターゲット 段階
make fetch filename.tar.gz ファイルを /usr/ports/distfiles に持って来る
make extract filename.tar.gz ファイルを展開する
make patch 展開したソースファイルにパッチを当てる
make configure プログラムの設定を行う
make プログラムを作る(コンパイルする)
make install プログラムをインストールする
make deinstall プログラムをアンインストールする
make package プログラムのパッケージを作る
make clean 作業ディレクトリ /usr/ports/xxx/yyy/work を掃除する
make makesum CHECKSUM を作る (管理者用)
make reinstall
make all-depends-list 依存パッケージを調べる

make package までは、それより前の段階まですべてを実行します。

http://yang.amp.i.kyoto-u.ac.jp/~yyama/FreeBSD-3.4/application/ports-j.html

依存関係のある全てのportsを「make config」する方法

$ make config-recursive

【FreeBSD】portsのmake前に依存関係のある全てのportsをmake configする

ports のソースファイルのダウンロード先ディレクト

ソースコードは/usr/ports/distfileにダウンロードされます
portsでアプリケーションをインストールする

INDEXファイル

/usr/ports で make index
ports ツリーから INDEX-5 を生成する。

/usr/ports で make fetchindex
INDEX-5.bz2 をフェッチする。
INDEX-5 を抽出する。

portsdb -u
INDEX-5 がなければ INDEX-5.bz2 をフェッチして INDEX-5 を抽出する。
INDEX-5 から INDEX-5.db を作成する。(デフォルトで bdb1_btree 形式(?))

portsdb -U
ports ツリーから INDEX-5 を生成する。

portindex の cache-init
/var/db/portindex に現在のportsの状況がキャッシュされる。

portindex の cache-update
# cache-update -i {cvsup の実行結果ファイル}
これで、キャッシュが更新される。
これ、うっかり手動で cvsup して、ログ残ってなかったら死ぬんじゃ…

portindex の portindex
# portindex -o INDEX-5
これで INDEX-5 が生成される。

http://www.bugbearr.jp/?FreeBSD%2Fports

トラブル

perl をインストールしたら portsdb を使って INDEX.local と INDEX.db の更新を行う。INDEX.local の更新をするオプションが -U、INDEX.db の更新を行うオプションが -u である。これは man portsdb をすると分かるように -Uu のように指定するのが良い。
http://genki01.cc.hokudai.ac.jp/reo/pukiwiki/index.php?FreeBSD%2F5.4

I recently upgraded from 7.2 to 8.2 and am now unable to use portupgrade to upgrade the installed packages. When running portupgrade I receive the following errors (or when running portsdb -Uu):

[Updating the portsdb in /usr/ports ... - 22891 port entries found error] Remove and try again.
[Updating the portsdb in /usr/ports ... - 22891 port entries found error] Remove and try again.
...

Fixed this by removing ruby and its dependencies and portupgrade and recompiling / reinstalling them all.

portupgrade fails -- Unable to build portsdb | The FreeBSD Forums

pkg_delete portupgrade-2.4.9.3,2
pkg_delete ruby18-bdb-0.6.6
pkg_delete ruby-1.8.6.111_2,1

cd /usr/ports/ports-mgmt/portupgrade
make clean
make install