Digamos que você esteja executando um servidor e não queira atualizar para Testing (Squeeze) de Stable (Lenny) para instalar apenas um ou dois pacotes necessários.
Qual é a melhor maneira de instalar apenas determinados pacotes do Testing?
Digamos que você esteja executando um servidor e não queira atualizar para Testing (Squeeze) de Stable (Lenny) para instalar apenas um ou dois pacotes necessários.
Qual é a melhor maneira de instalar apenas determinados pacotes do Testing?
Muitas pessoas parecem ter medo de misturar estável com teste, mas, francamente, o teste é bastante estável por si só, e com preferências e verificação de solução adequadas, você pode evitar o "desvio de estabilidade" que coloca seus pacotes principais no caminho instável.
"O teste é bastante estável??" , você pergunta. Sim. Para um pacote migrar de instável para testing, ele precisa ter zero bugs abertos por 10 dias consecutivos. As chances são de que, especialmente para os pacotes mais populares, alguém envie um relatório de bug para uma versão instável se algo estiver errado.
Mesmo que você não queira misturar os ambientes, ainda é bom ter a opção lá caso você encontre algo que exija uma versão mais recente do que a que está em stable.
Aqui está o que eu recomendo para configurar isso:
Primeiro, crie os seguintes arquivos em
/etc/apt/preferences.d
:stable.pref
:testing.pref
:unstable.pref
:experimental.pref
:(Não tenha medo das coisas instáveis/experimentais aqui. As prioridades são baixas o suficiente para que nunca instale automaticamente nenhuma dessas coisas. Mesmo a ramificação de teste se comportará, pois só instalará os pacotes que você deseja em testes.)
Agora, criando um conjunto de correspondência para
/etc/apt/sources.list.d
:stable.list
: Copie do seu original/etc/apt/sources.list
. Renomeie o arquivo antigo para algo comosources.list.orig
.testing.list
: O mesmo questable.list
, exceto comtesting
.unstable.list
: Igual astable.list
, exceto comunstable
e remova as listas de segurança.experimental.list
: O mesmo queunstable.list
, exceto comexperimental
.Você também pode adicionar um
oldstable
insources.lists.d
epreferences.d
(use uma prioridade de 1), embora esse apelido tenda a expirar e desaparecer antes do próximo ciclo estável. Em casos como esse, você pode usarhttp://archive.debian.org/debian/
e "codificar" a versão Debian (etch, lenny, etc.).Para instalar a versão de teste de um pacote, simplesmente use
aptitude install lib-foobar-package/testing
, ou simplesmente entre na GUI do aptitude e selecione a versão dentro dos detalhes do pacote (pressione enter no pacote que você está visualizando).Se você receber reclamações de conflitos de pacotes, veja primeiro as soluções. Na maioria dos casos, o primeiro será "não instale esta versão". Aprenda a usar as opções de resolução de aceitação/rejeição por pacote. Por exemplo, se você estiver instalando foobar-package/testing e a primeira solução for "não instale foobar-package/testing", marque essa opção como rejeitada e as outras soluções nunca mais seguirão esse caminho. Em casos como esses, você provavelmente terá que instalar alguns outros pacotes de teste.
Se estiver ficando muito complicado (como se estivesse tentando atualizar a libc ou o kernel ou algum outro sistema central enorme), você pode rejeitar esses caminhos de atualização ou simplesmente sair da atualização inicial completamente. Lembre-se de que ele só atualizará coisas para testing/unstable se você permitir.
EDIT: Corrigido alguns pinos de prioridade e atualizado a lista.
Em
/etc/apt/apt.conf.d
adicione o seguinte arquivo99defaultrelease
:in
/etc/apt/sources.list.d
- adiciona urls para testes/fontes instáveisstable.list
:testing.list
:corre
e, em seguida, instale o que você precisa com
Tenha muito, muito cuidado se você instalar coisas que tenham muitas dependências. De preferência, não faça isso na produção.
Você também pode tentar a sorte em backports ou repositório semelhante.
apt_preferences
Defina o nível padrão para o qual o sistema deve 'atualizar com segurança' no arquivo /etc/apt/preferences:
man apt_preferences
Há muito que você pode fazer com apt_preferences, mas por uma questão de simplicidade ...
Eu precisava instalar um único pacote (autoMysqlBackup) que só estava disponível em Testing. A solução foi adicionar o seguinte a /etc/apt/preferences:
Com vários repositórios adicionados ao /etc/apt/sources.list, o aptitude agora apenas atualizará para a versão especificada, mesmo que os repositórios da versão posterior estejam listados (neste caso, 'stable').
Então, para instalar esse pacote, tudo o que você precisa fazer é:
Para o que vale a pena, o conselho geral que sempre vi é "Não misture estável com nada". A maioria dos tutoriais de sistemas mistos são para misturar testes e instáveis.
O raciocínio parece ser que, se você misturar estável com teste, pacotes muito básicos (como libc6) exigirão atualizações (para instalar software de teste) e, uma vez que esses pacotes básicos passem para teste, todo o sistema pode derivar dessa maneira.
Aqui estão duas alternativas:
A documentação do debian é extensa no assunto e eu aconselho fortemente a se aprofundar, pois revelará verdadeiramente a beleza do sistema debian.
Dê uma olhada em Como manter um sistema misto , ele explicará tudo o que você precisa saber.
Outra maneira, que pode evitar a instalação de muitas dependências do Testing ou Sid, é esta: você diz ao apt-get para obter a fonte do pacote do Testing ou Sid e cria um pacote para o seu sistema usando ferramentas Debian (não é necessário mexer manualmente com fontes).
Citando daqui:
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F
Eu tenho feito isso por um longo período de tempo para ter confiança em dizer que é seguro o suficiente e pode ser conveniente. Com a configuração abaixo, a versão estável será instalada por padrão, no entanto, o Aptitude também permitirá que você escolha a versão retroportada ou instável, se desejar:
Há quatro coisas que precisam ser editadas, a versão de pinagem padrão precisa ser definida, as fontes precisam de backports e instáveis adicionados, diminuindo a prioridade de pinagem de backports/pacotes instáveis, e as configurações de exibição do aptitude precisam ser modificadas para exibir a pinagem.
etc/apt/preferences
arquivo de fixação - se o arquivo não existir, crie-o.Se sua seleção de pacotes for mais complexa ou a instalação for repetida em várias máquinas, você pode considerar configurar um repositório privado que espelhe um subconjunto dos repositórios oficiais. Isso requer um pouco de trabalho para configurar o repositório, mas a recompensa é fácil de manter com um mínimo de configuração em cada cliente e resultados repetíveis ao fazer dezenas de instalações. Acho isso útil mesmo quando apenas um ou dois pacotes estão sendo instalados e uso esse método para automatizar e manter instalações na nuvem. Um único servidor em um VPS barato pode lidar com dezenas de repositórios privados.
Para configurar seu servidor de repositório privado:
Em seguida, configure seu servidor web de escolha para servir os arquivos de repositório estáticos. Possivelmente proteja o repositório com um certificado de segurança e autenticação básica.
Para manter automaticamente seu repositório privado e obter atualizações do upstream, coloque o acima em um script e execute a partir de um cron job.
Para configurar sua máquina cliente, em sua máquina cliente:
Para manter sua máquina cliente e obter todas as atualizações de seu repositório privado, em sua máquina cliente:
Outra opção é baixar o pacote fonte do teste. O APT pode construir automaticamente o pacote fonte depois de baixá-lo. Dessa forma, seus pacotes estáveis não serão afetados pelas atualizações de teste. A única desvantagem é que levará mais tempo do que apenas baixar e instalar o pacote binário.
Para configurar o APT para baixar os pacotes fonte do teste, basta adicionar:
Se você quiser apenas seguir os testes atuais e não os testes futuros, substitua "testing" pelo codinome atual (no momento em que este texto foi escrito, é "buster")
What I do to avoid mixing stable/testing/experimental, is to install a Debian Sid in a directory on my Debian stable system with
debootstrap
, then I can use the tools I want. In this example, I need a recentxmllint
tool (XML
processing).For this, this is what I've done:
Now, I can exit the
chroot
and use the lib, 'hacking'LD_LIBRARY_PATH
for specific dynamic loading librarys.In
~/.bashrc
:Now, when I run
xmllint
, I have the 2.9.10 version oflibxml2-utils
. (2019 vs 2016 versions).The pros:
sid
de ), desta forma, software aleatório ainda é compatível o suficienteOs contras:
.bashrc