comment faire pour résoudre "ruby installation est manquant psy" erreur?
J'ai utilisé rvm pour installer ruby 1.9.3. même s'il a été installé avec succès, il s'est plaint de libyaml. et maintenant, chaque fois que je veux installer une gemme (disons rails), cet avertissement apparaît:
It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby.
J'utilise Mac os X 10.7 (Lion).
30 réponses
Dans mon cas,
rvm pkg install libyaml
Et
rvm reinstall ruby-1.9.3-p125
Résolu le problème.
Pour les utilisateurs D'Ubuntu, assurez-vous que libtool
est installé avant les étapes ci-dessus:
sudo apt-get install libtool
Pour les utilisateurs de macOS (avec homebrew):
rm -rf /usr/local/lib/ruby/gems/ && brew reinstall ruby
Pour ubuntu et rvm
sudo apt-get install libtool
rvm pkg install libyaml
rvm reinstall 1.9.3
Travaillé
Si vous n'utilisez pas rvm, mais que vous construisez et installez ruby 1.9.3 à partir de zéro - par exemple, vous gérez vos versions ruby avec rbenv - vous devez d'abord installer libyaml. Obtenez-le de http://pyyaml.org/; pour le moment, le fichier que vous voulez est http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz . ouvrez l'archive tar et le cd dans le dossier résultant. Alors:
./configure --prefix=/usr/local
make
sudo make install
, Vous êtes maintenant prêt à construire ruby. Télécharger ruby de http://ftp.ruby-lang.org/pub/ruby / . ouvrez l'archive tar et le cd dans le dossier résultant. Maintenant:
./configure --prefix=/wherever/you/want/it/to/go
make
make install
(ou éventuellement sudo make install
, selon l'endroit où vous le mettez.) Si vous utilisez rbenv, vous saurez que cela a fonctionné si vous passez à rbenv global 1.9.3-p194
(ou quelle que soit la version appelée) et que gem --version
fonctionne sans avertissement. Cela a fonctionné pour moi sur Mac OS X 10.6.8. ( Update : je viens d'essayer cela sur Mac OS X 10.8.1 et cela semble avoir bien fonctionné là aussi.)
brew install libyaml
rvm reinstall 1.9.3
Est ce qui a fonctionné pour moi (sur Snow Leopard).
Dans mon cas, la solution était d'ajouter la gemme psych
au Gemfile.
J'ai eu ce problème. libyaml ne compilerait pas. Il s'avère que libtool me manquait.
yum install libtool
yum install libyaml (or rvm pkg install libyaml)
rvm reinstall 1.9.3
, ce Qui a résolu mon problème.
J'ai finalement réparé ça. Le problème était que même si j'ai installé libyaml avec brew, il n'a jamais été lié. J'ai dû supprimer un fichier d'en-tête en conflit, puis brew link libyaml
.
Si vous avez installé ruby sur macOS avec homebrew, Essayez cette solution .
rm -rf /usr/local/lib/ruby/gems/ && brew reinstall ruby
Notez que cela va se débarrasser de toutes les gemmes installées. Mieux vaut enregistrer une liste de gemmes installées avec gem list
avant de lancer ceci.
Installation de ruby avec rvm pour mac osx, utilisez autolibs pour installer libyaml et d'abord désinstaller libyaml aide.
Cela a fonctionné pour moi:
brew uninstall libyaml
rvm autolibs enable
rvm reinstall ruby-2.1.1
sudo port install libyaml # or brew install libyaml
rvm get latest
rvm pkg install iconv
rvm pkg install openssl
rvm reinstall 1.9.3 --with-openssl-dir=~/.rvm/usr --with-iconv-dir=~/.rvm/usr
curl -OL http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem
curl -OL http://rubyforge.org/frs/download.php/75415/ruby-debug-base19-0.11.26.gem
gem install linecache19-0.5.13.gem ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$rvm_path/src/ruby-1.9.3-p125/
gem install ruby-debug19
rvm reload
Rechargez votre .rvmrc (sortie cd, entrée cd)
bundle
J'ai eu le même problème (Lion 10.7.4), et je l'ai corrigé en mettant à niveau rvm puis en réinstallant ruby
1) mise à niveau rvm https://rvm.io//rvm/install/
curl -L https://get.rvm.io | bash -s stable --ruby
2) Puis utiliser rvm pour réinstaller ruby 1.9.3 (qui avait été précédemment installé avec la version antérieure de rvm)
rvm reinstall 1.9.3
Aucune de ces réponses n'a fonctionné pour moi.
J'ai trouvé ma réponse sur https://github.com/sstephenson/ruby-build/issues/119 Je suis sur la machine virtuelle CentOS 6.3.
Vous devez installer libyaml avant d'installer ruby. Si vous avez déjà installé ruby, vous devez vous débarrasser des fichiers avant de compiler à nouveau la source!!!
# cd to your ruby source location
rm -rf /usr/local/lib/ruby # clean out ruby files
./configure
make && make install
gem -v # check if error is fixed
J'ai construit les fichiers libyaml séparément de la source et les ai installés dans / usr / local / lib. Le ruby que RVM a créé ne les voyait toujours pas, et plutôt que de muck avec le makefile ou le système LD_LIBRARY_PATH je viens de copier /usr / local / lib/ libyaml * dans ~/.rvm/rubis/ruby 1.9.3-p327/lib/
Qui a calmé l'avertissement.
C'est Ce qui a fonctionné pour moi sur Ubuntu:
- l'installation de libyaml-dev (sudo apt-get install libyaml-dev)
- installation de RVM + ruby 1.9.3
J'ai essayé toutes ces réponses et je n'ai toujours pas réussi à le faire fonctionner. J'ai installé libyaml avec homebrew puis installé Ruby 1.9.3 et 2.0.0 avec rvm. Chaque fois qu'il se plaignait que je manquais psych (libyaml). Mais essayez d'installer libyaml m'a dit qu'il était déjà installé. Rincez, répétez. Urgh.
Enfin, ce que j'ai fait était de désinstaller libyaml. Ensuite, je activé autolibs dans rvm , qui (au moins dans OSX) permet à rvm d'installer et de gérer les dépendances plus directement. Maintenant, quand j'ai installé les rubis, rvm a pu installer libyaml et reconnaître qu'il était au bon endroit.
Donc, si vous avez essayé toutes les autres options, essayez réellement en supprimant libyaml, puis en installant vos Rubis. C'est count-intuitif à partir des messages d'erreur, mais c'est ce qui a finalement fonctionné pour moi.
J'ai réinstallé ruby 1.9.3 avec le support libyaml:
rvm reinstall 1.9.3 --with-libyaml
Je me suis assuré que j'utiliserais 1.9.3 avant d'installer psych:
rvm use 1.9.3
J'ai installé psy:
gem install psych
J'ai eu le même problème (Cent OS 5.7), aucune des solutions ci-dessus n'a fonctionné pour moi.
// My console warning
/usr/local/rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
Après avoir fait plusieurs réinstallations, j'ai réalisé qu'il cherchait yaml dans la version ruby de 1.9.1
au lieu de 1.9.3
. J'ai donc déclassé
// obviously after installing `libyaml`
rvm remove all
rvm install 1.9.1
rvm use 1.9.1 --default
Et cela a fonctionné 8D!
Sur CentOS 6.3 aucun des éléments ci-dessus n'a fonctionné. Cependant, l'installation libyaml à partir de la source avant l'installation de ruby résolu le problème.
$ wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
$ tar xzvf yaml-0.1.4.tar.gz
$ cd yaml-0.1.4
$ ./configure --prefix=/usr/local
$ make
$ sudo make install
, puis
rvm install 1.9.3
gem install rails
J'utilise
RVM 1.16.20 (version) par Wayne E. Seguin , Michal Papis [https://rvm.io/]
Et a également obtenu l'erreur suivante lors de l'installation du bundle
.rvm/rubis/ruby 1.9.3-p194/lib/ruby/1.9.1/yaml.rb:56:dans `: Il semble votre installation ruby est manquante psych (pour la sortie YAML). De éliminez cet avertissement, installez libyaml et réinstallez votre rubis.
Voici trois façons différentes de résoudre cette erreur sans avoir à gem installer psych
- export LD_LIBRARY_PATH= / usr / local / lib
-
Modifier /etc / ld. so. conf
sudo su - root echo /usr/local/lib64 >> /etc/ld.so.conf echo /usr/local/lib >> /etc/ld.so.conf ldconfig
-
Correction de l'installation de RVM ruby 1.9.3 via
patch .rvm/scripts/functions/manage/ruby < ruby-1.9.3-LDFLAGS.patch rvm uninstall ruby-1.9.3-p194 export LDFLAGS='-L /usr/local/lib64 -L/usr/local/lib -Xlinker -R/usr/local/lib64 -Xlinker -R/usr/local/lib' rvm install ruby-1.9.3-p194 --disable-binary grep configure_args .rvm/src/ruby-1.9.3-p194/config.log # to confirm LDFLAG
$ diff -c .rvm/{src/rvm/,}scripts/functions/manage/ruby *** .rvm/src/rvm/scripts/functions/manage/ruby 2012-11-10 06:28:14.000000000 +0000 --- .rvm/scripts/functions/manage/ruby 2013-01-25 17:18:00.000000000 +0000 *************** *** 106,123 **** # when relative is in effect libyaml is installed in ruby itself so it will be moved with ruby prefix_path="${rvm_rubies_path}/${rvm_ruby_string}" libyaml ! __rvm_update_configure_env CFLAGS="-I${rvm_rubies_path}/${rvm_ruby_string}/include" ! __rvm_update_configure_env LDFLAGS="-L${rvm_rubies_path}/${rvm_ruby_string}/lib" if [[ -d "${rvm_rubies_path}/${rvm_ruby_string}/lib64" ]] ! then __rvm_update_configure_env LDFLAGS="-L${rvm_rubies_path}/${rvm_ruby_string}/lib64" fi else libyaml_installed || libyaml # Installs libyaml ! __rvm_update_configure_env CFLAGS="-I${rvm_path}/usr/include" ! __rvm_update_configure_env LDFLAGS="-L${rvm_path}/usr/lib" if [[ -d "${rvm_path}/usr/lib64" ]] ! then __rvm_update_configure_env LDFLAGS="-L${rvm_path}/usr/lib64" fi fi --- 106,123 ---- # when relative is in effect libyaml is installed in ruby itself so it will be moved with ruby prefix_path="${rvm_rubies_path}/${rvm_ruby_string}" libyaml ! __rvm_update_configure_env CFLAGS="-I${rvm_rubies_path}/${rvm_ruby_string}/include ${CFLAGS}" ! __rvm_update_configure_env LDFLAGS="-L${rvm_rubies_path}/${rvm_ruby_string}/lib ${LDFLAGS}" if [[ -d "${rvm_rubies_path}/${rvm_ruby_string}/lib64" ]] ! then __rvm_update_configure_env LDFLAGS="-L${rvm_rubies_path}/${rvm_ruby_string}/lib64 ${LDFLAGS}" fi else libyaml_installed || libyaml # Installs libyaml ! __rvm_update_configure_env CFLAGS="-I${rvm_path}/usr/include ${CFLAGS}" ! __rvm_update_configure_env LDFLAGS="-L${rvm_path}/usr/lib ${LDFLAGS}" if [[ -d "${rvm_path}/usr/lib64" ]] ! then __rvm_update_configure_env LDFLAGS="-L${rvm_path}/usr/lib64 ${LDFLAGS}" fi fi
Méthode d'installation ruby NON-RVM.
% uname -a
Linux localhost.localdomain 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
% cat /etc/redhat-release
CentOS release 6.4 (Final)
% wget http://apt.sw.be/redhat/el5/en/x86_64/dag/RPMS/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
% sudo rpm -K rpmforge-release-0.3.6-1.el5.rf.*.rpm"
% sudo rpm -ivh rpmforge-release-0.3.6-1.el5.rf.*.rpm"
Désactivez rpmforge en éditant ce fichier et définissez enabled=0 % sudo vi / etc / yum.les pensions de titres.d / rpmforge.repo
% grep rpmforge ~/.aliases
alias rpmforge "sudo yum --disablerepo='*' --enablerepo='rpmforge'"
% rpmforge install libyaml libyaml-devel
% sudo yum list installed | grep libyaml
libyaml.x86_64 0.1.4-1.el5.rf @rpmforge
libyaml-devel.x86_64 0.1.4-1.el5.rf @rpmforge
Le libyaml-devel est la clé.
% tar zxvf ruby-1.9.3-p448.tar.gz
% cd ruby-1.9.3-p448
% ./configure -prefix=$HOME/ruby-1.9.3-p448
% make ; make install
% cd $HOME; ln -s ./ruby-1.9.3-p448 ruby
Mettez à jour votre chemin et votre source .cshrc
% echo $PATH
/home/francis/ruby/bin:/usr/sbin:/home/francis/bin:/home/francis/jdk1.7.0_25/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin
% which ruby
/home/francis/ruby/bin/ruby
% gem update --system
Définissez votre GEM_HOME .cshrc et source
% echo $GEM_HOME
% /home/francis/ruby/lib/ruby/gems
% gem install mysql2 pg ruby-debug-ide rails capistrano capistrano-ext passenger
Si vous construisez ruby à partir de la source (j'ai construit 1.9.3 sur Fedora 20), vous en aurez besoin avant de faire le configure / make pour construire ruby:
yum install libyaml-devel
(en plus de yum installer libyaml.) Similaire à la réponse de Francis en utilisant rpmforge ci-dessus.
J'avais cette erreur et j'ai remarqué que j'avais différentes versions de Ruby installées avec HomeBrew, ainsi que de nombreuses gemmes que je n'ai plus utilisées. Donc fait un nettoyage complet comme ceci:
$ brew remove --force ruby # remove all versions installed
$ sudo rm -rf /usr/local/lib/ruby # remove all gems and leftover files
$ brew install ruby
$ gem install bundler
$ bundle install
Si vous n'utilisez pas de Gemfile
, Assurez-vous de savoir quelles gemmes réinstaller.
Dans mon cas, tout ce que je devais faire est
rm -rf /usr/local/lib/ruby/gems/2.4.0/gems/psych-2.2.4
rm -rf /usr/local/lib/ruby/gems/2.4.0/extensions/x86_64-darwin-16/2.4.0/psych-2.2.4
Maintenant, FWIW, gem list
comprend
psych (2.2.4, default: 2.2.2)
Sur Snow Leopard, la solution de Catharz n'a pas fonctionné pour moi. Cette solution, cependant, a fait:
brew install libyaml
rvm get head
rvm reinstall 1.9.3 --with-gcc=clang
(la réinstallation de rvm m'a donné un avertissement à propos de clang ne pas avoir l'option "--with-libyaml" mais il a résolu le message d'erreur indépendamment.)
Cela a fonctionné pour moi au moins sur Ubuntu 10.04
$ sudo apt-get install libtool
$ RVM réinstaller 1.9.3
Sur Solaris:
# sudo crle -64 -l /usr/local/lib
Pour ajouter /usr/local/lib
au chemin de recherche de la bibliothèque partagée
(voir l'homme crle)
Quand je passe de 64 bits à 32 bits sur Snow Leopard 10.6.8, j'avais réinstallé ruby (utilisé rvm) pour fonctionner sur 32 bits et rencontré le même problème. Donc, je viens de "nettoyer" tout ce qui a été mis en cache par rvm avant et les problèmes résolus. Espérons que cette astuce peut aider quelqu'un.
RVM nettoyage tout
RVM installera ruby_version_here / /(de cette façon, rvm téléchargera également le plus récent yaml).
BTW, si vous rencontrez toujours ce problème, je pense que vous pouvez essayer:
Gem installer psy
Pour ceux avec Mountain Lion et version RVM > = 1.18.x
RVM est livré avec ce nouvel outil qui est utilisé comme drapeau lors de l'installation des versions ruby. Ça s'appelle autolibs.
Je me suis débarrassé de ce problème psychologique en faisant ce qui suit:
rvm reinstall ruby-1.9.3-p392 --autolibs=3
Lisez le texte D'aide avant en faisant:
rvm help autolibs
Cool.
J'ai aussi lutté avec les mêmes échecs avec rvm install ruby-2.0.0
pendant de nombreuses heures. J'avais essayé toutes les différentes méthodes pour installer libyaml; wget source
, yum
et rvm
. J'ai également essayé toutes les différentes approches listées dans des threads similaires. Parce que j'ai essayé toutes les différentes méthodes, j'ai eu plusieurs installations et emplacements de libyaml.
RVM est parfaitement capable d'installer les dépendances nécessaires dans ~/.rvm
. La suppression simple des fichiers libyaml de l'installation non-RVM a corrigé ce problème pour moi:
sudo rm /usr/local/lib/libyaml*.*
rvm reinstall ruby-2.0.0-p0
Fonctionne!