Saya menggunakan rvm untuk menginstal ruby 1.9.3. meskipun berhasil diinstal, ia mengeluh tentang libyaml. dan sekarang setiap kali saya ingin menginstal permata (katakanlah rails) peringatan ini muncul:
It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby.
Saya menggunakan Mac os X 10.7 (Lion).
ruby-on-rails
ruby
macos
rvm
Pouya
sumber
sumber
brew doctor
. Apakah ada daftar masalah dengan tautan libyaml?rm -rf /usr/local/lib/ruby/gems/ && brew reinstall ruby
sebagaimana dinyatakan dalam Gtihub homebrew-core resmi terselesaikan masalahJawaban:
Dalam kasus saya
dan
memecahkan masalah.
Untuk orang-orang yang menggunakan Ubuntu, pastikan itu
libtool
diinstal sebelum langkah-langkah di atas:Untuk pengguna macOS (dengan homebrew):
sumber
rvm package install libyaml
rvm pkg install libyaml
. Darirvm usage
:pkg :: Install a dependency package {readline,iconv,zlib,openssl}
.package
.rvm pkg install libyaml
, disarankan untuk menginstal ulang semua rubirvm reinstall all --force
. Mungkin bermanfaat jika Anda memiliki lebih dari satu.rvm reinstall 1.9.3 --with-libyaml-dir=/home/rails/.rvm/usr
seperti yang disarankan di serverfault.com/questions/442150/…untuk ubuntu dan rvm
bekerja
sumber
Jika tidak menggunakan rvm, tetapi Anda membangun dan menginstal ruby 1.9.3 dari awal - misalnya, Anda mengelola versi ruby dengan rbenv - Anda harus menginstal libyaml terlebih dahulu. Dapatkan dari http://pyyaml.org/ ; saat ini, file yang Anda inginkan adalah http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz . Buka tarball dan cd ke folder yang dihasilkan. Kemudian:
Anda sekarang siap membangun ruby. Unduh ruby dari http://ftp.ruby-lang.org/pub/ruby/ . Buka tarball dan cd ke folder yang dihasilkan. Sekarang:
(Atau mungkin
sudo make install
, tergantung di mana Anda meletakkannya.) Jika menggunakan rbenv, Anda akan tahu itu bekerja jika Anda beralih kerbenv global 1.9.3-p194
(atau apa pun versi Anda dipanggil) dangem --version
bekerja tanpa peringatan. Itu berhasil bagi saya di Mac OS X 10.6.8. ( Perbarui : Saya baru saja mencoba ini di Mac OS X 10.8.1 dan tampaknya sudah berfungsi dengan baik di sana.)sumber
gem --version
suara Anda benar, tetapi mungkin Anda memiliki jalur Anda karena sebelumnya menggunakan rvm/usr/local
saat mengkonfigurasi yaml, kemudian konfigurasikan ruby dengan--with-opt-dir=/path/to/yaml/prefix --with-yaml --prefix=/path/to/ruby/prefix
Apakah yang bekerja untuk saya (di Snow Leopard).
sumber
Dalam kasus saya solusinya adalah menambahkan
psych
permata ke Gemfile.sumber
Saya punya masalah ini. libyaml tidak akan dikompilasi. Ternyata saya kehilangan libtool.
Itu memecahkan masalah saya.
sumber
Jika Anda telah menginstal ruby pada macOS dengan homebrew, coba solusi ini .
rm -rf /usr/local/lib/ruby/gems/ && brew reinstall ruby
Perhatikan bahwa ini akan menghilangkan semua permata yang terpasang. Terbaik menyimpan daftar permata yang diinstal dengan
gem list
sebelum Anda menjalankan ini.sumber
gem list
apa yang menyebabkan kesalahan di tempat pertama (bagi saya).sumber
brew doctor
masalah telah diperbaiki untuk saya. Saya mendapat kesalahan yang sangat mirip dengan kesalahan penanya ketika mencobagem install jekyll
. Semua perintah melalui rvm juga memberikan kesalahan. Masalah mendasar dan tidak begitu jelas adalah bahwa homebrew, saya mengasumsikan cara dimana rvm menginstal barang, mengalami masalah. Saya baru-baru ini ditingkatkan ke Mavericks di Mac OS. Dalam kasus saya, menyelesaikan semuabrew doctor
masalah menghilangkan setiap pesan kesalahan. Sekarang semuanya bekerja dengan lancar.Saya memperbaiki ini pada akhirnya. Masalahnya adalah bahwa meskipun saya menginstal libyaml dengan minuman, itu tidak pernah terhubung. Saya harus menghapus file header yang bertentangan dan kemudian
brew link libyaml
.sumber
Menginstal ruby dengan rvm untuk mac osx, gunakan autolibs untuk menginstal libyaml dan menghapus instalan libyaml akan membantu.
Ini bekerja untuk saya:
sumber
Saya memiliki masalah yang sama (Lion 10.7.4), dan memperbaikinya dengan memutakhirkan rvm kemudian menginstal ulang ruby
1) tingkatkan rvm https://rvm.io//rvm/install/
2) Kemudian gunakan rvm untuk menginstal ulang ruby 1.9.3 (yang sebelumnya telah diinstal dengan versi rvm sebelumnya)
sumber
Saya menginstal ulang ruby 1.9.3 dengan dukungan libyaml:
Saya memastikan bahwa saya akan menggunakan 1.9.3 sebelum menginstal psych:
Saya menginstal psik:
sumber
muat ulang .rvmrc Anda (keluar, masuk)
sumber
Tidak satu pun dari jawaban ini yang berhasil untuk saya.
Saya menemukan jawaban saya di https://github.com/sstephenson/ruby-build/issues/119 Saya menggunakan Centos 6.3 Virtual Machine.
ANDA HARUS menginstal libyaml sebelum Anda menginstal ruby. JIKA Anda SUDAH menginstal ruby, Anda harus menyingkirkan file sebelum mengkompilasi sumber lagi !!!
sumber
Saya membuat file libyaml secara terpisah dari sumber dan menginstalnya di / usr / local / lib. Ruby yang dibuat RVM masih tidak melihat mereka, dan bukannya bercampur dengan makefile atau sistem LD_LIBRARY_PATH Saya baru saja menyalin / usr / local / lib / libyaml * ke ~ / .rvm / rubies / ruby-1.9.3-p327 / Lib /
Itu menenangkan peringatan.
sumber
Inilah yang bekerja untuk saya di Ubuntu:
- menginstal libyaml-dev (sudo apt-get install libyaml-dev)
- menginstal rvm + ruby 1.9.3
sumber
Saya mencoba semua jawaban ini dan masih tidak bisa membuatnya bekerja. Saya menginstal libyaml dengan homebrew dan kemudian menginstal Ruby 1.9.3 dan 2.0.0 dengan rvm. Setiap kali mengeluh bahwa saya kehilangan psik (libyaml). Tetapi mencoba menginstal libyaml mengatakan kepada saya bahwa itu sudah diinstal. Bilas, ulangi. Urgh.
Akhirnya, apa yang saya lakukan adalah menghapus libyaml. Kemudian saya mengaktifkan autolibs di rvm , yang (setidaknya dalam OSX) memungkinkan rvm untuk menginstal dan mengelola dependensi secara lebih langsung. Sekarang ketika saya menginstal Rubi, rvm dapat menginstal libyaml dan mengenali bahwa itu ada di tempat yang tepat.
Jadi jika Anda sudah mencoba semua opsi lain, coba hapus libyaml lalu instal Rubi Anda. Ini menghitung intuitif dari pesan kesalahan, tapi itulah yang akhirnya berhasil untuk saya.
sumber
Saya memiliki masalah yang sama ( Cent OS 5.7 ), tidak ada solusi di atas yang berfungsi untuk saya.
Setelah melakukan beberapa instal ulang, saya menyadari sedang mencari yaml dalam versi ruby
1.9.1
alih-alih1.9.3
. Jadi saya menurunkan peringkatDan itu berhasil 8D!
sumber
Pada CentOS 6.3 tidak ada yang di atas berfungsi. Namun menginstal libyaml dari sumber sebelum menginstal ruby menyelesaikan masalah.
lalu
sumber
saya menggunakan
dan juga mendapat kesalahan berikut saat menginstal bundel
Berikut adalah tiga cara berbeda untuk menyelesaikan kesalahan ini tanpa harus menginstal psych
ubah /etc/ld.so.conf
Perbaiki instalasi rvm ruby 1.9.3 via
sumber
Saya juga berjuang dengan kegagalan yang sama
rvm install ruby-2.0.0
selama berjam-jam. Saya telah mencoba semua metode berbeda untuk menginstal libyaml;wget source
,yum
danrvm
. Saya juga mencoba semua pendekatan berbeda yang tercantum di utas serupa. Karena saya mencoba semua metode yang berbeda, saya memiliki banyak instalasi dan lokasi libyaml.RVM sangat mampu menginstal dependensi yang diperlukan di
~/.rvm
. Cukup menghapus file libyaml dari instalasi non-RVM yang memperbaiki masalah ini untuk saya:Bekerja!
sumber
Metode pemasangan ruby NON-RVM.
Nonaktifkan rpmforge dengan mengedit file ini dan mengatur diaktifkan = 0% sudo vi /etc/yum.repos.d/rpmforge.repo
Leibyaml-devel adalah kuncinya.
Perbarui jalur dan sumber .cshrc Anda
Tetapkan GEM_HOME Anda dalam .cshrc dan sumber
sumber
Jika Anda membangun ruby dari sumber (saya membangun 1.9.3 di Fedora 20), Anda akan membutuhkan ini sebelum Anda melakukan konfigurasi / make untuk membangun ruby:
(Selain yum instal libyaml.) Mirip dengan jawaban Francis menggunakan rpmforge di atas.
sumber
Saya mengalami kesalahan ini dan menyadari bahwa saya telah menginstal berbagai versi Ruby dengan HomeBrew, bersama dengan banyak permata yang tidak lagi saya gunakan. Begitu juga pembersihan penuh seperti ini:
Jika Anda tidak menggunakan
Gemfile
, pastikan Anda tahu permata mana yang harus dipasang kembali.sumber
Dalam kasus saya yang perlu saya lakukan adalah
Sekarang, FWIW,
gem list
termasuksumber
Saya menghabiskan beberapa jam mencoba menyelesaikan kesalahan saya dan tidak ada balasan yang sesuai dengan kasus saya, jadi saya pikir saya akan memposting bagaimana saya menyelesaikannya ...
Dalam kasus saya ketika saya berlari
gem list | grep psych
, saya memiliki output sebagai berikut:psych(default: 3.1.0, default: 3.0.2)
.Rupanya sejak versi 2.5.0, ruby tergantung pada versi psych yang lebih baru (3.1.0) dan keduanya ditetapkan sebagai standar yang mengacaukan segalanya. Perhatikan bahwa saya tidak pernah menemukan mengapa keduanya ditetapkan sebagai default - saya benar-benar menghapus versi rvm dan ruby dari komputer saya karena hal ini.
Jadi untuk menghapus versi yang lebih lama (3.0.2) dari yang ditetapkan sebagai default, buka
~/.rvm/gems/ruby-x.x.x@global/specifications/default
. Jika Anda menjalankannyals | grep psych
akan mengembalikan kedua versi permata di sini. Jika Anda ingin mempertahankan 3.1.0 sebagai default jalankan sajamv psych-3.0.2.gemspec ../
dan kemudian coba jalankangemlist
untuk memastikan itu hanya daftar satu versi sebagai default sekarang ...tl; dr
cd /.rvm/gems/ruby-x.x.x@global/specifications/default
mv psych-3.0.2 ../
Semoga ini bisa membantu seseorang!
sumber
Di Snow Leopard, solusi oleh Catharz tidak berhasil untuk saya. Namun, solusi ini:
(Instal ulang rvm memberi saya peringatan tentang dentang tidak memiliki opsi "--with-libyaml" tetapi terlepas dari pesan kesalahan.)
sumber
Ini bekerja untuk saya setidaknya di Ubuntu 10,04
$ sudo apt-get install libtool
$ rvm instal ulang 1.9.3
sumber
Tentang Solaris:
untuk menambah
/usr/local/lib
jalur pencarian perpustakaan bersama (lihat man crle)sumber
Ketika saya beralih dari 64 bit ke 32 bit pada Snow Leopard 10.6.8, saya telah menginstal ulang ruby (digunakan rvm) untuk dijalankan pada 32bit dan menemui masalah yang sama. Jadi saya hanya 'membersihkan' semua hal yang di-cache oleh rvm sebelumnya dan masalah terpecahkan. Semoga tip ini bisa membantu seseorang.
BTW, jika Anda masih memenuhi masalah ini, saya pikir Anda dapat mencoba:
sumber