Gostaria de fixar um pacote específico, digamos redis-server
, em uma versão específica, no meu caso 7.0.*
, e isso parece simples de fazer com:
Package: redis-server
Pin: version 7.0.*
Pin-Priority: 1001
Agora, eu também gostaria de fazer com que apt
a falha ocorresse quando a versão 7.0.* não estivesse disponível, seja porque há apenas versões mais novas disponíveis, por exemplo, 7.2.* ou 7.4.*, ou talvez porque apenas versões mais antigas, como a 6.*, estejam disponíveis.
Não consigo encontrar uma maneira de fazer isso. Li vários recursos apenas, consultei man 5 apt_preferences
, mas ainda não tenho certeza de como.
Tentei combinar a regra de fixação anterior com outra com prioridade -1
, como no seguinte:
Package: redis-server
Pin: release *
Pin-Priority: -1
Mas isso parece tornar todas as versões indisponíveis, infelizmente. Aqui está o que estou vendo:
$ apt-cache policy redis-server
redis-server:
Installed: (none)
Candidate: 5:7.0.15-1build2
Version table:
5:7.0.15-1build2 500
500 [http://no.archive.ubuntu.com/ubuntu](http://no.archive.ubuntu.com/ubuntu) noble/universe amd64 Packages
$ cat > /etc/apt/preferences.d/redis-server
Package: redis-server
Pin: version 7.0.15*
Pin-Priority: 1001
Package: redis-server
Pin: release *
Pin-Priority: -1
$ apt-cache policy redis-server
redis-server:
Installed: (none)
Candidate: (none)
Version table:
5:7.0.15-1build2 -1
500 [http://no.archive.ubuntu.com/ubuntu](http://no.archive.ubuntu.com/ubuntu) noble/universe amd64 Packages
Eu esperava que essa configuração fornecesse um candidato disponível, já que existe um (7.0.15), mas isso não funciona.
Observe que um resultado bem-sucedido para mim é:
- definir uma versão desejada, por exemplo
redis-server=7.0.*
- forneça um arquivo apt preferences.d de modo que: ** quando qualquer versão 7.0.* estiver disponível, o apt instalará essa versão ** quando nenhuma versão 7.0.* estiver disponível, o apt falhará ao não instalar nada
Um resultado ruim é quando o redis-server é instalado, mas com uma versão do pacote que não corresponde ao que eu especifiquei como requisito (portanto, diferente de 7.0.*).
Isso está no Ubuntu 24.04, embora eu ache que não haja nada específico para o 24.04 ou para o Ubuntu aqui.
Alguma ideia?