Eu usei o rvm para instalar o ruby 1.9.3. apesar de ter sido instalado com sucesso, reclamou da libyaml. e agora toda vez que eu quero instalar uma gema (digamos trilhos), esse aviso aparece:
It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby.
Eu uso o Mac os X 10.7 (Lion).
ruby-on-rails
ruby
macos
rvm
Pouya
fonte
fonte
brew doctor
. Ele lista um problema com o link libyaml?rm -rf /usr/local/lib/ruby/gems/ && brew reinstall ruby
como indicado no oficial homebrew-core Gtihub resolvido problemaRespostas:
No meu caso
e
resolveu o problema.
Para pessoas que usam o Ubuntu, verifique se ele
libtool
está instalado antes das etapas acima:Para usuários do macOS (com homebrew):
fonte
rvm package install libyaml
rvm pkg install libyaml
. Dervm usage
:pkg :: Install a dependency package {readline,iconv,zlib,openssl}
.package
.rvm pkg install libyaml
, recomenda-se reinstalar todos os rubis comrvm reinstall all --force
. Pode ser útil se você tiver mais de um.rvm reinstall 1.9.3 --with-libyaml-dir=/home/rails/.rvm/usr
que foi sugerido em serverfault.com/questions/442150/…para ubuntu e rvm
trabalhou
fonte
Se não estiver usando o rvm, mas você estiver construindo e instalando o ruby 1.9.3 a partir do zero - por exemplo, você está gerenciando suas versões do ruby com rbenv - você deve instalar o libyaml primeiro. Obtenha em http://pyyaml.org/ ; no momento, o arquivo que você deseja é http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz . Abra o tarball e cd na pasta resultante. Então:
Agora você está pronto para construir o ruby. Faça o download do ruby em http://ftp.ruby-lang.org/pub/ruby/ . Abra o tarball e cd na pasta resultante. Agora:
(Ou possivelmente
sudo make install
, dependendo de onde você o está colocando.) Se estiver usando o rbenv, você saberá que funcionou se alternar pararbenv global 1.9.3-p194
(ou como quer que sua versão seja chamada) egem --version
funcionar sem aviso. Isso funcionou para mim no Mac OS X 10.6.8. ( Atualização : eu apenas tentei isso no Mac OS X 10.8.1 e parece que também funcionou bem.)fonte
gem --version
sons corrigir, mas talvez você tem o seu caminho munged por causa do uso anterior de rvm/usr/local
ao configurar yaml, então rubi configure com--with-opt-dir=/path/to/yaml/prefix --with-yaml --prefix=/path/to/ruby/prefix
É o que funcionou para mim (no Snow Leopard).
fonte
No meu caso, a solução foi adicionar a
psych
gema ao Gemfile.fonte
Eu tive esse problema. libyaml não compilaria. Acontece que eu estava sentindo falta do libtool.
Isso resolveu meu problema.
fonte
Se você instalou o ruby no macOS com homebrew, tente esta solução .
rm -rf /usr/local/lib/ruby/gems/ && brew reinstall ruby
Note que isso irá livrar-se de todas as gemas instaladas. É melhor salvar uma lista de gemas instaladas
gem list
antes de executar isso.fonte
gem list
é o que causa o erro em primeiro lugar (para mim).fonte
brew doctor
problemas o corrigiu para mim. Eu recebi um erro muito semelhante ao erro do interlocutor enquanto tentavagem install jekyll
. Todos os comandos através do rvm também estavam dando erros. O problema subjacente e não tão óbvio é que o homebrew, estou assumindo os meios pelos quais o rvm instala coisas, estava tendo problemas. Eu havia atualizado recentemente para o Mavericks no Mac OS. No meu caso, resolver todos osbrew doctor
problemas eliminou todas as mensagens de erro. Agora tudo está funcionando sem problemas.Consertei isso finalmente. O problema era que, embora eu instalei o libyaml com o brew, ele nunca foi vinculado. Eu tive que remover um arquivo de cabeçalho conflitante e depois
brew link libyaml
.fonte
Instalando o ruby com o rvm para mac osx, use autolibs para instalar o libyaml e primeiro desinstalar o libyaml ajuda.
Isso funcionou para mim:
fonte
Eu tive o mesmo problema (Lion 10.7.4) e o corrigi atualizando o rvm e reinstalando o ruby
1) atualize o rvm https://rvm.io//rvm/install/
2) Em seguida, use o rvm para reinstalar o ruby 1.9.3 (que havia sido instalado anteriormente com a versão anterior do rvm)
fonte
Reinstalei o ruby 1.9.3 com o suporte libyaml:
Eu me certifiquei de usar o 1.9.3 antes de instalar o psych:
Eu instalei psych:
fonte
recarregue seu .rvmrc (saída de CD, entrada de CD)
fonte
Nenhuma dessas respostas funcionou para mim.
Encontrei minha resposta em https://github.com/sstephenson/ruby-build/issues/119 Estou na máquina virtual Centos 6.3.
Você DEVE instalar o libyaml antes de instalar o ruby. Se você já instalou o ruby, você deve se livrar dos arquivos antes de compilar o código fonte novamente !!!
fonte
Criei os arquivos libyaml separadamente da fonte e os instalei em / usr / local / lib. O ruby que o RVM criou ainda não os viu e, em vez de mexer com o makefile ou o sistema LD_LIBRARY_PATH, eu apenas copiei / usr / local / lib / libyaml * para ~ / .rvm / rubies / ruby-1.9.3-p327 / lib /
Isso acalmou o aviso.
fonte
Isto é o que funcionou para mim no Ubuntu:
- instalando o libyaml-dev (sudo apt-get install libyaml-dev)
- instalando o rvm + ruby 1.9.3
fonte
Tentei todas essas respostas e ainda não consegui fazê-lo funcionar. Instalei o libyaml com homebrew e depois instalei o Ruby 1.9.3 e 2.0.0 com o rvm. Cada vez queixava-me que estava sentindo falta do psych (libyaml). Mas tentar instalar o libyaml me disse que ele já estava instalado. Enxágue, repita. Urgh.
Finalmente, o que fiz foi desinstalar o libyaml. Então eu habilitado autolibs em rvm , que (pelo menos no OSX) permite rvm de instalar e gerenciar dependências mais diretamente. Agora, quando instalei o Rubies, o rvm conseguiu instalar o libyaml e reconheceu que estava no lugar certo.
Portanto, se você já tentou todas as outras opções, tente remover o libyaml e depois instalar o Rubies. É intuitivo em relação às mensagens de erro, mas foi o que finalmente funcionou para mim.
fonte
Eu tive o mesmo problema ( Cent OS 5.7 ), nenhuma das soluções acima funcionou para mim.
Depois de fazer várias reinstalações, percebi que ele estava procurando por yaml na versão ruby em
1.9.1
vez de1.9.3
. Então eu desclassifiqueiE funcionou 8D!
fonte
No CentOS 6.3, nenhuma das opções acima funcionou. No entanto, instalar o libyaml a partir do código-fonte antes de instalar o ruby resolveu o problema.
e depois
fonte
estou a usar
e também obteve o seguinte erro durante a instalação do pacote
Aqui estão três maneiras diferentes de resolver esse erro sem precisar instalar o psych
altere /etc/ld.so.conf
Corrija a instalação do rvm ruby 1.9.3 via
fonte
Também lutei com as mesmas falhas
rvm install ruby-2.0.0
por muitas, MUITAS horas. Eu tentei todos os métodos diferentes para instalar o libyaml;wget source
,yum
Ervm
. Eu também tentei todas as diferentes abordagens listadas em threads semelhantes. Como tentei todos os métodos diferentes, eu tinha várias instalações e locais do libyaml.O RVM é perfeitamente capaz de instalar as dependências necessárias no
~/.rvm
. Simplesmente remover os arquivos libyaml da instalação não-RVM corrigiu esse problema para mim:Trabalho!
fonte
Método de instalação em ruby NÃO-RVM.
Desabilite o rpmforge editando este arquivo e configure enabled = 0% sudo vi /etc/yum.repos.d/rpmforge.repo
O libyaml-devel é a chave.
Atualize seu caminho e origem .cshrc
Defina seu GEM_HOME em .cshrc e source
fonte
Se você estiver construindo ruby a partir do código-fonte (eu construí o 1.9.3 no Fedora 20), você precisará disso antes de fazer o configure / make para construir o ruby:
(além do yum, instale o libyaml.) Semelhante à resposta de Francis usando o rpmforge acima.
fonte
Eu estava tendo esse erro e percebi que havia versões diferentes do Ruby instaladas no HomeBrew, além de muitas gemas que eu não usava mais. Então, fez uma limpeza completa como esta:
Se você não usar um
Gemfile
, verifique se você sabe quais jóias devem ser reinstaladas.fonte
No meu caso, tudo o que eu precisava fazer era
Agora, o FWIW,
gem list
incluifonte
Passei algumas horas tentando fazer com que meu erro desaparecesse e nenhuma das respostas aqui se adequasse ao meu caso, então pensei em postar como o resolvi ...
No meu caso, quando eu corri
gem list | grep psych
, eu tinha o seguinte resultado:psych(default: 3.1.0, default: 3.0.2)
.Aparentemente, desde a versão 2.5.0, o ruby depende da versão mais recente do psych (3.1.0) e ter ambos definidos como padrão estava atrapalhando tudo. Observe que eu nunca acabei descobrindo por que as duas foram definidas como padrão - eu limpei completamente as versões rvm e ruby do meu computador devido a isso.
Portanto, para evitar que a versão mais antiga (3.0.2) seja definida como padrão, vá para
~/.rvm/gems/ruby-x.x.x@global/specifications/default
. Se você executar,ls | grep psych
ele retornará as duas versões da gema aqui. Se você deseja manter o 3.1.0 como padrão, basta executarmv psych-3.0.2.gemspec ../
e tente executargemlist
para garantir que ele esteja listando apenas uma versão como padrão agora ...tl; dr
cd /.rvm/gems/ruby-x.x.x@global/specifications/default
mv psych-3.0.2 ../
Espero que isso ajude alguém!
fonte
No Snow Leopard, a solução da Catharz não funcionou para mim. Esta solução, no entanto, fez:
(A reinstalação do rvm me deu um aviso sobre o clang não ter a opção "--with-libyaml", mas resolveu a mensagem de erro independentemente.)
fonte
Isso funcionou para mim pelo menos no Ubuntu 10.04
$ sudo apt-get install libtool
$ rvm reinstalar 1.9.3
fonte
No Solaris:
para adicionar
/usr/local/lib
ao caminho de pesquisa da biblioteca compartilhada (consulte man crle)fonte
Quando mudei de 64 bits para 32 bits no Snow Leopard 10.6.8, reinstalei o ruby (usado rvm) para executar em 32 bits e encontrei o mesmo problema. Então, eu apenas 'limpo' tudo o que foi armazenado em cache pelo rvm antes e os problemas foram resolvidos. Espero que esta dica possa ajudar alguém.
BTW, se você ainda encontrar esse problema, acho que você pode tentar:
fonte