Questão Como instalar uma versão específica de algum pacote? [duplicado]


Esta questão já tem uma resposta aqui:

Minhas perguntas estão divididas em duas partes:

  1. Como saber a versão do pacote instalado?
  2. Como instalar uma versão específica do pacote?

159
2018-03-03 08:57


origem


Por favor, não vote para excluir este post. É útil como um poste de sinalização. As duplicações servem para orientar outras pessoas para as perguntas e respostas corretas. - terdon♦


Respostas:


Como saber a versão do pacote instalado?

apt-cache policy <package name>

O comando acima mostrará a versão do pacote instalado e também todas as versões disponíveis no repositório de acordo com a versão do Ubuntu em que você está executando. Ele não exibe a versão do pacote que foi destinada para outra versão do Ubuntu (não da sua).

Exemplo:

$ apt-cache policy gparted
gparted:
  Installed: 0.16.1-1
  Candidate: 0.16.1-1
  Version table:
 *** 0.16.1-1 0
        500 http://ubuntu.inode.at/ubuntu/ saucy/main amd64 Packages
        100 /var/lib/dpkg/status

Então a versão gparted instalada é 0.16.1-1.

Como instalar uma versão específica do pacote?

sudo apt-get install <package name>=<version>

Exemplo:

$ sudo apt-get install gparted=0.16.1-1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gparted is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 265 not upgraded.

226
2018-03-03 09:10



Você pode, por favor, dar mais detalhes para o segundo comando? Existem limitações? Por exemplo, alguém no 12.04 poderia instalar uma versão de um pacote disponível em 13.10? - DK Bose
Dentro aptitude pressionar Enter no nome do pacote exibe informações sobre o pacote e, na parte inferior dessa tela, há uma lista das versões disponíveis. - karatedog
O uso similar do apt-cyg funciona no Cygwin: apt-cyg install package=version? - Danijel
Em todos os casos que eu já tentei isso eu sempre obter o erro The following packages have unmet dependencies:, seguido por uma lista de pacotes. Qualquer maneira de resolver isso automaticamente? - Hubro
Por favor, note que provavelmente irá falhar, porque geralmente há apenas 1 ou 2 versões do pacote que estão disponíveis no repositório. Se você quer uma versão diferente da que é atualmente projetada para sua distribuição, talvez seja necessário fazer o download e instalar com sudo dkpg -i <package-file>. Erros de dependência precisam ser resolvidos por download e instalação (também com dkpg) todos os pacotes ausentes (isso pode levar muitas iterações). Alternativamente, você pode baixar o código-fonte do programa, compilá-lo e instalá-lo (isso também requer resolução de dependência manual). - nuoritoveri


Não existe uma maneira geral de verificar a versão dos pacotes instalados, mas a maioria deles pode ser verificada usando o comando:

command -v 

por exemplo, para saber a versão do apache2:

apache2 -v

Mas isso pode não funcionar com outros pacotes, então a melhor prática é pesquisar no manual.

man XXX

e procure a opção de mostrar a versão.

Para instalar uma versão específica de um pacote:

sudo apt-get install package=version

Por exemplo:

sudo apt-get install apache2=2.3.35-4ubuntu1

4
2018-03-03 09:03



Também podemos verificar a versão do pacote instalado usando dpkg -l package-name - Nischay
Onde você encontra / rastreia o meta 2.3.35-4ubuntu1 ao especificar a versão? - Erutan409
@ Erutan409 O comentário acima do seu é como você pode fazer isso. - user124384
@ Erutan409 - use apt-cache madison packagename - Ele irá mostrar todas as versões que podem ser vistas por qualquer repositório que você tenha instalado / configurado (incluindo PPAs) - ivanivan