Eu tenho um servidor com conectividade de rede, onde posso usar "yum install $ PACKAGE".
Eu quero um comando yum, como yum cache-rpms $PACKAGE $DIRECTORY
tal, para que todos os arquivos RPM necessários sejam baixados para $ DIRECTORY, que também terão um arquivo ( Install.sh
) informando a ordem na qual esses RPMs serão instalados, em muitos outros servidores sem conectividade à rede.
Install.sh
pode até ser um script de shell, que tem o mesmo comportamento de yum install $PACKAGE
, exceto que ele não usará a rede, mas usará apenas$DIRECTORY
.
Possível?
Estou procurando uma solução geral em que yum e RPM estejam disponíveis, mas por especificidade: Ele está em um conjunto de servidores CENTOS 6.7.
Respostas:
Aqui está um exemplo específico usando "httpd" como o pacote para baixar e instalar. Este processo foi testado no CentOS6 e CentOS7.
Instale o material necessário e crie um local para colocar os RPMs baixados:
Faça o download dos RPMs. Isso usa o truque installroot sugerido aqui para forçar o download completo de todas as dependências, já que nada está instalado nessa raiz vazia. Yum criará alguns metadados, mas vamos jogar tudo fora. Note que para o CentOS7
releasever
seria "7".Sim, isso foi a versão pequena. Você deveria ter visto o tamanho dos downloads de repositório completo!
Gere os metadados necessários para transformar nossa nova pilha de RPMs em um repositório YUM e limpe as coisas que não precisamos mais:
Configure o diretório de download como um repositório. Observe que para o CentOS7 a gpgkey seria nomeada "7" em vez de "6":
Para verificar as dependências ausentes:
Eu não descobri por que no CentOS7 isso relata coisas como
libssl.so.10(libssl.so.10)(64bit)
falta dehttpd-tools
quandoopenssl-libs-1.0.1e-51.el7_2.2.x86_64.rpm
(o provedor dessa biblioteca) está claramente presente no diretório. Ainda assim, se houver algo obviamente ausente, pode ser uma boa chance de voltar e adicioná-lo usando o mesmoyum install --downloadonly
método acima.Quando estiver offline ou depois de copiar o
/var/tmp/httpd
diretório de repositório para outro servidor, configure o repositório lá:Espero que não haja dependências ausentes!
fonte
Parece que você está perguntando o
yumdownloader
que está contido no pacoteyum-utils
. Já existem algumas perguntas e respostas sobre isso, consulte, por exemplo, Baixar todas as dependências com o yumdownloader, mesmo se já estiver instalado? ou Como encontro URLs de pacote com o Yum?yumdownloader
fará o download dos pacotes, embora não gere um arquivo,Install.sh
pois a ordem pode ser determinada pelo próprio yum; portanto, você pode instalar os pacotes na caixa de destinoyum install ./*rpm
na pasta com os pacotes baixados (que precisa incluir todas as dependências em comparação com um instalação básica - veja o primeiro link acima sobrerepotrack
)fonte
Como precisei várias vezes, automatizei a resposta do @Steve Bonds. Apenas certifique-se de definir
PKG
como o pacote a ser instalado nas duas máquinas (Isenção de responsabilidade: para o CentOS 7. No CentOS 6, altere o local--releasever
eCentOS-7
.máquina online
na máquina offline:
fonte
-y
o último comando para confirmar a instalação dos pacotes quando executados em segundo plano.