Como posso convencer Rubygems (1.3.3) que eu realmente quero isso para instalar dependências?
Pergunta
Para qualquer jóia que tem dependências, eu recebo o seguinte (com os nomes alterados conforme o caso):
Tentativa 1:
sudo gem install mojombo-jekyll -s http://gems.github.com/
ERROR: Error installing mojombo-jekyll:
mojombo-jekyll requires RedCloth (= 4.1.0, runtime)
Tentativa 2:
sudo gem install mojombo-jekyll -s http://gems.github.com/ -y
INFO: `gem install -y` is now default and will be removed
INFO: use --ignore-dependencies to install only the gems you list
ERROR: Error installing mojombo-jekyll:
mojombo-jekyll requires RedCloth (= 4.1.0, runtime)
Tentativa 3:
sudo gem install mojombo-jekyll -s http://gems.github.com/ --include-dependencies
INFO: `gem install -y` is now default and will be removed
INFO: use --ignore-dependencies to install only the gems you list
ERROR: Error installing mojombo-jekyll:
mojombo-jekyll requires RedCloth (= 4.1.0, runtime)
Solução
O problema não é a dependência relacionados, mas fonte relacionada. Se você especificar a opção '-s', rubygems só vai usar essa fonte ou fontes.
sudo gem install mojombo-jekyll -s http://gems.github.com/ -s http://gems.rubyforge.org
Isto irá dizer rubygems usar tanto rubyforge e github. A maioria das pessoas tendem a tomar a abordagem de adicionar a fonte gem ao seu ambiente, em vez de fazê-lo manualmente de cada vez.
Outras dicas
Tente instalar a versão 4.1.0 de RedCloth gem em primeiro lugar.
sudo gem install RedCloth -v 4.1.0
Em seguida, instale gem mojombo-jekyll.
sudo gem install mojombo-jekyll -s http://gems.github.com/
Eu acredito que ele é relacionado à este bug . Particularmente:
Depois de alguns testes eu acho que estreitaram para baixo quando isso acontece:
Se gem foo depende bar gem (qualquer versão), em seguida, instalar foo também instala seu bar dependência.
Se gem foo depende bar 1.0 e bar 1.0 é a versão mais recente, em seguida, instalar foo também instala bar 1.0.
Se gem foo depende bar 1.0, mas bar 1.1 também existe no repositório remoto, gem install achados bar 1.1 e reclama que bar 1.0 está em falta.
RedCloth 4.1.0 é uma versão velhote. Parece que sua jóia tem um fixa dependência 4.1.0, mas 4,19 é a versão mais recente, por isso há uma incompatibilidade ocorrendo.