come risolvere “l’installazione di ruby ​​manca l’errore psichico”?

Ho usato rvm per installare Ruby 1.9.3. anche se è stato installato con successo, si è lamentato di libyaml. e ora ogni volta che voglio installare un gioiello (ad esempio i binari) questo avviso si presenta:

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

Uso Mac os X 10.7 (Lion).

Nel mio caso

 rvm pkg install libyaml 

e

 rvm reinstall ruby-1.9.3-p125 

problema risolto.

Per le persone che usano Ubuntu, assicurati che libtool sia installato prima dei passi precedenti:

 sudo apt-get install libtool 

Per utenti macOS (con homebrew):

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

per ubuntu e rvm

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

lavorato

Se non si utilizza rvm, ma si sta costruendo e installando ruby ​​1.9.3 da zero – ad esempio, si gestiscono le versioni ruby ​​con rbenv – è necessario installare prima libyaml. Scaricalo da http://pyyaml.org/ ; al momento, il file che desideri è http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz . Apri il tarball e il cd nella cartella risultante. Poi:

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

Ora sei pronto per build ruby. Scarica ruby ​​da http://ftp.ruby-lang.org/pub/ruby/ . Apri il tarball e il cd nella cartella risultante. Adesso:

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

(O forse sudo make install , a seconda di dove lo stai mettendo.) Se usi rbenv, saprai che ha funzionato se passi a rbenv global 1.9.3-p194 (o qualunque sia la tua versione chiamata) e gem --version funziona senza avvertimento Questo ha funzionato per me su Mac OS X 10.6.8. ( Aggiornamento : ho appena provato questo su Mac OS X 10.8.1 e sembra che abbia funzionato bene anche lì.)

 brew install libyaml rvm reinstall 1.9.3 

È ciò che ha funzionato per me (su Snow Leopard).

Nel mio caso la soluzione era aggiungere la gem psych al Gemfile.

Ho avuto questo problema. libyaml non si compilerebbe. Risulta che mi mancava libtool.

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

Questo ha risolto il mio problema.

 $ brew doctor $ brew link libyaml 

Finalmente ho risolto questo problema. Il problema era che anche se ho installato libyaml con brew, non è mai stato collegato. Ho dovuto rimuovere un file di intestazione in conflitto e quindi brew link libyaml .

Se hai installato Ruby su macOS con homebrew, prova questa soluzione .

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

Nota che questo eliminerà tutte le gemme installate. Meglio salvare un elenco di gemme installate con l’ gem list prima di eseguirlo.

Installare ruby ​​con rvm per mac osx, utilizzare autolibs per installare libyaml e disinstallare prima gli aiuti di libyaml.

Questo ha funzionato per me:

 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 

ricarica il tuo .rvmrc (cd out, cd in)

 bundle 

Ho avuto lo stesso problema (Lion 10.7.4) e l’ho risolto aggiornando rvm e reinstallando ruby

1) aggiornamento rvm https://rvm.io//rvm/install/

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

2) Quindi utilizzare rvm per reinstallare Ruby 1.9.3 (che era stato precedentemente installato con la versione precedente di rvm)

 rvm reinstall 1.9.3 

Nessuna di queste risposte ha funzionato per me.

Ho trovato la mia risposta su https://github.com/sstephenson/ruby-build/issues/119 Sono su CentOS 6.3 Virtual Machine.

È necessario installare libyaml prima di installare ruby. SE HAI GIÀ installato ruby ​​devi liberarti dei file prima di compilare nuovamente il sorgente !!!

 # 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 

Ho costruito i file libyaml separatamente dal sorgente e li ho installati in / usr / local / lib. Il ruby ​​che RVM ha creato ancora non li ha visti, e piuttosto che muck con il makefile o il sistema LD_LIBRARY_PATH ho appena copiato / usr / local / lib / libyaml * in ~ / .rvm / rubies / ruby-1.9.3-p327 / lib /

Questo ha calmato l’avvertimento.

