it-swarm.com.de

Wie löse ich den Fehler "Ruby-Installation fehlt psych"?

Ich habe rvm verwendet, um Ruby 1.9.3.) Zu installieren, obwohl es erfolgreich installiert wurde, beschwerte es sich über libyaml. Und jetzt erscheint jedes Mal, wenn ich einen Edelstein installieren möchte (sagen wir Rails), diese Warnung:

It seems your Ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your Ruby.

Ich benutze Mac OS X 10.7 (Lion).

156
Pouya

In meinem Fall

rvm pkg install libyaml

und

rvm reinstall Ruby-1.9.3-p125

problem gelöst.

Stellen Sie für Benutzer von Ubuntu sicher, dass libtool installiert ist, bevor Sie die obigen Schritte ausführen:

Sudo apt-get install libtool

Für MacOS-Benutzer (mit Homebrew):

rm -rf /usr/local/lib/Ruby/gems/ && brew reinstall Ruby
217
peterpengnz

für ubuntu und rvm

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

hat funktioniert

20
Gizmomogwai

Wenn Sie nicht rvm verwenden, sondern Ruby 1.9.3 von Grund auf neu erstellen und installieren, verwalten Sie Ihre Ruby= Versionen mit - rbenv - Sie müssen libyaml zuerst installieren. Laden Sie es von http://pyyaml.org/ herunter. Derzeit ist die gewünschte Datei http: // pyyaml) .org/download/libyaml/yaml-0.1.4.tar.gz Öffnen Sie den Tarball und die CD in den resultierenden Ordner.

./configure --prefix=/usr/local
make
Sudo make install

Jetzt können Sie Ruby erstellen. Laden Sie Ruby von http://ftp.Ruby-lang.org/pub/Ruby/ herunter. Öffnen Sie den Tarball und die CD in dem resultierenden Ordner. Jetzt:

./configure --prefix=/wherever/you/want/it/to/go
make
make install

(Oder möglicherweise Sudo make install, Je nachdem, wo Sie es ablegen.) Wenn Sie rbenv verwenden, wissen Sie, dass es funktioniert hat, wenn Sie zu rbenv global 1.9.3-p194 Wechseln (oder wie auch immer Ihre Version heißt) und gem --version Funktioniert ohne Warnung. Das hat bei mir unter Mac OS X 10.6.8 funktioniert. ( Update : Ich habe es gerade unter Mac OS X 10.8.1 ausprobiert und es scheint auch dort gut funktioniert zu haben.)

19
matt
brew install libyaml
rvm reinstall 1.9.3

Hat bei mir geklappt (bei Snow Leopard).

16
Catharz

In meinem Fall bestand die Lösung darin, den Edelstein psych zum Gemfile hinzuzufügen.

9
Vanuan

Ich hatte dieses Problem. libyaml würde nicht kompilieren. Es stellt sich heraus, dass mir Libtool gefehlt hat.

yum install libtool
yum install libyaml (or rvm pkg install libyaml)
rvm reinstall 1.9.3

Das hat mein Problem gelöst.

6
AKWF
$ brew doctor
$ brew link libyaml
5
张健健

Wenn Sie Ruby unter MacOS mit Homebrew installiert haben, versuchen Sie diese Lösung .

rm -rf /usr/local/lib/Ruby/gems/ && brew reinstall Ruby

Beachten Sie, dass dadurch alle installierten Edelsteine ​​entfernt werden. Speichern Sie am besten eine Liste der installierten Edelsteine ​​mit gem list bevor Sie dies ausführen.

4
orkoden

Ich habe das endlich behoben. Das Problem war, dass obwohl ich libyaml mit brew installiert habe, es nie verlinkt wurde. Ich musste eine widersprüchliche Header-Datei entfernen und dann brew link libyaml.

4
Michael

Wenn Sie Ruby mit rvm for mac osx installieren, verwenden Sie autolibs, um libyaml zu installieren, und deinstallieren Sie zuerst libyaml.

Das hat bei mir funktioniert:

