Se o YUM estiver se recusando a instalar um pacote, provavelmente é porque:
- a) O pacote tem dependências que não estão disponíveis
- b) O pacote tem um conflito com um pacote já instalado
- c) O YUM tem dados antigos e precisa do cache limpo (
yum clean headers
)
Yum normalmente dará uma boa orientação sobre qual é o problema, se houver, mas às vezes ele retornará "Nothing to do"!
Primeiro, verifique se o pacote ainda não está instalado. Neste caso, você precisará se conectar ao MySQL ( mysql -u root -p
) e, em seguida, verificar a versão ( SHOW VARIABLES LIKE "version";
). Para muitos pacotes, você pode simplesmente executar httpd -v
ou nginx -v
etc etc.
Se o pacote ainda não estiver instalado ou se uma versão inferior estiver instalada, normalmente você poderá instalar ou atualizar.
Ao criar um RPM, um arquivo spec
lista quais pacotes e versões são necessários para o pacote ser instalado. Ler este arquivo 'spec' é a melhor maneira de entender completamente o que é necessário e, para isso, você normalmente terá que encontrar o RPM de origem, também conhecido como SRPM.
O CentOS fornece uma ótima orientação sobre a reconstrução de um SRPM para inspecioná-lo ou personalizá-lo: Reconstruir um RPM de origem
Dentro do arquivo de especificações, você provavelmente encontrará Requires
e BuildRequires
, preste muita atenção a eles, pois são as dependências que o pacote requer. Outra configuração que é frequentemente negligenciada é a "Época". O número da Epoch permite que pacotes antigos sejam substituídos por nomes diferentes, onde os números de versão são menores que a versão instalada. Isso é importante para os pacotes que mudam de nome, mas geralmente são adicionados.
Suponho que quando o YUM devolve Error: Nothing to do
, o número da Época é o problema.