Baixar pacotes RPM para o comando que já está instalado

5

Eu tenho uma máquina do CentOS na qual eu já instalei o openssl-devel usando

$ yum install openssl-devel 

Baixou e instalou todos os pacotes de dependências. Agora eu preciso de todos esses pacotes RPM. É possível baixar apenas os pacotes RPM? Quando faço isso:

 $ yum install  openssl-devel -y --downloadonly 

Diz

Package 1:openssl-devel-1.0.1e-4.fc18.x86_64 already installed and latest version

desde que já está instalado.

Alguém sabe como baixar esses pacotes RPM no mesmo sistema?

    
por abubacker 17.05.2013 / 14:29

4 respostas

5

yumdownloader in yum-utils fará o download de todos os pacotes que você passar para ele ou, opcionalmente, poderá gerar as URLs das quais os pacotes podem ser baixados.

    
por 17.05.2013 / 14:34
2

Você pode usar o comando repotrack do pacote yum-utils. Ele fará o download de toda a árvore de dependências - , mesmo que já esteja instalado .

Exemplo:

sudo yum install yum-utils      # Install yum-utils
sudo repotrack openssl-devel    # Download all dependencies for openssl-devel


Exemplo de saída:

[sbadra@rhel6 ~]$ sudo yum install openssl-devel
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Setting up Install Process
Package openssl-devel-1.0.1e-57.el6.x86_64 already installed and latest version
Nothing to do

[sbadra@rhel6 ~]$ sudo repotrack openssl-devel
Downloading audit-libs-2.4.5-6.el6.x86_64.rpm
Downloading audit-libs-2.4.5-6.el6.i686.rpm
Downloading basesystem-10.0-4.el6.noarch.rpm
Downloading bash-4.1.2-48.el6.x86_64.rpm
Downloading ca-certificates-2017.2.14-65.0.1.el6_9.noarch.rpm
Downloading chkconfig-1.3.49.5-1.el6.x86_64.rpm
Downloading coreutils-8.4-46.el6.x86_64.rpm
Downloading coreutils-libs-8.4-46.el6.x86_64.rpm
.... more packages ....
Downloading openssl-1.0.1e-57.el6.i686.rpm
Downloading openssl-1.0.1e-57.el6.x86_64.rpm
Downloading openssl-devel-1.0.1e-57.el6.i686.rpm
Downloading openssl-devel-1.0.1e-57.el6.x86_64.rpm
.... more packages ....
Downloading sed-4.2.1-10.el6.x86_64.rpm
Downloading setup-2.8.14-23.el6.noarch.rpm
Downloading tzdata-2018c-1.el6.noarch.rpm
Downloading zlib-1.2.3-29.el6.x86_64.rpm
Downloading zlib-1.2.3-29.el6.i686.rpm
Downloading zlib-devel-1.2.3-29.el6.i686.rpm
Downloading zlib-devel-1.2.3-29.el6.x86_64.rpm
    
por 23.02.2018 / 20:29
1

É possível baixar os pacotes de um RPM que já está instalado usando a opção --downloadonly . Não sei por que o yum não verifica essa configuração antes de verificar se o pacote já está instalado, mas acho que isso pode ser causado pela arquitetura subjacente da ferramenta.

Enfim, tudo que você precisa fazer é dizer ao yum para reinstalar o pacote:

yum --downloadonly --downloaddir=/tmp/rpm_files/ reinstall package_name

É claro que o yum não saberá quais dependências foram instaladas apenas para este pacote, então se você pegar os RPMs e tentar instalá-los em um sistema diferente, algumas dependências podem estar faltando. Existem maneiras de explorar todo o gráfico de dependência e tenho certeza de que isso já foi descrito em outro lugar no SE.

    
por 15.03.2017 / 18:08
1

Uma possibilidade a longo prazo pode ser designar uma máquina como a que pode ser baixada da internet, e então executar o NFS (ou um servidor web) para expor / var / cache / yum aos hosts internos.

Você precisaria então atualizar sua configuração do yum, para adicionar:

[main]
keepcache = 1

Por link :

Once you enabled caching, every yum operation may download package data from the configured repositories.

Em termos mais práticos:

$ sudo yum install -y nginx
$ sudo find /var/cache/yum/ -type f -name '*.rpm'
<...snip....>
/var/cache/yum/x86_64/7/epel/packages/nginx-1.10.2-1.el7.x86_64.rpm

As outras respostas realmente resolverão seu problema imediato, onde isso só ajudará se você executar yum reinstall para os pacotes que você já possui e desejar RPMs para.

    
por 15.03.2017 / 18:53

Tags