quando tento "sudo gem install rubocop", recebo ...
Building native extensions. This could take a while...
ERROR: Error installing rubocop:
ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.3.0/gems/rainbow-2.2.1/ext
/usr/bin/ruby2.3 mkrf_conf.rb
current directory: /var/lib/gems/2.3.0/gems/rainbow-2.2.1/ext
/usr/bin/ruby2.3 -rubygems /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake RUBYARCHDIR=/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.1 RUBYLIBDIR=/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.1
/usr/bin/ruby2.3: No such file or directory -- /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake (LoadError)
rake failed, exit code 1
Gem files will remain installed in /var/lib/gems/2.3.0/gems/rainbow-2.2.1 for inspection.
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.1/gem_make.out
Então, eu tentei várias soluções, especificamente as de /programming/22544754/failed-to-build-gem-native-extension-installing-compass (gema diferente, mesmo erro)
Tentei reinstalar o RVM com o "rvm uninstall --disable-binary 2.2.0", que demorou um pouco, mas não foi corrigido
Em seguida, tentei $ "sudo apt-get install ruby-dev", que gera
Reading package lists... Done
Building dependency tree
Reading state information... Done
ruby-dev is already the newest version (1:2.3.0+1).
The following packages were automatically installed and are no longer required:
dkms linux-headers-4.4.0-53 linux-headers-4.4.0-53-generic
linux-image-4.4.0-53-generic linux-image-extra-4.4.0-53-generic
python-appindicator python-gconf python-gi python-glade2
python-gobject python-pexpect python-ptyprocess python-xdg
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 40 not upgraded.
Eu também tentei "atualização de gemas - sistema" para o qual eu recebo ...
Latest version currently installed. Aborting.
Todas as sugestões serão muito apreciadas como eu sou um noob total e estou preso.
rake
instalou?Respostas:
Faça
sudo gem install rake
e façasudo gem install rubocop
novamente e deve funcionar.Não parece importar que você tenha a versão correta do rake instalada. Para mim
rake --version
relatado10.5.0
, mas eu ainda estava recebendo a mesma mensagem de erro que você. Olhando para a mensagem de erro, que está procurandorake
em um caminho específico, não apenas em qualquer lugar no meuPATH
:/usr/bin/ruby2.3: No such file or directory -- /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake (LoadError)
.which rake
relatórios/usr/local/bin/rake
, não/usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake
. E, de fato, como diz a mensagem de erro, não há arquivo no/usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake
. Provavelmente isso tem a ver comrake
ter sidoapt-get install
ed em vez degem install
ed.sudo gem install rake
cria esse arquivo.fonte
Consegui resolver esse problema com
Veja este commit no GitHub .
fonte
Quando eu respondi isso em 2017, fiquei cético em relação à solução do @ SeanHammond, porque a rake gem já parecia estar instalada. Isso acaba por ter sido através do pacote rake do Debian e do sistema de integração de rubygems. Instalar o rake gem novamente, pelo Sr. Hammond, funcionou para mim hoje, pois substituiu a versão do Debian, evitando o bug subjacente. Bem, primeiro dizia:
Depois de aplicar uma correção upstream ao relatório de erros, ele dizia:
... o que me levou a ter sucesso com:
Isso é suficiente para rubygems encontrar o binário atualizado:
A solução da @ ShaunJackman também funcionou para mim. Essa pode ser a maneira que o Debian deve corrigi-lo, embora eu prefira não deixar arquivos em um diretório na minha máquina que o Debian mais tarde queira mudar.
Uma solução menos dolorosa foi configurada
rake=/usr/bin/rake
no ambiente a partir do qual eu instalei a gema que eu queria:... como agora observado no meu relatório de bug do Debian . Seu sudo pode precisar --preserve-env para passar por essa configuração.
(Em uma versão anterior desta resposta, afirmei que "o equivalente a
sudo gem install rainbow
resolveu", mas acontece que meu problema não era equivalente. Meu problema não era com gem, rainbow e rubocop, mas na verdade com gem2.1, mediawiki- gateway (ou seu sucessor, mediawiki_api) e não. A razão pela qual a instalação manual da dependência funcionou primeiro para o meu caso foi que o gem2.1 possui um bug, pelo qual prefere instalar versões de pré-lançamento como dependências. Eu suspeito, pelo código e não pelo prosa, que o bug é esse, Quando solicitado a instalar o unf, ele escolhe, e com razão, uma versão de lançamento, que por acaso usa o caminho de código ExtConfBuilder do rubygem em vez do caminho do RakeBuilder. Isso não teria ajudado o pôster original com o problema do arco-íris, pois eles não receberam uma versão de pré-lançamento. Desculpe pela longa digressão, mas talvez isso ajude alguém a enfrentar um problema semelhante.)fonte
rake=rake
trabalhou #