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).
Dans mon cas
rvm pkg install libyaml
et
rvm reinstall Ruby-1.9.3-p125
résolu le problème.
Pour les personnes utilisant 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, vous construisez et installez plutôt Ruby 1.9.3 - par exemple, vous gérez vos versions de Ruby avec rbenv - vous devez d'abord installer libyaml. Obtenez-le de http://pyyaml.org/ ; pour le moment, le fichier que vous souhaitez utiliser est http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz . Ouvrez l'archive et le CD dans le dossier résultant. Ensuite:
./configure --prefix=/usr/local
make
Sudo make install
Vous êtes maintenant prêt à construire Ruby. Téléchargez Ruby à partir de http://ftp.Ruby-lang.org/pub/Ruby/ . Ouvrez l'archive 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 placez.) Si vous utilisez rbenv, vous saurez que cela a fonctionné si vous passez à rbenv global 1.9.3-p194
(ou à tout le nom de votre version) et gem --version
fonctionne sans avertissement. Cela a fonctionné pour moi sur Mac OS X 10.6.8. ( Mise à jour : Je viens d'essayer cela sous Mac OS X 10.8.1 et cela semble avoir bien fonctionné là aussi.)
brew install libyaml
rvm reinstall 1.9.3
Est ce ce qui a fonctionné pour moi (sur Snow Leopard).
Dans mon cas, la solution consistait à ajouter la gemme psych
au fichier Gemfile.
J'ai eu ce problème. libyaml ne compilerait pas. Il s'avère que je manquais de libtool.
yum install libtool
yum install libyaml (or rvm pkg install libyaml)
rvm reinstall 1.9.3
Cela a résolu mon problème.
$ brew doctor
$ 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 supprimera toutes les gemmes installées. Il est préférable d’enregistrer une liste des gemmes installées avec gem list
avant de l’exécuter.
J'ai enfin résolu ce problème. Le problème était que même si j’avais installé libyaml avec Brew, il n’était jamais lié. J'ai dû supprimer un fichier d'en-tête en conflit, puis brew link libyaml
.
Installer Ruby avec rvm pour mac osx, utilisez autolibs pour installer libyaml et la première désinstallation de libyaml vous aidera.
Cela a fonctionné pour moi:
brew uninstall libyaml
rvm autolibs enable
rvm reinstall Ruby-2.1.1
J'ai eu le même problème (Lion 10.7.4), et corrigé en mettant à jour rvm puis en réinstallant Ruby
1) mettre à niveau rvm https://rvm.io//rvm/install/
curl -L https://get.rvm.io | bash -s stable --Ruby
2) Puis utilisez rvm pour réinstaller Ruby 1.9.3 (précédemment installé avec la version précédente de rvm)
rvm reinstall 1.9.3
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
recharger votre .rvmrc (cd out, cd in)
bundle
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 ps:
rvm use 1.9.3
J'ai installé psy:
gem install psych
C'est ce qui a fonctionné pour moi sur Ubuntu:
- installer libyaml-dev (Sudo apt-get installer 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 Ruby 1.9.3 et 2.0.0 avec rvm. Chaque fois, il s'est plaint de mon manque de psy (libyaml). Mais essayer 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. Alors je autolibs activés dans rvm , ce qui (du moins sous OSX) permet à rvm d’installer et de gérer les dépendances plus directement. Maintenant, lorsque j’ai installé les Rubies, rvm a pu installer libyaml et a reconnu qu’il se trouvait au bon endroit.
Donc, si vous avez essayé toutes les autres options, essayez réellement de supprimer libyaml puis d'installer vos Rubies. C'est un compte intuitif des messages d'erreur, mais c'est finalement ce qui a fonctionné pour moi.
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 des sources et les ai installés dans/usr/local/lib. Le Ruby que RVM a créé n'a toujours pas été vu, et plutôt que de bouder avec le makefile ou le système LD_LIBRARY_PATH, je viens de copier/usr/local/lib/libyaml * dans ~/.rvm/rubies/Ruby- 1.9.3-p327/lib /
Cela a calmé l'avertissement.
J'avais cette erreur et j'ai remarqué que différentes versions de Ruby étaient installées avec HomeBrew, ainsi que de nombreux joyaux que je n'utilisais plus. Ainsi 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 connaître les gems à réinstaller.
NON-RVM Ruby méthode d'installation.
% 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 modifiant ce fichier et définissez enabled = 0%. Sudo vi /etc/yum.repos.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 dans .cshrc et source
% echo $GEM_HOME
% /home/francis/Ruby/lib/Ruby/gems
% gem install mysql2 pg Ruby-debug-ide Rails capistrano capistrano-ext passenger
Sur CentOS 6.3, rien de ce qui précède n'a fonctionné. Cependant, l’installation de libyaml à partir de la source avant l’installation de Ruby a 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'ai eu le même problème (Cent OS 5.7), aucune des solutions ci-dessus ne fonctionnait 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 plusieurs réinstallations, je me suis rendu compte que yaml était recherché dans la version Ruby de 1.9.1
au lieu de 1.9.3
. Donc j'ai 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!
Dans mon cas tout ce que j'avais à faire était
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
inclut
psych (2.2.4, default: 2.2.2)
Si vous construisez Ruby à partir des sources (j'ai compilé 1.9.3 sur Fedora 20), vous en aurez besoin avant de configurer/faire pour compiler Ruby:
yum install libyaml-devel
(En plus de yum install libyaml.) Similaire à la réponse de Francis utilisant rpmforge ci-dessus.
J'utilise
rvm 1.16.20 (version) de Wayne E. Seguin, Michal Papis [https://rvm.io/]
et aussi obtenu l'erreur suivante lors de l'installation du paquet
.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/yaml.rb: 56: dans `': Il semble que votre installation Ruby manque de psy (pour la sortie YAML) . Pour éliminer cet avertissement, installez libyaml et réinstallez votre Ruby.
Voici trois façons différentes de résoudre cette erreur sans devoir installer gem psy
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 **** # Quand un parent est en vigueur libyaml est installé dans Ruby lui-même et sera donc déplacé avec 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" si [[-d "$ {rvm_rubies_path}/$ {rvm_Ruby_Ruby_string}/lib64"]]. then __rvm_update_configure_env LDFLAGS = "- L $ {rvm_rubies_path}/$ {rvm_Ruby_string}/lib64" fi else libyaml_installed || libyaml # Installe libyaml ! __rvm_update_configure_env CFLAGS = "- I $ {chemin_rvm}/usr/include" ! __rvm_update_configure_env LDFLAGS = "- L $ {chemin_rvm}/usr/lib" if [[-d "$ {chemin_rvm}/usr/lib64"]] ! then __rvm_update_configure_env LDFLAGS = "- L $ {rvm_path}/usr/lib64" fi fi --- 106,123 ---- # quand relatif est en vigueur libyaml est installé dans Ruby lui-même et sera donc déplacé avec 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}" .____ []. .]! then __rvm_update_configure_env LDFLAGS = "- L $ {rvm_rubies_path}/$ {rvm_Ruby_string}/lib64 $ {LDFLAGS}" f sinon libyaml_installed || libyaml # Installe libyaml ! __rvm_update_configure_env CFLAGS = "- I $ {rvm_path}/usr/include $ {CFLAGS}" ! __rvm_update_configure_env LDFLAGS = "- L $ {chemin_rvm}/usr/lib $ {LDFLAGS}" if [[-d "$ {chemin_rvm}/usr/lib64"]] ! then __rvm_update_configure_env LDFLAGS = "- L $ {rvm_path}/usr/lib64 $ {LDFLAGS}" fi fi
rvm pkg install libyaml
$LIBYAML_PATH will be the path where RVM installs the upated yaml
rvm get stable
rvm reinstall all --force --with-libyaml-dir=$LIBYAML_PATH
J'ai eu un problème similaire après la mise à jour OSX, ce qui résout mon problème:
brew rm libyaml
brew cleanup libyaml
brew install libyaml
brew rm openssl
brew cleanup openssl
brew install openssl
rvm remove *your version*
rvm install *latest version*
Cela a fonctionné pour moi au moins sur Ubuntu 10.04
$ Sudo apt-get install libtool
$ rvm réinstallez 1.9.3
Sous Solaris:
# Sudo crle -64 -l /usr/local/lib
ajouter /usr/local/lib
au chemin de recherche de la bibliothèque partagée (voir man crle)
J'ai également lutté avec les mêmes échecs avec rvm install Ruby-2.0.0
pendant plusieurs heures, BEAUCOUP. J'avais essayé toutes les méthodes différentes pour installer libyaml; wget source
, yum
et rvm
. J'ai également essayé toutes les approches différentes répertoriées dans des discussions similaires. Parce que j’ai essayé toutes les méthodes, j’ai eu plusieurs installations et emplacements de libyaml.
RVM est parfaitement capable d'installer les dépendances nécessaires dans ~/.rvm
. Supprimer simplement les 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
Travaux!
Lorsque je passais de 64 bits à 32 bits sur Snow Leopard 10.6.8, j'avais réinstallé Ruby (rvm utilisé) pour fonctionner en 32 bits et rencontrait le même problème. Je viens donc de "nettoyer" tout ce qui a été mis en cache par rvm auparavant et les problèmes résolus. J'espère que cette astuce peut aider quelqu'un.
rvm tout nettoyer
rvm install Ruby_version_here // (De cette façon, rvm téléchargera de nouveau le dernier fichier yaml).
BTW, si vous rencontrez toujours ce problème, je pense que vous pouvez essayer:
bijou installer psych
Sur Snow Leopard, la solution de Catharz n'a pas fonctionné pour moi. Cette solution a cependant:
brew install libyaml
rvm get head
rvm reinstall 1.9.3 --with-gcc=clang
(La réinstallation rvm m'a averti que clang n'avait pas l'option "--with-libyaml" mais le message d'erreur a quand même été résolu.)
Pour ceux avec Mountain Lion et version RVM> = 1.18.x
RVM est livré avec ce nouvel outil qui sert d'indicateur lors de l'installation des versions Ruby. Cela s'appelle autolibs.
Je me suis débarrassé de ce problème psychique en procédant comme suit:
rvm reinstall Ruby-1.9.3-p392 --autolibs=3
Lisez le texte d'aide AVANT en faisant:
rvm help autolibs
Cool.