Questo è ciò che ha funzionato per me su Ubuntu:
– installazione di libyaml-dev (sudo apt-get install libyaml-dev)
– installazione di rvm + ruby ​​1.9.3

Ho provato tutte queste risposte e ancora non sono riuscito a farlo funzionare. Ho installato libyaml con homebrew e poi ho installato Ruby 1.9.3 e 2.0.0 con rvm. Ogni volta si lamentava che mi mancava la psicologia (libyaml). Ma provare ad installare libyaml mi ha detto che era già installato. Risciacquare, ripetere. Urgh.

Infine, quello che ho fatto è stato disinstallare libyaml. Poi ho abilitato gli autolibs in rvm , che (almeno in OSX) consente a rvm di installare e gestire le dipendenze in modo più diretto. Ora, quando ho installato i Ruby, rvm è stato in grado di installare libyaml e riconoscere che era nel posto giusto.

Quindi, se hai provato tutte le altre opzioni, prova effettivamente a rimuovere libyaml e poi a installare i tuoi Ruby. È count-intuitivo dai messaggi di errore, ma è quello che finalmente ha funzionato per me.

Ho reinstallato Ruby 1.9.3 con il supporto di libyaml:

 rvm reinstall 1.9.3 --with-libyaml 

Mi sono assicurato che avrei usato 1.9.3 prima di installare psych:

 rvm use 1.9.3 

Ho installato psych:

 gem install psych 

Ho avuto lo stesso problema ( Cent OS 5.7 ), nessuna delle soluzioni di cui sopra ha funzionato per me.

 // My console warning /usr/local/rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/yaml.rb:56:in `': It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby. 

Dopo aver fatto diverse re-install, mi sono reso conto che sta cercando yaml nella versione ruby di 1.9.1 invece di 1.9.3 . Quindi ho declassato

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

E ha funzionato 8D!

Su CentOS 6.3 nessuno dei precedenti ha funzionato. Tuttavia, l’installazione di libyaml dal codice sorgente prima di installare Ruby ha risolto il problema.

 $ 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 

e poi

 rvm install 1.9.3 gem install rails 

sto usando

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

e ha anche ricevuto il seguente errore durante l’installazione del pacchetto

