Instale uma versão diferente de um pacote

9

Estou executando o servidor lúcido e instalei o tomcat. A versão instalada é 6.0.24-2ubuntu1.6.

Esta é a versão à qual estou vinculado? É possível instalar uma versão mais recente? O disponível no maverick é 6.0.28.

Talvez eu possa adicionar uma fonte para fornecer minha instalação lúcida com esta versão? Na interface do usuário do gerenciador de pacotes, posso "forçar versão". Também é possível forçar a versão da linha de comando alternativa?

Michael Wiles
fonte

Respostas:

6

Resposta curta:

Usando a fixação, você pode selecionar quais pacotes são provenientes do maverick, obter automaticamente suas dependências e mantê-los atualizados através do seu gerenciador de pacotes. https://help.ubuntu.com/community/PinningHowto

Resposta longa copiada de https://askubuntu.com/a/103338/42024 :

Você seria muito melhor explorando a fixação adequada, veja man apt_preferences.

Então, vamos supor que você esteja no Oneiric e queira obter esses pacotes do Precise.

Se você ler o homem, verá que copiei / colei as seções relevantes e apenas modifiquei o nome do release

/ etc / apt / preferências

Package: libccid
Pin: release n=precise
Pin-Priority: 990

Package: libpcsclite*
Pin: release n=precise
Pin-Priority: 990

Package: libusb*
Pin: release n=precise
Pin-Priority: 990

Package: opensc
Pin: release n=precise
Pin-Priority: 990

Package: pcscd
Pin: release n=precise
Pin-Priority: 990


Explanation: Uninstall or do not install any Ubuntu-originated
Explanation: package versions other than those in the oneiric release
Package: *
Pin: release n=oneiric
Pin-Priority: 900

Package: *
Pin: release o=Ubuntu
Pin-Priority: -10

Então, copiei o meu /etc/apt/sources.listpara /etc/apt/sources.list.d/precise.liste substitui todas as ocorrências de oníricas por precisas. Então correu apt-get updatee finalmente apt-get upgrade.

# apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  libpcsclite1 libusb-0.1-4 libusb-1.0-0 libusbmuxd1
4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 86.0 kB of archives.
After this operation, 88.1 kB disk space will be freed.
Do you want to continue [Y/n]? y
Do you want to continue [Y/n]? y
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main libusb-0.1-4 amd64 2:0.1.12-20 [17.6 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise/main libusb-1.0-0 amd64 2:1.0.9~rc3-2 [30.9 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu/ precise/main libpcsclite1 amd64 1.7.4-2ubuntu1 [23.5 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu/ precise/main libusbmuxd1 amd64 1.0.7-2 [14.1 kB]
Fetched 86.0 kB in 0s (124 kB/s) 

Por alguma razão, pcscd e opensc não foram instalados, provavelmente porque não foram instalados para começar, portanto não havia nada para atualizar, não é grande coisa, eu posso instalar exatamente essa versão usando a precisão como referência como esta.

$ apt-get install opensc pcscd -t precise

Tome nota do uso de -t , packagename/precisetambém funcionaria.

e existem os pacotes que você deseja, desde a versão mais recente, e somente esses pacotes , eles também serão atualizados automaticamente. Se você não quiser mais, basta excluir as entradas /etc/apt/preferencese, na próxima vez em que apt-get upgrade elas forem executadas, elas serão removidas. Se você remover o arquivo prefs inteiro, certifique-se de excluir esse arquivo de fontes specific.list, bem como nosso sistema tentará atualizar para o último conjunto de pacotes. Além disso, se você decidir fazer a atualização distinta posteriormente, será necessário remover o arquivo prefs inteiro e provavelmente seria uma boa idéia remover as outras fontes.list menos a atualização encontrará, graças à prioridade mais alta, que existem nenhum pacote para atualizar.

Fixar apt não é tão difícil, você só precisa cavar um pouco e experimentar. Todos os verbos para n=etc são encontrados examinando apt-cache policy.

É por isso que administradores experientes reclamam e elogiam o apt vs yum. Você pode atualizar de forma concisa os serviços e mantê-los atualizados de maneira limpa, determinística e sustentável.

Não é mais necessário compilar pacotes.

Eu sugiro fortemente que você leia a página de manual inteira e se familiarize com o conceito e leia outros guias sobre fixação adequada antes de continuar com esta proposta. Boa sorte e divirta-se!

https://help.ubuntu.com/community/PinningHowto

Jayen
fonte
Isto proporcionou uma resposta mais completa para mim: askubuntu.com/questions/103320/...
François Beausoleil
2

Você pode forçar uma versão na linha de comando com o apt-get install somepackage = alguma versão, mas não pode solicitar uma versão que não esteja nos repositórios que o apt conhece, o que geralmente significa a versão em que você está.

Você pode tentar baixar manualmente o maverick deb da barra de ativação e instalá-lo. Às vezes isso funciona, mas às vezes depende de versões mais recentes de várias bibliotecas e, portanto, não é instalado. A outra opção é baixar a fonte mais recente e compilar você mesmo.

psusi
fonte
obrigado, eu vou tentar obtê-lo de maverick ... ela poderia muito bem o trabalho, uma vez que realmente não tem quaisquer dependências
Michael Wiles
1

O lucid possui apenas 6.0.24 disponível e é improvável que isso mude. É raro fazer o backport de software como o tomcat para uma versão mais antiga.

Mas você ainda pode executar o tomcat mais recente usando os pacotes binários do tomcat. Eu estou usando isso.

aneeshep
fonte