Como instalar o pacote com o yum sem atualizar as informações do repositório?

10

Quero instalar alguns pacotes do repositório, mas sempre quando estou tentando yum install packagenameatualizar o yum db:

Loaded plugins: fastestmirror, langpacks, presto, refresh-packagekit
Determining fastest mirrors
updates/metalink                                                                                                                      |  23 kB     00:00     
 * fedora: nl.mirror.eurid.eu
 * rpmfusion-free: ftp.astral.ro
 * rpmfusion-free-updates: ftp.astral.ro
 * rpmfusion-nonfree: ftp.astral.ro
 * rpmfusion-nonfree-updates: ftp.astral.ro
 * updates: nl.mirror.eurid.eu
fedora-awesome                                                                                                                    | 3.3 kB     00:00     
google-chrome                                                                                                                     |  951 B     00:00     
rpmfusion-free-updates                                                                                                        | 3.3 kB     00:00     
rpmfusion-free-updates/primary_db                                                                                             | 272 kB     00:08     
rpmfusion-nonfree-updates                                                                                                     | 3.3 kB     00:00     
rpmfusion-nonfree-updates/primary_db                                                                                          |  93 kB     00:05     
updates                                                                                                                       | 4.7 kB     00:00     
updates/primary_db                                                                                                            | 4.6 MB     02:35     
updates/group                                                                                                                     | 1.9 MB     00:33     

Portanto, o uso yum install packagename -Ctambém não funciona (o erro "cache não encontrado" acontece e yum makecachenão fornece resultados também). Mas eu só quero instalar pacotes sem atualizar o db.

Clark
fonte
3
Por quê? Atualizar o banco de dados significa que você tem as versões mais recentes da lista de pacotes
Smudge
Do que estamos falando? O cache do repositório / pacote yum?
thinice
1
@ sam porque a velocidade da minha Internet é muito lenta para atualizar o repositório para cada instalação.
Clark
1
@ thinice yes como você vê no log, há atualizações para todos os repositórios. Eu não preciso disso, só quero instalar o pacote sem atualizar o repositório.
Clark
1
@purple Então você deve usar um repositório local, o yum foi projetado para funcionar com acesso total aos dados do repositório, seja ele remoto ou local, o yum não se importa, mas deve ter.
Smudge

Respostas:

12

Se você deseja yumse comportar como apt-get(para não atualizar os metadados a cada execução), edite /etc/yum.confe coloque lá:

metadata_expire=never

ou

metadata_expire=7d

caso deseje atualizar os metadados após uma semana. Se você executar yum makecache, seus metadados serão atualizados como apt-get updateno Debian.

Mas lembre-se de que, se você usar "never" no arquivo de configuração, precisará se preocupar com isso manualmente. Se você usar "7d", você salvará a largura de banda dos dados, mas após uma semana, os metadados serão atualizados automaticamente.

Aqui está a metadata_expiredocumentação:

Você também pode mudar do padrão de segundos para dias, horas ou minutos, adicionando ad, h ou m, respectivamente. O padrão é 6 horas, para complementar o yum-updatesd em execução uma vez por hora. Também é possível usar a palavra "nunca", o que significa que os metadados nunca expiram.

Rafael van Horn
fonte
vai 2wfuncionar também?
Sebastian Godelet 15/05
Não 2w, não funciona. O padrão é 6 horas, para complementar o yum-updatesd em execução uma vez por hora. Você pode mudar do padrão de segundos para dias, horas ou minutos, anexando a d, h or mrespectivamente.
Shubham Chaudhary
4

O que você está perguntando é fora do espírito de yum em alguns aspectos. O Yum é um gerenciador abrangente de pacotes e dependências . Para fazer seu trabalho e não estragar o sistema com pacotes incompatíveis de combinação e combinação, ele precisa ter os dados que você não deseja atualizar.

Você pode analisar manualmente quais dependências um pacote possui usando deplist <packagename>e instalá-las manualmente.

Não ter o yum com uma atualização parece uma solicitação estranha, independentemente das circunstâncias ...

gelo fino
fonte
Mas por que o apt-get não atualiza o repositório quando você digita o comando install? Ele atualizará apenas o repositório e somente quando você digitar update. Quero que você faça a mesma coisa.
Clark
1
Se você executar apt-get install foo - e a versão do pacote remoto mudou, você vai ter mensagens como esta: bitbucket.org/ianb/silverlining/issue/26/... - Da mesma forma com todas as dependências que foram atualizados no repo também. (Essencialmente, forçando você a executar a atualização).
thinice
2
Sim, mas quando executo o yum para instalar o aplicativo que não foi alterado, ele atualiza o db também.
Clark
4

Se você deseja instalar um pacote sem atualizar o db, baixe o rpm diretamente (via yumdownloader, ftp ou navegador da web) e instale-o diretamente com o rpm:

rpm -ivh packagename

Eu não recomendo que você faça isso, pois é muito mais trabalhoso rastrear as dependências (é por isso que o yum é criado) e pode interromper futuras instalações via yum.

Rilindo
fonte
Sim, mas por que o apt-get, por exemplo, não atualiza o repositório quando você diz para ele instalar o pacote? E para atualizar você usa o comando 'apt-get update'.
Clark