.rvm / rubies / ruby-1.9.3-p194 / lib / ruby ​​/ 1.9.1 / yaml.rb: 56: in `’: Sembra che la tua installazione di ruby ​​non sia psico (per l’output YAML). Per eliminare questo avviso, installare libyaml e reinstallare il ruby.

Ecco tre diversi modi per risolvere questo errore senza dover installare psych

  1. esporta LD_LIBRARY_PATH = / usr / local / lib
  2. altera /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. Correzione dell’installazione di rvm ruby ​​1.9.3 tramite

     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 ****
               # quando il relativo è in effetti, libyaml è installato nel ruby stesso, quindi verrà spostato con il 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"
               se [[-d "$ {rvm_rubies_path} / $ {rvm_ruby_string} / lib64"]]
     !  then __rvm_update_configure_env LDFLAGS = "- L $ {rvm_rubies_path} / $ {rvm_ruby_string} / lib64"
               fi
             altro
               libyaml_installato ||  libyaml # Installa libyaml

     !  __rvm_update_configure_env CFLAGS = "- I $ {rvm_path} / usr / include"
     !  __rvm_update_configure_env LDFLAGS = "- L $ {rvm_path} / usr / lib"
               se [[-d "$ {rvm_path} / usr / lib64"]]
     !  then __rvm_update_configure_env LDFLAGS = "- L $ {rvm_path} / usr / lib64"
               fi
             fi

     --- 106,123 ----
               # quando il relativo è in effetti, libyaml è installato nel ruby stesso, quindi verrà spostato con il 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}"
               se [[-d "$ {rvm_rubies_path} / $ {rvm_ruby_string} / lib64"]]
     !  then __rvm_update_configure_env LDFLAGS = "- L $ {rvm_rubies_path} / $ {rvm_ruby_string} / lib64 $ {LDFLAGS}"
               fi
             altro
               libyaml_installato ||  libyaml # Installa libyaml

     !  __rvm_update_configure_env CFLAGS = "- I $ {rvm_path} / usr / include $ {CFLAGS}"
     !  __rvm_update_configure_env LDFLAGS = "- L $ {rvm_path} / usr / lib $ {LDFLAGS}"
               se [[-d "$ {rvm_path} / usr / lib64"]]
     !  then __rvm_update_configure_env LDFLAGS = "- L $ {rvm_path} / usr / lib64 $ {LDFLAGS}"
               fi
             fi

Metodo di installazione di 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" 

DISABILITA rpmforge modificando questo file e abilita = 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 

La libyaml-devel è la chiave.

 % 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 

Aggiorna il tuo percorso e fonte .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 

Imposta il tuo GEM_HOME in .cshrc e sorgente

 % echo $GEM_HOME % /home/francis/ruby/lib/ruby/gems % gem install mysql2 pg ruby-debug-ide rails capistrano capistrano-ext passenger 

Se stai creando ruby ​​dal sorgente (ho costruito 1.9.3 su Fedora 20), avrai bisogno di questo prima di configurare / make per creare ruby:

 yum install libyaml-devel 

(oltre a yum installa libyaml.) Simile alla risposta di Francis usando rpmforge sopra.

Stavo avendo questo errore e ho notato che avevo diverse versioni di Ruby installate con HomeBrew, insieme a molte gemme che non utilizzavo più. Così ha fatto una pulizia completa come questa:

 $ 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 

Se non usi un Gemfile , assicurati di sapere quali gemme reinstallare.

Nel mio caso tutto quello che dovevo fare era

 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 

Ora, FWIW, l’ gem list include

 psych (2.2.4, default: 2.2.2) 

Su Snow Leopard, la soluzione di Catharz non ha funzionato per me. Questa soluzione, tuttavia, ha fatto:

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

(La reinstallazione di rvm mi ha dato un avvertimento su clang che non ha l’opzione “–with-libyaml” ma ha risolto il messaggio di errore a prescindere.)

Questo ha funzionato per me almeno su Ubuntu 10.04

$ sudo apt-get install libtool

$ rvm reinstallare 1.9.3

Su Solaris:

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

aggiungere /usr/local/lib al percorso di ricerca della libreria condivisa (vedi man crle)

Quando passo da 64 bit a 32 bit su Snow Leopard 10.6.8, ho reinstallato ruby ​​(usato rvm) per funzionare su 32 bit e ho incontrato lo stesso problema. Quindi ho solo ‘ripulito’ tutto ciò che memorizzato prima da rvm e risolto i problemi. Spero che questo suggerimento possa aiutare qualcuno.

rvm cleanup all

rvm install ruby_version_here // (In questo modo, rvm scaricherà anche il più nuovo yaml).

A proposito, se continui a incontrare questo problema, penso che puoi provare:

gem installazione ps

Per quelli con Mountain Lion e versione RVM> = 1.18.x

RVM viene fornito con questo nuovo strumento che viene utilizzato come flag quando si installano le versioni di ruby. Si chiama autolibs.

Mi sono liberato di questo problema psicologico facendo quanto segue:

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

Leggi il testo della guida PRIMA facendo:

rvm help autolibs

Freddo.

Ho anche faticato con gli stessi errori con rvm install ruby-2.0.0 per molte, molte ore. Ho provato tutti i diversi metodi per installare libyaml; wget source , yum e rvm . Ho anche provato tutti i diversi approcci elencati in thread simili. Perché ho provato tutti i diversi metodi, ho avuto più installazioni e posizioni di libyaml.

RVM è perfettamente in grado di installare le dipendenze necessarie in ~/.rvm . La semplice rimozione dei file libyaml dall’installazione non RVM ha risolto il problema per me:

 sudo rm /usr/local/lib/libyaml*.* rvm reinstall ruby-2.0.0-p0 

Lavori!