Se houver duas (ou mais) versões de um determinado RPM disponíveis em um repositório YUM, como instruir yum
para instalar a versão desejada?
Observando o serviço de compilação Koji, percebo que existem várias versões.
Se houver duas (ou mais) versões de um determinado RPM disponíveis em um repositório YUM, como instruir yum
para instalar a versão desejada?
Observando o serviço de compilação Koji, percebo que existem várias versões.
Para ver quais versões específicas estão disponíveis, yum
você pode usar o --showduplicates
switch. Ele fornece uma lista como "package name.architecture version":
$ yum --showduplicates list httpd | expand
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
Loading mirror speeds from cached hostfile
* fedora: mirror.steadfast.net
Available Packages
httpd.x86_64 2.4.6-6.fc20 fedora
httpd.x86_64 2.4.10-1.fc20 updates
Quanto a instalar uma versão específica? Você pode anexar as informações da versão ao nome do pacote, removendo o nome da arquitetura, assim:
$ sudo yum install <package name>-<version info>
Por exemplo, neste caso, se eu quisesse instalar a versão mais antiga, 2.4.6-6, faria o seguinte:
$ sudo yum install httpd-2.4.6-6
Você também pode incluir as informações da versão ao especificar um pacote. Nesse caso, como estou lidando com o Fedora 20 (F20), as informações de lançamento seriam "fc20" e as informações de arquitetura também.
$ sudo yum install httpd-2.4.6-6.fc20
$ sudo yum install httpd-2.4.6-6.fc20.x86_64
Se você não tiver certeza de que está construindo os argumentos corretamente, também pode consultar repoquery
.
$ sudo yum install yum-utils # (to get `repoquery`)
$ repoquery --show-duplicates httpd-2.4*
httpd-0:2.4.6-6.fc20.x86_64
httpd-0:2.4.10-1.fc20.x86_64
Você também pode usar uma das seguintes opções para baixar um RPM específico da Web e usá yum
-lo para instalá-lo.
$ yum --downloadonly <package>
-or-
$ yumdownloader <package>
E instale-o assim:
$ sudo yum localinstall <path to rpm>
E se eu quiser baixar tudo o que o pacote X requer?
$ yumdownloader --resolve <package>
$ yumdownloader --resolve vim-X11
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
--> Running transaction check
---> Package vim-X11.x86_64 2:7.3.315-1.fc14 set to be reinstalled
--> Finished Dependency Resolution
vim-X11-7.3.315-1.fc14.x86_64.rpm | 1.1 MB 00:01
Observe que está fazendo uma verificação de dependência e baixando as peças ausentes. Veja minha resposta que o aborda com mais detalhes aqui: Como baixar um arquivo do repositório e instalá-lo posteriormente sem conexão com a Internet? .
@updates
e a versão inicial do sistema operacional localizado@fedora
. Por exemplo, se você tentar instalarhttpd-2.4.8-1
,yum
diria que o pacote não está disponível.python-libs-2.7.5-12.fc20.x86_64
foi instalado no meu computador, mas foi substituído. Supondo que agora eu queira instalar este pacote específico,yumdownloader python-libs-2.7.5-12*
diriaNo Match for argument python-libs-2.7.5-12* Nothing to download
. O que estou tentando dizer é que, uma vez que um novo pacote chegue, o antigo não será mais acessível a partir do yum. Você pode instalar apenas o pacote mais recente ou a versão inicial, mas não as versões intermediárias.yum downgrade ...
se o pacote já estiver instalado e tentar voltar mais tarde. No meu QI, estava tentando mostrar como alguém selecionaria manualmente uma versão específica de um pacote que ainda não havia sido instalado. docs.fedoraproject.org/pt-BR/Fedora/14/html/…Outra opção, você pode baixar o
rpm
arquivo e instruiryum
a fazer umlocalinstall
:Um bom lugar para obter os pacotes necessários é rpmfind.com e procure o nome do pacote.
fonte
yum --downloadonly <package>
, seguido poryum localinstall <path to package>
também. Você também pode usar o utilitárioyumdownloader <package>
.Você também pode usar o comando option:
fonte