Instalando pacotes yum no sistema CentOS 6 com sistema airgapped (offline)

4

Eu tenho um sistema CentOS 6 que, por motivos de segurança, é suspenso. Pode nunca ter sido conectado à internet e, se tiver, não foi atualizado há muito tempo.

Eu quero colocar todos os pacotes .rpm em uma unidade para que eles possam ser instalados offline sem consultar a Internet. No entanto, o problema que estou encontrando na minha VM de teste é que yum fica pendente e tenta atualizar de um repositório on-line, mesmo que o caminho local seja especificado.

Além disso, existe uma maneira de pegar facilmente um pacote e todas as dependências para esse pacote usando yum-utils / yumdownloader ? No momento, ele ainda perde algumas dependências (por exemplo, quando eu pego o rpm do gcc-c ++, ele pega cpp e gcc , mas não puxa cloog-ppl , mpfr ou ppl )

Já tentei uma solução como esta , mas não posso presumir já haverá uma árvore de dependência ou que yum estará atualizado.

Em uma nova instalação da imagem do docker, na primeira vez que tento executar o yum (com a internet desativada), recebo Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again

    
por DeusXMachina 12.04.2017 / 00:28

2 respostas

2

Se você está preocupado com a compatibilidade entre a versão instalada e a última estável, você pode determinar a versão do centos em /etc/redhat-release e usar os pacotes em link , no entanto, tenha em mente que eles não conterão atualizações de segurança nem correções de bugs.

Para fazer o download de pacotes - use as instruções oficiais do redhat: link

yum install yum-plugin-downloadonly
yum install --downloadonly --downloaddir=<directory> <package>

ou

yum install yum-utils
yumdownloader --resolve

Você também pode ver a replicação do histórico do yum na vm em que deseja baixar o rpms com as técnicas desta resposta: link

The easiest way, and it's worked for a long time is:

yum-debug-dump => gives file.
yum-debug-restore <file-from-debug-dump>

...which works much like the get/set selections dpkg command, AIUI. Also note that if you are replaying history you can use:

yum history addon-info last saved_tx => gives file
yum load-tx <file-from-addon-info>

...instead of having to parse it yourself.

Editar:

Para instalar todos os rpms do diretório, cd e simplesmente use rpm -ivh *.rpm se você quiser instalá-los, ou rpm -Uvh *.rpm se alguns arquivos baixados forem mais recentes que os já existentes, e você pode atualizá-los.

    
por 12.04.2017 / 01:02
1

editar: NOPE, nada é tão fácil assim. Ainda recebendo esse erro em uma pilha nova: Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again

Se eu deixar o yum acessar a internet apenas o tempo suficiente para se configurar, o seguinte funciona:

Primeiro, consegui remover todos os pacotes de dependências com chamadas para

yum install -y --downloadonly --downloaddir=$pkgdir <package>

e

yum reinstall -y --downloadonly --downloaddir=$pkgdir <package>

para forçar os pacotes já instalados a puxar suas .rpm e dependências. Então, uma vez que eu tinha comprado meu pacote de pacotes, coloquei isso em um novo sistema.

Primeiro, corri sed -i 's/enabled=1/enabled=0/' '/etc/yum/pluginconf.d/fastestmirror.conf' para desativar o plugin fastmirror.

Então, eu pude instalar todos os pacotes que eu precisava no cd'ing no diretório com os pacotes, então, cuidadosamente, chamando

yum install --disablerepo=\* packag*

na ordem exigida pelas dependências. Então isso parecia meio

yum install --disablerepo=\* epel*
yum install --disablerepo=\* ius*
yum install --disablerepo=\* libstd*
yum install --disablerepo=\* mpfr*
yum install --disablerepo=\* cpp*
yum install --disablerepo=\* libgcc*
yum install --disablerepo=\* libgomp*
yum install --disablerepo=\* libg*
yum install --disablerepo=\* ppl*
yum install --disablerepo=\* cloog*
yum install --disablerepo=\* gcc*
yum install --disablerepo=\* atlas*
yum install --disablerepo=\* python*

E voila! Consegui rodar o python3.5 em um sistema totalmente com airgap.

    
por 12.04.2017 / 23:34