GNU/Linux >> Belajar Linux >  >> Debian

Debian – Bagaimana Cara Memblokir Non-free Dengan Preferensi Apt?

Saya ingin memblokir semua paket dari non-free , kecuali untuk yang saya
sebutkan secara eksplisit. Saat ini, saya memiliki:

/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

(Idenya adalah, saya menambahkan bait eksplisit untuk setiap paket yang saya inginkan dari paket tidak gratis.)

Tapi itu tidak berhasil:

[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])

Apa yang saya lewatkan?

Jawaban yang Diterima:

Anda perlu memastikan bahwa Anda tidak memiliki prioritas pin lain yang lebih umum yang diprioritaskan daripada non-free Anda -tidak termasuk aturan. (Ini termasuk APT::Default-Release pengaturan konfigurasi yang menetapkan prioritas tinggi untuk rilis yang diberikan.)

Misalnya, jika /etc/apt/preferences . Anda file (atau file lain di /etc/apt/preferences.d ) berisi sesuatu seperti berikut:

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

lalu unstable paket akan memiliki prioritas pin 200, terlepas dari komponennya. Untuk membuatnya berfungsi dengan file tambahan Anda, Anda harus mengubahnya menjadi

Package: *
Pin: release a=unstable, c=main
Pin-Priority: 200

(dan tambahkan bait tambahan untuk contrib jika Anda peduli tentang itu). (Dalam kasus Anda, Anda akan memiliki stable tentu saja.)

Anda dapat memeriksa pengaruh prioritas pin Anda dengan menjalankan

apt-cache policy

Jika Anda non-free -tidak termasuk konfigurasi berfungsi dengan benar, Anda akan melihat entri untuk semua suite yang Anda lacak, di non-free , dengan prioritas pin -1. Setelah berhasil, Anda akan menemukan bahwa Anda tidak dapat lagi menginstal raccoon , atau sebenarnya non-free package (bahkan jika disebutkan secara eksplisit) — Anda harus menambahkan non-free paket yang Anda inginkan ke file konfigurasi Anda, dengan prioritas pin yang sesuai.

Sebagai contoh, inilah pengaturan yang saya gunakan:Saya memiliki file bernama /etc/apt/preferences.d/non-free mengandung

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

Paket tidak gratis masih muncul dalam pencarian, tetapi saya tidak dapat menginstalnya:

$ 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

dan apt policy setuju:

$ 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

Tapi intel-microcode dapat diinstal dan diupgrade. Jadi setelah downgrade paksa ke versi oldstable, saya mendapatkan

$ 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 keluaran akhirnya agak membingungkan — lihat baris “Calon” untuk melihat apa yang sebenarnya akan terjadi.

Terkait:Debian – PC langsung masuk ke Windows 10 alih-alih meluncurkan grub?
Debian
  1. Cara Mengelola Paket dengan APT di Ubuntu 18.04 LTS

  2. Cara Menginstal Paket RPM di Debian 11 Bullseye

  3. Debian – Mengotomatiskan Instalasi Paket Debian 8 Individu Dengan Perintah Interaktif?

  1. Cara Mengatur Firewall dengan UFW di Debian 10

  2. Apt get command contoh untuk mengelola paket di Ubuntu/Debian

  3. Bagaimana cara mengaktifkan paket tidak bebas di Debian?

  1. Cara Memasang Benang di Debian 9

  2. Cara Mendaftar Paket yang Terinstal di Debian

  3. Cara Memasang Benang di Debian 10