GNU/Linux >> Linux の 問題 >  >> Debian

Debian – Aptプリファレンスで非フリーをブロックする方法は?

non-freeからすべてのパッケージをブロックしたい 、私が明示的に名前を付けたものを除いて
。現在、私は:

/etc/apt/sources.list

deb http://ftp.us.debian.org/debian stable main contrib non-free

/etc/apt/preferences.d/non-free_policy

Explanation: Disable packages from `non-free` tree by default
Package: *
Pin: release c=non-free
Pin-Priority: -1

(アイデアは、フリーでないものから欲しいすべてのパッケージに明示的なスタンザを追加することです。)

しかし、それは機能しません:

[email protected]:/etc/apt/preferences.d# apt-get -s install firmware-linux-nonfree
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Die folgenden NEUEN Pakete werden installiert:
  firmware-linux-nonfree
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Inst firmware-linux-nonfree (0.43 Debian:8.4/stable [all])
Conf firmware-linux-nonfree (0.43 Debian:8.4/stable [all])

何が足りないのですか?

承認された回答:

non-freeよりも優先される別のより一般的なピンの優先順位がないことを確認する必要があります -ルールを除く。 (これには、APT::Default-Releaseが含まれます 特定のリリースに高い優先度を割り当てる構成設定。)

たとえば、/etc/apt/preferencesの場合 ファイル(または/etc/apt/preferences.d内の別のファイル )次のようなものが含まれています:

Package: *
Pin: release a=unstable
Pin-Priority: 200

次にunstable コンポーネントに関係なく、パッケージのピン優先度は200になります。追加のファイルでこれを機能させるには、これを

に変更する必要があります。
Package: *
Pin: release a=unstable, c=main
Pin-Priority: 200

(そして、contribのスタンザを追加します あなたがそれを気にするなら)。 (あなたの場合、stableがあります もちろん。)

を実行すると、ピンの優先順位の影響を確認できます

apt-cache policy

non-freeの場合 -構成が正しく機能している場合を除き、追跡しているすべてのスイートのエントリがnon-freeに表示されます。 、ピン優先度-1。それが機能すると、raccoonをインストールできなくなることがわかります 、または実際にはnon-free パッケージ(明示的に言及されている場合でも)—non-freeを追加する必要があります 適切なピン優先度を使用して、構成ファイルに必要なパッケージを作成します。

例として、私が使用するセットアップは次のとおりです。/etc/apt/preferences.d/non-freeという名前のファイルがあります 含む

Package: intel-microcode
Pin: release n=buster, c=non-free
Pin-Priority: 100

Explanation: Disable packages from non-free tree by default
Package: *
Pin: release c=non-free
Pin-Priority: -1

無料でないパッケージは引き続き検索に表示されますが、インストールできません:

$ sudo apt install lmbench
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package lmbench is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'lmbench' has no installation candidate

およびapt policy 同意する:

$ apt policy lmbench
lmbench:
  Installed: (none)
  Candidate: (none)
  Version table:
     3.0-a9+debian.1-2 -1
         -1 http://ftp.fr.debian.org/debian buster/non-free amd64 Packages
         -1 http://ftp.fr.debian.org/debian testing/non-free amd64 Packages
         -1 http://ftp.fr.debian.org/debian unstable/non-free amd64 Packages

しかし、intel-microcode インストールおよびアップグレード可能です。したがって、古い安定したバージョンに強制的にダウングレードした後、私は取得します

$ apt policy intel-microcode
intel-microcode:
  Installed: 3.20190618.1~deb9u1
  Candidate: 3.20190618.1
  Version table:
     3.20190618.1 100
         -1 http://ftp.fr.debian.org/debian buster/non-free amd64 Packages
         -1 http://ftp.fr.debian.org/debian testing/non-free amd64 Packages
         -1 http://ftp.fr.debian.org/debian unstable/non-free amd64 Packages
 *** 3.20190618.1~deb9u1 100
        100 /usr/var/lib/dpkg/status

$ apt list --upgradable
intel-microcode/stable,testing,unstable 3.20190618.1 amd64 [upgradable from: 3.20190618.1~deb9u1]

apt policy 出力はやや混乱することになります。実際に何が起こるかを確認するには、「候補」の行を参照してください。

関連:Debian – PCはgrubを起動する代わりに、Windows 10で直接起動しますか?
Debian
  1. Ubuntu18.04LTSでAPTを使用してパッケージを管理する方法

  2. Debian11BullseyeにRPMパッケージをインストールする方法

  3. Debian –インタラクティブなプロンプトで個々のDebian 8パッケージのインストールを自動化しますか?

  1. Debian10でUFWを使用してファイアウォールを設定する方法

  2. Ubuntu/Debianでパッケージを管理するためのAptgetコマンドの例

  3. Debian でフリーでないパッケージを有効にするにはどうすればよいですか?

  1. Debian9にYarnをインストールする方法

  2. Debianにインストールされているパッケージを一覧表示する方法

  3. Debian10にYarnをインストールする方法