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


18

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

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

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

        Reinstalling vim-7.4.110_3 (options changed)

何が得られますか?オプションを変更せず、新しいバージョンもありません(ポートにもありません)。インストールされているポートとリモートバージョンを比較せずに比較していGTK2ますか?

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


pkg lock推奨ソリューションを使用していますか?それは機能しますが、これが自動的に処理されるような単純なものを望みます。
リカルド・バリング14年

はい、pkg lockそのために設計されたソリューションは次のとおりです:manページから:「pkg lockは、再インストール、変更、または削除に対してパッケージをロックするために使用されます。」
デレクソン14

この投稿は古いです。しかし、私は今までと同じ問題を抱えていると言いたいです。FreeBSDフォーラムに「パッケージとポートを同時に使用しますか?」また、あるメンバーから、インストールの更新にスクリプトを使用するようアドバイスがありました。あなたは彼の答えでそれを見つけることができます。
HL1234

回答:


15

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

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

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

または、多数のポートでオプションを変更している場合はpoudriere、独自のパッケージリポジトリのインストールと保守を検討することをお勧めします。少しセットアップが必要で、ビルドホストにZFSストレージプールがある場合に最適に機能しますが、ZFSがなくても機能します。カスタムソフトウェアビルドを管理するための非常に柔軟で便利な方法です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.