brew uninstall libyaml
rvm autolibs enable
rvm reinstall Ruby-2.1.1
3
user33302

Ich hatte das gleiche Problem (Lion 10.7.4) und behebte es durch ein Upgrade von rvm und eine Neuinstallation von Ruby

1) Aktualisieren Sie rvm https://rvm.io//rvm/install/

curl -L https://get.rvm.io | bash -s stable --Ruby

2) Verwenden Sie dann rvm, um Ruby 1.9.3 (das zuvor mit der früheren Version von rvm installiert wurde) neu zu installieren.

rvm reinstall 1.9.3
3
user761552
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

lade deine .rvmrc neu (CD raus, CD rein)

bundle
2
vysogot

Ich habe Ruby 1.9.3 mit libyaml-Unterstützung neu installiert:

rvm reinstall 1.9.3 --with-libyaml

Ich habe vor der Installation von psych sichergestellt, dass ich 1.9.3 verwende:

rvm use 1.9.3

Ich habe psych installiert:

gem install psych
2
adamo

Das hat bei mir unter Ubuntu funktioniert:
- libyaml-dev installieren (Sudo apt-get install libyaml-dev)
- Installation von rvm + Ruby 1.9.3

2
Luc

Ich habe alle diese Antworten ausprobiert und konnte es immer noch nicht zum Laufen bringen. Ich habe libyaml mit homebrew installiert und dann Ruby 1.9.3 und 2.0.0 mit rvm. Jedes Mal, wenn ich mich beschwerte, dass ich psych (libyaml) vermisse, habe ich versucht, libyaml zu installieren bereits installiert. Spülen, wiederholen. Urgh.

Schließlich habe ich libyaml deinstalliert . Dann habe ich aktivierte Autolibs in rvm , was (zumindest in OSX) rvm erlaubt, Abhängigkeiten direkter zu installieren und zu verwalten. Als ich nun die Rubies installierte, konnte rvm libyaml installieren und erkennen, dass es sich an der richtigen Stelle befand.

Also, wenn Sie alle anderen Optionen ausprobiert haben, versuchen Sie tatsächlich , libyaml zu entfernen und dann Ihre Rubies zu installieren. Ab den Fehlermeldungen ist es intuitiv zu zählen, aber das hat bei mir endlich funktioniert.

2
Bob Ralian

Keine dieser Antworten hat bei mir funktioniert.

Ich fand meine Antwort auf https://github.com/sstephenson/Ruby-build/issues/119 Ich bin auf Centos 6.3 Virtual Machine.

SIE MÜSSEN libyaml installieren, bevor Sie Ruby installieren. WENN SIE BEREITS Ruby installiert haben, müssen Sie die Dateien entfernen, bevor Sie den Quellcode erneut kompilieren !!!

# 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
chemoish

Ich habe die libyaml-Dateien unabhängig vom Quellcode erstellt und in/usr/local/lib installiert. Das Ruby, das RVM erstellt hat, hat sie immer noch nicht gesehen, und anstatt mich mit dem Makefile oder dem System LD_LIBRARY_PATH herumzuschlagen, habe ich einfach/usr/local/lib/libyaml * nach ~/.rvm/rubies kopiert /Ruby-1.9.3-p327/lib/

Das beruhigte die Warnung.

2

Ich hatte diesen Fehler und bemerkte, dass ich verschiedene Versionen von Ruby mit HomeBrew installiert hatte, zusammen mit vielen Edelsteinen, die ich nicht mehr verwendete.

$ 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

Wenn Sie kein Gemfile verwenden, stellen Sie sicher, dass Sie wissen, welche Edelsteine ​​neu installiert werden müssen.

1
Eneko Alonso

NON-RVM Ruby install method.

% 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"

Deaktivieren Sie rpmforge, indem Sie diese Datei bearbeiten und enabled = 0% Sudo vi /etc/yum.repos.d/rpmforge.repo festlegen

% 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  

Der libyaml-devel ist der Schlüssel.

% 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

Aktualisieren Sie Ihren Pfad und Quellcode .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

