aptアップグレードが手動でインストールされたライブラリをインストールするのを防ぐ方法


0

私はdebianアーカイブでまだ利用できないバージョンのソースから構築したライブラリを持っています。他のパッケージはそれを必要とし、 apt upgrade 古いバージョンをインストールしたい。どうすればこれを防ぐことができますか?

詳細:Saneに最新のリリース(libsane:1.0.27)で修正された問題があります。 Debianでは、最新の利用可能なバージョンは1.0.26です。

私はこのように固定してみました:

Package: libsane
Pin: version 1.0.27
Pin-Priority: 900

しかし、それは私がapt upgradeを実行したときにlibsaneをインストールする試みを変えませんでした。

回答:


1

あなたが使用する必要があります apt-get upgrade aptが新しいパッケージをインストールするのを防ぐため。

apt upgrade 説明した動作と同じように動作します。

manページから:

男apt-get セクション upgrade

アップグレードは現在インストールされているすべてのパッケージの最新バージョンをインストールするために使用されます[...]決してインストールされていないパッケージは取得されインストールされます。

男の人 セクション upgrade

upgradeは現在インストールされているすべてのパッケージの最新バージョンをインストールするために使用されます[...]。新しいパッケージはインストールされますが、既存のパッケージは削除されません。


1

特定のパッケージを一時的に保留することができます。

apt-mark hold libsane

それはうまくいった。あなたはそれが何をするのか、そして「一時的に」終わる時を詳しく述べてもらえますか
Angelo Fuchs

0

最も簡単な選択肢は2つあります。

  • つかいます equivs ダミーパッケージを作成するためのpackage。拡張チュートリアル ここに

  • を変える /var/lib/dpkg/status そこに不要な依存関係を消去するファイル。どの依存関係についてのパッケージを見つけてください apt 依存関係の行から関連する項目に名前を付けて削除します。例えば、編集行 Depends: libco (>= 2.14), libefivar (>= 30), libssl1.0.0 (>= 1.0.0)Depends: libefivar (>= 30) 捨てたい場合 libco そして libssl1.0.0 要件。

2番目の方法では、このパッケージをインストールする必要があります。しかし、あなたは簡単にパッケージをインストールすることができます apt-get download packagename そして dpkg --ignore-deps= コマンド。


2番目のオプションは、次回のaptアップデートの後に議論の余地がないでしょうか。
Angelo Fuchs

@AngeloFuchsいいえ、違います。しかし、このパッケージを再度インストールすると、ステータスファイルのエントリが変わる可能性があります。
styrofoam fly

2番目のオプションは私にはうまくいきません。私は削除しました libsane の依存関係から xsane しかし apt upgrade 更新したい xsane とインストール libsane
Angelo Fuchs

私が言ったように、このパッケージを再度インストールするとステータスファイルのエントリが変わるかもしれません。の新しいバージョンをインストールする xsaneapt-get download そして dpkg --ignore-deps... それから、その依存関係を削除します。 status ファイル。 apt upgrade うまくいきます。
styrofoam fly
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.