chroot
pode receber um comando para executar. Isso pode funcionar:
chroot /mnt/hard_disk rpm -i glibc*.rpm
Além disso, rpm
tem a opção --root
, por isso esta é outra opção:
rpm -i --root /mnt/hard_disk glibc*.rpm
Este é um reenvio do Stack Overflow, considerando que este site pode ser um alvo melhor.
Após uma atualização de distribuição do Fedora (27- > 28) com dnf
, tentei resolver manualmente os conflitos entre as versões do pacote (necessário para manter as versões antigas do sistema operacional; a versão do SO eficaz é selecionada no tempo de inicialização no menu GRUB2) .
dnf
impediram a remoção de pacotes conflitantes e usei rpm -e xxx --force
para fazer isso. Eu inadvertidamente removi a glibc e o PC imediatamente errou.
Eu quero evitar a reconstrução do meu computador a partir do zero porque
Usando um disco de recuperação, eu poderia inicializar e examinar o disco rígido. Tudo parece relativamente "limpo". Os arquivos do pacote glibc estão simplesmente ausentes.
Eu não consegui completar chroot
para a raiz anterior (para executar rpm -i glibc
) porque chroot
tenta lançar /bin/bash
que está faltando.
Eu encontrei Como eu extraio o conteúdo de um rpm? no StackOverflow, mas isso não responde a minha pergunta, porque eu quero o que o rpm faria, mas em outro "root".
Existe uma maneira de dizer ao rpm para fazer seu trabalho usual, mas para instalar arquivos em, digamos, /mnt/hard_disk/
em vez de /
?
Eu cuidarei depois da consistência e integridade do banco de dados do pacote.
Existe uma maneira de fazer isso, embora não use o comando rpm
. Você precisará ter o binário rpm2cpio
disponível e, em seguida, simplesmente:
# cd /mnt/hard_disk
# rpm2cpio <rpmfile> | cpio -idmv
Como você mencionou, você precisará lidar com problemas de integridade do RPMDB posteriormente, mas isso colocará os arquivos em seu lugar. Existem inúmeras páginas web com informações e mais detalhes sobre isso disponíveis através de uma simples pesquisa no google, uma delas é link .
Tags rpm