Após um desligamento imundo e um fsck colorido, um monte de arquivos desapareceu. A saída do 'rpm -Va' tem várias centenas de linhas (principalmente arquivos ausentes, mas também alguma soma de verificação e outras incompatibilidades). Existe uma maneira fácil de reinstalar pacotes com arquivos ausentes e / ou corrompidos?
O sistema operacional em questão é o Fedora 22.
yum reinstall $(rpm -qa --qf="%{N}-%{V}\n" | sort)
Respostas:
Para fins de referência e integridade, um comando que seria capaz de alcançar o que inicialmente era pedido seria algo assim (rapidamente mexido juntos, mas está funcionando)
Aqui está uma breve explicação das várias partes:
Irá executar uma verificação completa em todos os pacotes atualmente instalados / listados no banco de dados rpm. Ele também redirecionará o stderr para o stdout, pois aqui na minha caixa alguns erros causados pela ativação do pré-link são relatados como erros, mas nós os queremos no stdout.
Atenção: Precisa ser executado como root para poder verificar todos os arquivos, permissões e proprietário / grupo.
suprime exibir de linhas emtpy e tais dos erros prelink (exemplo de tal erro:
prelink: /tmp/#prelink#.B14JBi: Recorded 10 dependencies, now seeing -1
)filtrará a
rpm -Va
saída para mostrar apenas os nomes de arquivosconsultará todos os nomes de arquivos obtidos nos quais os pacotes estão contidos e exibirá o nome e a versão do pacote
suprimirá combinações duplicadas de nome / versão do pacote.
Ao todo, você receberá uma lista de pacotes que falharam na verificação.
rpm -Va
ainda pode mostrar alguns problemas não relacionados, pois também verifica as dependências entre os pacotes, que talvez precisem ser suprimidos com a adição--nodeps
.fonte
Recentemente, tive um problema semelhante com a falta de arquivos no openSUSE 13.2 e o corrigi com:
As opções para rpm e a chamada para awk destinam-se a economizar tempo no meu caso, porque não ocorreu corrupção.
fonte
--nofiles
e, portanto, basicamente fazer o mesmo,yum check dependencies
pois verificará todos os pacotes rpm instalados quanto a problemas de dependência.--nofiles
economizaria muito tempo para instalações não-SSD, mas você também omitiria a verificação de arquivos ausentes. ... apenas por uma questão de perfeição. E lembre-se, se você pesquisar por cordas inglês, você pode querer prefixo comLC_ALL=C
;)