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
出力はやや混乱することになります。実際に何が起こるかを確認するには、「候補」の行を参照してください。