Como instalar alguns pacotes do Debian "instável" em um computador executando o Debian "estável"?

14

Em um computador executando o Debian "estável", ao tentar instalar um pacote que está na lista instável no site da Debian usando o aptitude install <package>/unstablecomando, recebo uma saída semelhante a esta:

Couldn't find any package whose name or description matched "<package>"
Couldn't find any package whose name or description matched "<package>"
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

O que posso fazer para instalar pacotes "instáveis"? (Pensei em adicionar o repositório para sources.list, mas não quero que tudo comece a ser instalado a partir de "instável").

Então: como posso instalar pacotes instáveis ​​(usando /stableno final do nome do pacote)?

Abbafei
fonte
Consulte unix.stackexchange.com/q/112157/4671 para obter uma resposta detalhada a esta pergunta.
Faheem Mitha
1
Versão curta: Não. Versão mais longa: não faça isso . Use backports, se necessário, mas não misture estável / instável.
Shadur 8/08/19
Eu acredito que isso é chamado de "FrankenDebian": "O Debian Stable não deve ser combinado com outros lançamentos. Se você está tentando instalar um software que não está disponível no lançamento atual do Debian Stable, não é uma boa ideia adicionar repositórios para outras versões do Debian. Os problemas podem não ocorrer imediatamente, mas na próxima vez que você instalar atualizações. " De Não quebre o Debian .
malan 8/08/19

Respostas:

29

Você precisa ter unstablelistado no seu sources.list. Caso contrário, o apt simplesmente não encontrará o pacote.

Para evitar a entrada de unstablepacotes, você tem duas maneiras.

  • A maneira mais fácil é adicionar uma Default-Releasecláusula a /etc/apt/apt.conf(ou a um arquivo abaixo /etc/apt/apt.conf.d/, por exemplo /etc/apt/apt.conf.d/my-default-release).

    APT::Default-Release "stable";
    
  • A maneira mais difícil é usar as preferências do APT . Em /etc/apt/preferences:

    Package: *
    Pin: release o=Debian,a=unstable
    Pin-Priority: 10
    

Observe que, durante a maior parte do tempo de vida de uma versão do Debian, não é prático instalar a maioria dos pacotes da instável em um sistema estável, porque eles atraem muitas bibliotecas da instável, e você acaba com um sistema instável. Se você quiser ficar instável, você terá problemas para direcionar apenas instável (ou teste). É melhor manter um único lançamento ou testar com o ocasional instável, se você estiver se sentindo ousado. E, é claro, em um sistema de produção, mantenha-se estável.

Se você estiver executando estável, mas precisar de uma versão mais recente de um aplicativo, verifique primeiro se há um backport para eles. Caso contrário, se você quiser instalar um pacote da instável, mas não precisar extrair suas dependências, tente obter a fonte instável e recompilar.

apt-get source foo=1.42
apt-get build-dep foo  # pulls the dependencies of foo in stable but that's often good enough
dpkg-source -x foo_1.42.dsc
cd foo-1.4210126#10126
dpkg-buildpackage -rfakeroot -us -uc -b -nc
dpkg -i ../foo_1.42_$(arch).deb
Gilles 'SO- parar de ser mau'
fonte
2
+1 por mencionar backports, mas você deve enfatizar mais enfaticamente que a mistura estável / instável é realmente perigosa e, se você não sabe o que está fazendo , não deve fazer isso em um sistema de produção .
Shadur 8/08/19