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).

154
demandé sur zishe 2012-02-24 20:06:59

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
214
répondu peterpengnz 2017-10-02 13:45:42

Pour ubuntu et rvm

sudo apt-get install libtool
rvm pkg install libyaml
rvm reinstall 1.9.3

Travaillé

20
répondu Gizmomogwai 2012-04-03 19:14:46

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.)

19
répondu matt 2012-09-11 20:35:18
brew install libyaml
rvm reinstall 1.9.3

Est ce qui a fonctionné pour moi (sur Snow Leopard).

16
répondu Catharz 2012-06-09 05:21:46

Dans mon cas, la solution était d'ajouter la gemme psych au Gemfile.

9
répondu Vanuan 2012-07-26 19:40:43

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.

6
répondu AKWF 2012-10-23 14:22:30
$ brew doctor
$ brew link libyaml
5
répondu 张健健 2013-04-30 04:54:36

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.

4
répondu Michael 2013-07-25 18:52:36

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.

4
répondu orkoden 2017-05-08 09:34:50

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
3
répondu user33302 2014-05-23 11:39:14
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
2
répondu vysogot 2012-03-05 12:59:21

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
2
répondu user761552 2012-06-22 03:28:13

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
2
répondu chemoish 2012-10-16 03:07:42

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.

2
répondu Dave Hildebrandt 2012-11-16 22:08:37

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

2
répondu Luc 2012-11-29 16:21:51

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.

2
répondu Bob Ralian 2013-04-21 19:08:41

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
2
répondu adamo 2013-05-03 14:08:25

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!

1
répondu Ish 2012-10-25 16:42:07

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
1
répondu Dmitry G. 2012-11-22 05:25:06

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

  1. export LD_LIBRARY_PATH= / usr / local / lib
  2. 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
    
  3. 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

1
répondu victorv 2013-01-25 17:48:19

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
1
répondu Francis Trujillo 2013-07-07 16:08:23

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.

1
répondu Don Law 2015-07-08 23:33:19

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.

1
répondu Eneko Alonso 2017-09-20 17:42:28

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)
1
répondu orome 2017-10-03 14:32:50

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.)

0
répondu mrrena 2012-06-10 21:50:50

Cela a fonctionné pour moi au moins sur Ubuntu 10.04

$ sudo apt-get install libtool

$ RVM réinstaller 1.9.3

0
répondu Abhay PS 2012-06-26 09:46:24

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)

0
répondu edx 2012-11-12 15:04:07

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

0
répondu anguu 2012-11-25 19:02:47

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.

0
répondu Alan Andrade 2013-03-19 23:58:18

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!

0
répondu Andrejs R. 2013-04-18 20:41:05