私はほとんどの場合FreeBSDでパッケージを使用しています。それらのほとんどは私にぴったりです。ただし、グラフィカルなvim
を含まないgvim
パッケージのように、私に適さないものもあります。
問題ない。代わりに、portmaster editors/vim
を使用してGTK2
オプションを選択し、ポートをインストールできます。これは正常に動作します。
ただし、しばらくしてpkg upgrade
を実行すると、次のメッセージが表示されます。
Reinstalling vim-7.4.110_3 (options changed)
何ができますか?私はオプションを変更せず、新しいバージョンもありません(移植版もありません)。インストールされているポートをGTK2
のないリモートバージョンと比較していますか?
もちろん、pkg upgrade
に作業を任せて、後でポートを再インストールすることもできますが、これは愚かです。パッケージとポートの組み合わせを更新するための推奨される方法は何ですか?
pkg
およびポートは、インストールされたソフトウェアを同じ場所に登録することを覚えておく必要があります(/var/db/pkg
のSQLiteデータベース)。どちらのシステムも、特定のソフトウェアがプリコンパイルされたパッケージまたはポートとしてインストールされたことを示す追加情報を記録しません。したがって、どちらかの方法でソフトウェアがインストールされると、ツールはそれがインストールされたことを知る方法がありませんhow。
editors/vim
ポートのGTK2サポートを選択した場合、それはパッケージデータベースに登録されていました。後でpkg upgrade
を実行したとき、pkg
はvim
のパッケージデータを調べ、インストールされているバージョンではGTK2サポートが有効になっているのに、以前のバージョンでは有効になっていないことがわかりました-コンパイルされたパッケージ。 pkg upgrade
は、必要な処理を正確に実行しています。使用可能な事前コンパイル済みパッケージとは異なるインストール済みパッケージを見つけて、それらをアップグレードしようとしています。これらの違いは、バージョン番号、依存関係グラフ、コンパイル時オプションなどにあります。
保護したいpkg
がポートまたはパッケージを考慮しないようにする適切な方法(インストール後、ツールに関する限り、違いはありません)は、pkg lock
コマンドを使用することです。
あるいは、いくつかのポートでオプションを変更している場合は、poudriere
をインストールして独自のパッケージリポジトリを維持することを検討してください。設定には少し時間がかかりますが、ビルドホストにZFSストレージプールがある場合に最適ですが、ZFSがない場合でも機能します。これは、カスタムソフトウェアビルドを管理するための非常に柔軟で便利な方法です。