Como bloquear não-livres com as preferências do apt?

5

Eu quero bloquear todos os pacotes de non-free , exceto aqueles que eu nome explicitamente. Atualmente tenho:

/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

(A ideia é que eu adicione uma estrofe explícita para cada pacote que eu quero do non-free.)

Mas isso não funciona:

root@silber:/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])

O que estou perdendo?

    
por Max Kubierschky 21.05.2016 / 06:26

1 resposta

4

Você precisa garantir que não tenha outra prioridade de alfinete mais geral que tenha prioridade sobre sua regra non-free -exclusiva. (Isso inclui a configuração de configuração APT::Default-Release , que atribui uma alta prioridade ao release fornecido.)

Por exemplo, se o arquivo /etc/apt/preferences (ou outro arquivo em /etc/apt/preferences.d ) contiver algo como o seguinte:

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

então unstable packages terá prioridade de pin 200, independentemente do componente. Para fazer isso funcionar com o seu arquivo adicional, você deve mudar isso para

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

(e adicione uma sub-rotina adicional para contrib se você se importar com isso). (No seu caso, você teria stable , claro.)

Você pode verificar o efeito das suas prioridades de pin executando

apt-cache policy

Se a sua configuração non-free -excluding estiver funcionando corretamente, você deverá ver as entradas de todos os conjuntos que está rastreando, em non-free , com uma prioridade de alfinete de -1. Assim que estiver funcionando, você descobrirá que não pode mais instalar raccoon ou, na verdade, qualquer non-free package (mesmo se mencionado explicitamente) - você precisará adicionar os pacotes non-free que deseja ao seu arquivo de configuração , com uma prioridade de pinos apropriada.

    
por 21.05.2016 / 20:43

Tags