web-dev-qa-db-ja.com

FreeBSDでパッケージとポートの組み合わせを更新する方法

私はほとんどの場合FreeBSDでパッケージを使用しています。それらのほとんどは私にぴったりです。ただし、グラフィカルなvimを含まないgvimパッケージのように、私に適さないものもあります。

問題ない。代わりに、portmaster editors/vimを使用してGTK2オプションを選択し、ポートをインストールできます。これは正常に動作します。

ただし、しばらくしてpkg upgradeを実行すると、次のメッセージが表示されます。

        Reinstalling vim-7.4.110_3 (options changed)

何ができますか?私はオプションを変更せず、新しいバージョンもありません(移植版もありません)。インストールされているポートをGTK2のないリモートバージョンと比較していますか?

もちろん、pkg upgradeに作業を任せて、後でポートを再インストールすることもできますが、これは愚かです。パッケージとポートの組み合わせを更新するための推奨される方法は何ですか?

18
Ricardo Buring

pkgおよびポートは、インストールされたソフトウェアを同じ場所に登録することを覚えておく必要があります(/var/db/pkgのSQLiteデータベース)。どちらのシステムも、特定のソフトウェアがプリコンパイルされたパッケージまたはポートとしてインストールされたことを示す追加情報を記録しません。したがって、どちらかの方法でソフトウェアがインストールされると、ツールはそれがインストールされたことを知る方法がありませんhow

editors/vimポートのGTK2サポートを選択した場合、それはパッケージデータベースに登録されていました。後でpkg upgradeを実行したとき、pkgvimのパッケージデータを調べ、インストールされているバージョンではGTK2サポートが有効になっているのに、以前のバージョンでは有効になっていないことがわかりました-コンパイルされたパッケージ。 pkg upgradeは、必要な処理を正確に実行しています。使用可能な事前コンパイル済みパッケージとは異なるインストール済みパッケージを見つけて、それらをアップグレードしようとしています。これらの違いは、バージョン番号、依存関係グラフ、コンパイル時オプションなどにあります。

保護したいpkgがポートまたはパッケージを考慮しないようにする適切な方法(インストール後、ツールに関する限り、違いはありません)は、pkg lockコマンドを使用することです。

あるいは、いくつかのポートでオプションを変更している場合は、poudriereをインストールして独自のパッケージリポジトリを維持することを検討してください。設定には少し時間がかかりますが、ビルドホストにZFSストレージプールがある場合に最適ですが、ZFSがない場合でも機能します。これは、カスタムソフトウェアビルドを管理するための非常に柔軟で便利な方法です。

15
D_Bye