Setze dein GEM_HOME in .cshrc und source

% echo $GEM_HOME
% /home/francis/Ruby/lib/Ruby/gems

% gem install mysql2 pg Ruby-debug-ide Rails capistrano capistrano-ext passenger
1

Unter CentOS 6.3 funktionierte keines der oben genannten Verfahren. Die Installation von libyaml von der Quelle vor der Installation von Ruby) löste das Problem.

$ 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

und dann

rvm install 1.9.3
gem install Rails
1
Dmitry G.

Ich hatte das gleiche Problem (Cent OS 5.7), keine der oben genannten Lösungen funktionierte für mich.

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

Nach mehreren Neuinstallationen wurde mir klar, dass es nach Yaml in Ruby Version von 1.9.1 Anstelle von 1.9.3 Sucht. Also habe ich ein Downgrade durchgeführt

// obviously after installing `libyaml`
rvm remove all
rvm install 1.9.1
rvm use 1.9.1 --default

Und es hat 8D funktioniert!

1
Ish

In meinem Fall alles was ich tun musste war

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

Nun, FWIW, gem list enthält

psych (2.2.4, default: 2.2.2)
1
orome

Wenn Sie Ruby aus dem Quellcode erstellen (ich habe 1.9.3 unter Fedora 20 erstellt)), müssen Sie dies tun, bevor Sie Ruby konfigurieren/erstellen:

yum install libyaml-devel

(Zusätzlich zu yum installiere libyaml.) Ähnlich wie Francis 'Antwort mit rpmforge oben.

1
Don Law

Ich benutze

