Meu sistema Debian está configurado para instalar pacotes instáveis por padrão
$ cat /etc/apt/apt.conf.d/99defaultrelease
APT::Default-Release "unstable";
No entanto, gostaria de extrair automake
de stable
, ou seja, versão 1.15
$ apt-cache policy automake
automake:
Installed: (none)
Candidate: 1:1.16.1-4
Version table:
1:1.16.1-4 990
500 http://deb.debian.org/debian testing/main amd64 Packages
500 http://deb.debian.org/debian testing/main i386 Packages
990 http://deb.debian.org/debian unstable/main amd64 Packages
990 http://deb.debian.org/debian unstable/main i386 Packages
990 http://deb.debian.org/debian sid/main amd64 Packages
990 http://deb.debian.org/debian sid/main i386 Packages
1:1.15-6 500
500 http://deb.debian.org/debian stable/main amd64 Packages
500 http://deb.debian.org/debian stable/main i386 Packages
Mas sempre que eu digo para instalar automake/stable
ou automake
com -t stable
, apt
apenas ignora essa parte.
$ apt-get install automake -t stable --dry-run
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
autoconf autotools-dev
Suggested packages:
autoconf-archive gnu-standards autoconf-doc libtool
The following NEW packages will be installed:
autoconf automake autotools-dev
0 upgraded, 3 newly installed, 0 to remove and 125 not upgraded.
Inst autoconf (2.69-11 Debian:testing, Debian:unstable [all])
Inst autotools-dev (20180224.1 Debian:testing, Debian:unstable [all])
Inst automake (1:1.16.1-4 Debian:testing, Debian:unstable [all])
Conf autoconf (2.69-11 Debian:testing, Debian:unstable [all])
Conf autotools-dev (20180224.1 Debian:testing, Debian:unstable [all])
Conf automake (1:1.16.1-4 Debian:testing, Debian:unstable [all])
Eu posso especificar a versão do pacote assim:
apt-get install automake=1:1.15-6
O que deve resolver meu problema, embora as dependências (autoconf, autotools-dev, etc.) ainda sejam instaladas da instável, o que é um pouco preocupante.
De qualquer forma, por que o apt está ignorando o destino fornecido neste caso?
Além disso - isso não é uma pergunta - se esse comportamento for "por design", acho que seria muito bom se apt
pudesse imprimir algum aviso informativo.
Editar
Esta é a saída de apt -t stable policy automake
(nota: depois de ter instalado automake
)
$ apt -t stable policy automake
automake:
Installed: 1:1.16.1-4
Candidate: 1:1.16.1-4
Version table:
*** 1:1.16.1-4 1001
500 http://deb.debian.org/debian testing/main amd64 Packages
500 http://deb.debian.org/debian testing/main i386 Packages
1001 http://deb.debian.org/debian unstable/main amd64 Packages
1001 http://deb.debian.org/debian unstable/main i386 Packages
1001 http://deb.debian.org/debian sid/main amd64 Packages
1001 http://deb.debian.org/debian sid/main i386 Packages
100 /var/lib/dpkg/status
1:1.15-6 990
990 http://deb.debian.org/debian stable/main amd64 Packages
990 http://deb.debian.org/debian stable/main i386 Packages
Como isso pode ser um problema com prioridades, isso também pode ser relevante:
$ cat /etc/apt/preferences
Package: *
Pin: release a=unstable
Pin-Priority: 1001
O comportamento que você está vendo vem das prioridades que você definiu. Definir a versão padrão, usando
Default-Release
ou-t
, define a prioridade para 990 para as versões correspondentes; sua prioridade de 1001 para instável sempre supera isso.Veja
man apt_preferences
para detalhes.