Antes que a querida comunidade marque esta pergunta como duplicada, saiba que fiz uma pesquisa no site e descobri que não há duplicata equivalente, por exemplo, este link não é duplicado
Eu segui as seguintes instruções:
De acordo com estas instruções, a etapa nº 1 é atualizar /etc/apt/sources.list
adicionando a seguinte linha:
deb http://deb.debian.org/debian bookworm-backports main contrib non-free
Quando esta etapa for concluída, precisamos atualizar o índice executandosudo apt update
A partir deste ponto temos duas opções:
- Instale explicitamente um pacote de backports, por exemplo
apt install -t bookworm-backports <package>
- Instalar implicitamente um pacote de backports
apt install <package>/bookworm-backports
Há uma diferença significativa entre esses 2 métodos!
O primeiro método instalará o pacote a partir de backports, mas também extrairá todas as suas dependências também de backports, incluindo suas dependências e assim por diante, o que resulta na instalação "inchada" de um pacote.
O segundo método é mais limpo, melhor e recomendado pelo debian porque, diferentemente do primeiro método, ele reutilizará dependências (do principal, não dos backports) e puxará apenas o pacote principal que está sendo instalado que é dos backports.
Em outras palavras, o segundo método reutilizará dependências que já estão instaladas no sistema sem baixá-las. No entanto, sob certas circunstâncias, se isso não for possível, ele extrairá dependências de backports (embora em cenários raros)
O problema que estou tendo é que o primeiro método com -t
opções sempre funciona, enquanto o segundo método nunca funciona.
Quero saber por que isso acontece e como posso fazer o segundo método funcionar?
Aqui estão dois exemplos que podem ser reproduzidos para você testar:
sudo apt install wine/bookworm-backports
sudo apt install passwordsafe/bookworm-backports
Aqui está a saída do primeiro exemplo:
sudo apt instalar wine/bookworm-backports
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package wine is a virtual package provided by:
wine 8.0~repack-4
You should explicitly select one to install.
E: Release 'bookworm-backports' for 'wine' was not found
Como você pode ver bookworm-backports
não foi encontrado!
No entanto, se você executar -t
a opção, poderá confirmar que isso é falso:
sudo apt install wine -t bookworm-backports
O que funcionará perfeitamente e oferecerá a você a instalação do pacote.
Então a pergunta é muito simples, por que o segundo método (sem a -t
opção) não funciona e o que preciso fazer para que funcione, estou fazendo algo errado?
Para informações adicionais, estou usando o Debian 12 (bookworm)
E o meu sources.list
fica assim:
deb https://deb.debian.org/debian/ bookworm main
deb-src https://deb.debian.org/debian/ bookworm main
deb http://security.debian.org/debian-security bookworm-security main
deb-src http://security.debian.org/debian-security bookworm-security main
deb https://deb.debian.org/debian/ bookworm-updates main
deb-src https://deb.debian.org/debian/ bookworm-updates main
deb https://deb.debian.org/debian/ bookworm-backports main
deb-src https://deb.debian.org/debian/ bookworm-backports main
Em relação à sua tentativa de instalação específica
wine
, o motivo da falha é quewine
não está disponível nobookworm-backports
.Sua confusão mais geral é compreensível; falta uma informação: a prioridade do pino associada aos backports. O repositório backports tem uma prioridade padrão de 100, o que garante que um pacote backports nunca seja candidato para atualização ou instalação em vez do mesmo pacote de um repositório estável.
Assim, quando você solicitar
apt
a instalação de um pacote usando/bookworm-backports
, se esse pacote tiver backport, ele será selecionado, mas qualquer dependência será avaliada usando regras de prioridade. Uma versão do pacote nos repositórios estáveis sempre terá uma prioridade mais alta do que a versão backportada (se houver), e será escolhida. Em alguns cenários,apt
serão considerados requisitos versionados de backports, mas isso não funcionará em todos os casos - em particular, falha comwine
(no Debian 11,apt install wine/bullseye-backports
não resolve todas as suas dependências, masapt install -t bullseye-backports wine
sim).apt -t bookworm-backports
por outro lado, alterabookworm-backports
temporariamente a prioridade para 990, garantindo que os pacotes portados sejam candidatos para instalação e/ou atualização. Como você disse, isso pode resultar na atualização de mais pacotes do que o estritamente necessário; entretanto, na prática, isso geralmente não é um problema, porque poucos pacotes de bibliotecas são portados. De qualquer forma, os pacotes backportados substituem suas versões originais dos repositórios estáveis, portanto o inchaço resultante é mínimo.O resultado final de tudo isso é que você deve
apt policy wine
);/bookworm-backports
;-t bookworm-backports
.