rvm 1.16.20 (version) von Wayne E. Seguin, Michal Papis [https://rvm.io/]

außerdem wurde während der Bundle-Installation der folgende Fehler angezeigt

.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/yaml.rb: 56: in `': Es scheint, dass Ihre Ruby Installation fehlt YAML-Ausgabe) Installieren Sie libyaml und installieren Sie Ruby neu, um diese Warnung zu beseitigen.

Hier sind drei verschiedene Möglichkeiten, um diesen Fehler zu beheben, ohne dass ein Edelstein installiert werden muss

  1. export LD_LIBRARY_PATH =/usr/local/lib
  2. alter /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. Fix rvm Ruby 1.9.3 Installation über

    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 /,} Skripte/Funktionen/Verwalten/Ruby 
 *** .rvm/src/rvm/Skripte/Funktionen/Verwalten/Ruby 2012- 11-10 06: 28: 14.000000000 +0000 
 --- .rvm/scripts/functions/manage/Ruby 2013-01-25 17: 18: 00.000000000 +0000 
 ***** ********** 
 *** 106,123 **** 
 # Wenn relative in Kraft ist libyaml ist in Ruby= selbst so installiert Es wird mit Ruby 
 Präfixpfad = "$ {rvm_rubies_path}/$ {rvm_Ruby_string}" verschoben libyaml 
 
! __rvm_update_configure_env CFLAGS = "- I $ {rvm_ruby_ruby_ruby_ruby_ruby_" }/include "
! __rvm_update_configure_env LDFLAGS =" - L $ {rvm_rubies_path}/$ {rvm_ruby_string}/lib "
 if [-d" $ {rvm_rubies_path}/$ {rvm_ruby_ruby_ "]] 
! then __rvm_update_configure_env LDFLAGS =" - L $ {rvm_rubies_path}/$ {rvm_Ruby_string}/lib64 "
 fi 
 else 
 libyaml_installe d || libyaml # Installiert 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"]] 
! dann __rvm_update_configure_env LDFLAGS = "- L $ {rvm_path}/usr/lib64" 
 fi 
 fi 
 
 --- 106,123 ---- 
 # Wenn relative in Kraft ist, wird libyaml in Ruby= selbst installiert, damit es mit Ruby 
 verschoben wird. prefix_path = "$ {rvm_rubies_path}/$ {rvm_Ruby_string}" libyaml 
 
! __rvm_update_configure_env CFLAGS = "- I $ {rvm_rubies_path}/$ {rvm_Ruby_string}/include $ {CFLAGS}" 
! rvm_Ruby_string}/lib $ {LDFLAGS} "
 if [[-d" $ {rvm_rubies_path}/$ {rvm_Ruby_string}/lib64 "] 
! then __rvm_update_configure_env LDFLAGS_r" - L }/$ {rvm_Ruby_string}/lib64 $ {LDFLAGS} "
 fi 
 else 
 libyaml_installed || libyaml # Installiert libyaml 
 
! __rvm_update_configure_env CFLAGS = "- I $ {rvm_path}/usr/include $ {CF LAGS} "
! __rvm_update_configure_env LDFLAGS = "- L $ {rvm_path}/usr/lib $ {LDFLAGS}" 
 if [[-d "$ {rvm_path}/usr/lib64"] 
! dann __rvm_update_configure_env LDFLAGS = "- L $ {rvm_path}/usr/lib64 $ {LDFLAGS}" 
 fi 
 fi 
 
1
victorv
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
0
hamdiakoguz

Ich hatte nach dem OSX-Upgrade ein ähnliches Problem. Das löst mein Problem:

   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*

hier gefunden

0
B1z

Das hat bei mir zumindest auf Ubuntu 10.04 geklappt

$ Sudo apt-get install libtool

$ rvm neu installieren 1.9.3

0
Abhay PS

Unter Solaris:

# Sudo crle -64 -l /usr/local/lib

hinzufügen /usr/local/lib zum Suchpfad der Shared Library (siehe man crle)

0
edx

Ich hatte auch viele, VIELE Stunden mit den gleichen Fehlern zu kämpfen wie mit rvm install Ruby-2.0.0. Ich hatte alle verschiedenen Methoden ausprobiert, um libyaml zu installieren. wget source, yum und rvm. Ich habe auch alle verschiedenen Ansätze ausprobiert, die in ähnlichen Threads aufgeführt sind. Da ich alle verschiedenen Methoden ausprobiert habe, hatte ich mehrere Installationen und Speicherorte von libyaml.

RVM ist perfekt in der Lage, die notwendigen Abhängigkeiten in ~/.rvm Zu installieren. Durch einfaches Entfernen der libyaml-Dateien aus einer Nicht-RVM-Installation wurde das folgende Problem behoben:

Sudo rm /usr/local/lib/libyaml*.*

rvm reinstall Ruby-2.0.0-p0

Funktioniert!

0
Andrejs R.

Als ich unter Snow Leopard 10.6.8 von 64 Bit auf 32 Bit umgestiegen bin, hatte ich Ruby (verwendetes rvm)) neu installiert, um auf 32 Bit zu laufen, und das gleiche Problem festgestellt Ich hoffe, dieser Tipp kann jemandem helfen.

rvm aufräumen alles

rvm install Ruby_version_here // (Auf diese Weise lädt rvm auch das neueste yaml herunter).

Übrigens, wenn Sie immer noch auf dieses Problem stoßen, können Sie versuchen:

edelstein installieren psych

0
anguu

Auf Snow Leopard hat die Lösung von Catharz bei mir nicht funktioniert. Diese Lösung hat jedoch Folgendes bewirkt:

brew install libyaml
rvm get head
rvm reinstall 1.9.3  --with-gcc=clang

(Die Neuinstallation von rvm warnte mich davor, dass clang nicht die Option "--with-libyaml" hatte, löste aber die Fehlermeldung trotzdem.)

0
mrrena

Für diejenigen mit Mountain Lion und RVM Version> = 1.18.x

RVM wird mit diesem neuen Tool ausgeliefert, das bei der Installation von Ruby Versionen als Flag verwendet wird. Es heißt autolibs.

Ich habe dieses psychische Problem wie folgt behoben:

rvm reinstall Ruby-1.9.3-p392 --autolibs=3

Lesen Sie den Hilfetext, BEVOR Sie Folgendes tun:

rvm help autolibs

Cool.

0
Alan Andrade