
Eu tenho uma máquina CentOS na qual já instalei o openssl-devel usando
$ yum install openssl-devel
Ele baixou e instalou todos os pacotes de dependências. Agora preciso de todos esses pacotes RPM. É possível baixar apenas os pacotes RPM? Quando eu 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
já que já está instalado.
Alguém sabe como baixar esses pacotes RPM no mesmo sistema?
Responder1
É possível baixar os pacotes de um RPM que já está instalado através do --downloadonly
switch. 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.
De qualquer forma, tudo que você precisa fazer é dizer ao yum parareinstalaro pacote:
yum --downloadonly --downloaddir=/tmp/rpm_files/ reinstall package_name
Claro, 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 que isso já foi descrito em outro lugar no SE.
Responder2
yumdownloader
in yum-utils
irá baixar todos os pacotes que você passar para ele ou, opcionalmente, gerar os URLs dos quais os pacotes podem ser baixados.
Responder3
Você pode usar orepotrackcomando 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
Responder4
Aqui está o que eu faço:
sudo yum install --config=./yum.conf
--installroot=/tmp/f541Sdex
--downloadonly
--downloaddir /tmp/DL-e25xds
$(cat list-of-packages)