Não consigo instalar e executar o fakes3
gem no El Capitan Beta 5.
Eu tentei:
sudo gem install fakes3
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fakes3
Então eu tentei fazer isso da maneira dos cocoapods. Funcionou para cocoapods, mas não para falsificações3.
mkdir -p $HOME/Software/ruby
export GEM_HOME=$HOME/Software/ruby
gem install cocoapods
[...]
1 gem installed
gem install fakes3
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
sudo
para instalar o Ruby ou alterar gemas. Em vez disso, use rbenv ou RVM para instalar e gerenciar Ruby. Leia e siga as instruções nos respectivos sites. E, em qualquer um dos casos, após a instalação, não use, asudo
menos que você entenda o que está mudando e por que deseja fazê-lo.Respostas:
Isenção de responsabilidade: o @theTinMan e outros desenvolvedores do Ruby geralmente apontam para não usar
sudo
na instalação de gemas e apontam para coisas como RVM . Isso é absolutamente verdade ao desenvolver o Ruby. Vá em frente e use isso.No entanto, muitos de nós apenas quer um pouco de binário que acontece a ser distribuído como uma jóia (por exemplo
fakes3
,cocoapods
,xcpretty
...). Definitivamente, não quero me preocupar em gerenciar um rubi separado. Aqui estão suas opções mais rápidas:Opção 1: Continue usando o sudo
O uso
sudo
provavelmente é bom se você deseja que essas ferramentas sejam instaladas globalmente.O problema é que esses binários estão instalados
/usr/bin
, o que é proibido desde El Capitan. No entanto, você pode instalá-los no/usr/local/bin
lugar. É aí que a Homebrew instala suas coisas, então provavelmente já existe.O Gems será instalado
/usr/local/bin
e todos os usuários do seu sistema poderão usá-los se estiverem no PATH .Opção 2: instalar no seu diretório pessoal (sem sudo)
O seguinte irá instalar gemas
~/.gem
e colocar binários~/bin
(que você deve adicionar ao seuPATH
).Torne o padrão
De qualquer forma, você pode adicionar esses parâmetros aos seus
~/.gemrc
para não precisar se lembrar deles:ie
echo "gem: -n/usr/local/bin" >> ~/.gemrc
ou
ie
echo "gem: --user-install -n~/bin" >> ~/.gemrc
( Dica: você também pode
--no-document
pular para gerar a documentação do desenvolvedor Ruby.)fonte
gem install
resolveu o problema..gemrc
deve tergem: -n /usr/local/bin
(precisa de um espaço após -n).No meu caso, tive que reinstalar o Ruby usando o Brew . Isso parece ter resolvido o problema, pois posso instalar gemas novamente.
Depois disso, você precisa sair e fazer login novamente, graficamente ou apenas reiniciando seu terminal.
fonte
brew install ruby
coloca lá, mesmo que já esteja lá. Presumivelmente, o ruby em / usr / local está configurado para instalar suas gemas em um local que não precisa de acesso root (o que realmente faz muito sentido).gem install
isso ainda falhará.rehash
para garantir que seu shell perceba que há um novoruby
anteriormente no$PATH
. Mesmo isso não será necessário na situação em que você ainda não executouruby
a sessão do shell.Isso é devido à nova função de segurança do OS X "El Capitan". Tente adicionar em
--user-install
vez de usar o sudo:Por exemplo, se você deseja instalar o fake3, basta usar:
fonte
Tente isso. Definitivamente funcionará.
fonte
Você precisa atualizar o Xcode para o mais novo (v7.0.1) e tudo funcionará normalmente.
Se depois de instalar o Xcode mais recente e ainda não funcionar, tente instalar o gem desta maneira:
Por exemplo:
fonte
Parece que ao atualizar para o OS X El Capitain, o diretório / usr / local é modificado de várias maneiras:
[Editar] Também há uma coisa preliminar a ser feita: atualizar o Xcode ...
Solução para # 1:
Isso corrigirá as permissões no
/usr/local
diretório, o que ajudará os comandosgem install
e obrew install|link|...
funcionamento correto.Solução para # 2:
Problemas baseados em Ruby
Verifique se você corrigiu as permissões do
/usr/local
diretório (veja o item 1 acima)Primeiro tente reinstalar sua gema usando:
Observe que ele instalará a versão mais recente da gema especificada.
Se você não quiser enfrentar problemas de compatibilidade com versões anteriores, sugiro que você determine primeiro qual versão de qual jóia deseja obter e depois a reinstale com o
-v version
. Veja um exemplo abaixo para garantir que o sistema não receba uma nova versão do capistrano.Questões baseadas em cerveja
Atualize o brew e atualize suas fórmulas
Você também pode precisar vincular novamente alguns deles manualmente
fonte
Como já foi dito, o problema vem de uma função de segurança do Mac OSX desde o "El Capitan".
Usando o sistema padrão Ruby, o processo de instalação acontece no
/Library/Ruby/Gems/2.0.0
diretório que não está disponível para o usuário e fornece o erro.Você pode dar uma olhada nos parâmetros do seu ambiente Ruby com o comando
Há um DIRETÓRIO DE INSTALAÇÃO e um DIRETÓRIO DE INSTALAÇÃO DO USUÁRIO. Para usar o diretório de instalação do usuário em vez do diretório de instalação padrão, você pode usar o
--user-install
parâmetro como usando osudo
que nunca é uma maneira recomendada de fazer.Não deve haver mais nenhum problema de direitos no processo. As gemas são instaladas no diretório do usuário:
~/.gem/Ruby/2.0.0/bin
Mas para disponibilizar as gemas instaladas, esse diretório deve estar disponível no seu caminho. De acordo com o FAQ do Ruby , você pode adicionar a seguinte linha ao seu
~/.bash_profile
ou~/.bashrc
Em seguida, feche e recarregue seu terminal ou recarregue seu
.bash_profile
ou.bashrc
(. ~/.bash_profile
)fonte
Esta é a solução que eu usei:
Nota: esta correção é para a bússola, como escrevi em outra questão SO, mas usei o mesmo processo para restaurar a funcionalidade de todos os processos terminais, obviamente as gemas que você está instalando são diferentes, mas o processo é o mesmo.
Eu tive o mesmo problema. Isso ocorre porque a Apple implementou o System Integrity Protection (SIP). Você precisa primeiro desativar isso ...
Reinicialize no modo de recuperação:
Reinicie e mantenha pressionada a tecla Command + R até ver o logotipo da apple.
Depois de inicializado, selecione Utilitários> Terminal na barra superior.
tipo:
csrutil disable
então digite:
reboot
Depois de reiniciado
Abra o backup do terminal e insira os comandos:
sudo gem uninstall bundler
sudo gem install bundler
sudo gem install compass
sudo gem install sass
sudo gem update --system
As gemas individuais que falharam precisam ser corrigidas, portanto, para cada uma, faça o seguinte:
Na minha máquina, essa foi a primeira dependência que não funcionou, por isso listei :
sudo gem pristine ffi --version 1.9.3
Prossiga pela lista de gemas que precisam ser reparadas. Ao todo, você espera cerca de 10 minutos para corrigi-lo, mas você terá comandos de terminal para o funcionamento da bússola.
Captura de tela
fonte
Se a gema que você está tentando instalar exigir bibliotecas xml, tente o seguinte:
Especificamente, encontrei um problema ao instalar a nokogiri gem v 1.6.8 no OS X El Capitan
e isso finalmente funcionou para mim:
Para garantir que você tenha o libxml2 e o libxslt instalado, você pode:
e verifique se você possui as ferramentas de linha de comando do xcode instaladas:
deve retornar este erro:
fonte
A reinstalação do RVM funcionou para mim, mas tive que reinstalar todas as minhas jóias depois:
fonte
Corri o mesmo problema depois de instalar o El Capitan, tentei instalar o sass and compass em um projeto symfony, o seguinte comando retornou o seguinte erro:
$ sudo gem instalar bússola
ERRO: Erro ao instalar a bússola: ERRO: falha ao criar a extensão nativa da gema.
verificando ffi.h ... /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:434:in `try_do ': O compilador falhou ao gerar um arquivo executável. (RuntimeError)
Então tentei instalar o sass com: $ sudo gem install sass
Recebi a mesma mensagem de erro, depois de pesquisar no Google, consegui instalar o sass usando o seguinte comando:
$ sudo gem install -n / usr / local / bin sass
O exemplo acima funcionou para mim na instalação do sass, mas não na instalação da bússola. Eu li que alguém em algum lugar havia aberto uma instância do xcode, depois a fechou novamente e, em seguida, executou com sucesso o mesmo comando, após o qual funcionou para eles. Tentei abrir o xcode, mas recebi uma mensagem informando que a versão do xcode instalada não era compatível com o El Capitan. Então, atualizei o xcode da loja de aplicativos e executei novamente o seguinte comando, que desta vez foi executado com êxito:
$ sudo gem install -n / usr / local / bin compass
Eu era capaz de executar $ compass init
Agora eu tenho todas as minhas jóias funcionando e posso continuar a construir algumas coisas sass adoráveis :)
fonte
Eu tive que
rm -rf ./vendor
correrbundle install
novamente.fonte
Não gosto de instalar coisas com o sudo. uma vez que você começa com sudo, você não pode parar ..
tente dar permissões ao diretório Gems.
fonte
Isso devolverá as permissões (o Homebrew instala o ruby lá)
fonte