Como faço para buscar uma versão específica do pacote de um repositório?

2

Adicionar um PPA, em seguida, executar apt-get update para buscar parece buscar apenas a versão mais recente desse PPA, mas eu gostaria de instalar uma versão específica.

Por exemplo: estou adicionando o ondrej/php5-5.6 ppa. Após uma atualização, apt-cache policy php5 mostra que as versões disponíveis são:

  • 5.6.9+dfsg-1+deb.sury.org~trusty+2
  • 5.5.9+dfsg-1ubuntu4.9
  • 5.5.9+dfsg-1ubuntu4

Há alguns dias, a versão mais recente do PPA era 5.6.8+dfsg-1+deb.sury.org~trusty+4 , mas agora está atualizada. Isso significa que não posso executar um apt-get install e instalar a versão específica desejada.

Isso é possível usando o apt?

    
por dannyw88 02.06.2015 / 22:02

4 respostas

2

Você só pode instalar a versão mais recente de um PPA, pois versões antigas são excluídas quando novas versões de um pacote são criadas e publicadas em um PPA.

    
por dobey 02.06.2015 / 22:59
1

Parece que usar apt-get install php5=5.6.* para corresponder ao número da versão resolve o problema.

Procurando na barra de ativação, a versão 4.6.8 não existe mais, somente a versão 4.6.9 existe.

Da mesma forma, o ppa:git-core/ppa PPA na barra de ativação contém apenas as versões 2.4.2 e 2.3.7. Parece que o último lançamento de patch de cada versão secundária é mantido.

Usando esse significado, posso vincular a instalação a uma versão secundária específica, enquanto ainda recebo atualizações de patch.

    
por dannyw88 02.06.2015 / 22:53
1

@Dobey answer parece ser a melhor solução na sua situação. Porém, se você instalou um pacote de um PPA específico, o que você pode fazer é marcar esse pacote quando estiver instalado, para manter essa versão. Por exemplo, execute:

sudo apt-mark hold packagename
    
por JoKeR 02.06.2015 / 23:06
1

Às vezes, você pode obter versões antigas, dependendo da origem. Na maioria das vezes, quando um pacote é atualizado, ele substitui a versão atualizada anterior (alguns repositórios mantêm a primeira versão desse release, até que o lançamento seja End Of Life). Isso também depende de as versões mais recentes incluírem atualizações de segurança ou de serem sem mais suporte 'upstream' (de onde veio o pacote) .

Se a versão que você deseja instalar ainda estiver no repositório, você pode usar esta sintaxe para instalar o pacote:

sudo apt-get install apache2=2.2.20-1ubuntu1

Se não estiver disponível no repositório que você está usando, você poderá obter o pacote em outro lugar.

Com o PPA você parece estar usando, você pode atualmente obter a versão 5.6.9. Mas há outro PPA pelo autor, a partir do qual você pode obter a versão 5.5.25. (Há também este com 5.4.41, mas apenas para 12.04)

Existem também sites de terceiros que muitas vezes têm versões antigas (e por vezes mais recentes). Para o Ubuntu, Atualizações do Ubuntu (há outros sites também - por exemplo, para o Fedora, etc. há rpmfind (sim, RPMs .... - você pode usar o alien (veja abaixo), ou obter o src.rpm e usar o material para construir algo utilizável em non Sistemas -RPM: D ).

Se tudo mais falhar, você pode tentar obter uma versão fonte da versão que você quer (para PHP, veja aqui ) e, em seguida, faça os pacotes a partir disso. Isso você pode construir e instalar diretamente , ou compila o pacote deb (s) dele e instale-o.

Você também pode usar alien para instalar pacotes que não estão no formato deb (isso parece incluir tar.gz ).

    
por Wilf 03.06.2015 / 14:40