Rvmを使用してRuby 1.9.3をインストールしました。正常にインストールされたにもかかわらず、libyamlについて不平を言いました。そして今、gem(Railsなど)をインストールするたびに、この警告が表示されます。
It seems your Ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your Ruby.
Mac os X 10.7(Lion)を使用しています。
私の場合
rvm pkg install libyaml
そして
rvm reinstall Ruby-1.9.3-p125
問題を解決しました。
Ubuntuを使用している場合は、上記の手順の前にlibtool
がインストールされていることを確認してください。
Sudo apt-get install libtool
MacOSユーザー(homebrewを使用):
rm -rf /usr/local/lib/Ruby/gems/ && brew reinstall Ruby
ubuntuおよびrvm用
Sudo apt-get install libtool
rvm pkg install libyaml
rvm reinstall 1.9.3
働いた
Rvmを使用せず、Ruby 1.9.3を最初から構築およびインストールする場合—たとえば、 rbenv でRubyバージョンを管理する場合—最初にlibyamlをインストールする必要があります。 http://pyyaml.org/ から入手してください。現時点では、必要なファイルは http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz です。 tarballを開き、結果のフォルダーにcdします。次に:
./configure --prefix=/usr/local
make
Sudo make install
これで、Rubyをビルドする準備が整いました。 http://ftp.Ruby-lang.org/pub/Ruby/ からRubyをダウンロードします。 tarballを開き、結果のフォルダーにcdします。今:
./configure --prefix=/wherever/you/want/it/to/go
make
make install
(または、おそらくSudo make install
、配置場所によって異なります。)rbenvを使用している場合、rbenv global 1.9.3-p194
(または呼び出されるバージョン)とgem --version
は警告なしで機能します。これはMac OS X 10.6.8でうまくいきました。 (Update:Mac OS X 10.8.1でこれを試したところ、そこでもうまくいったようです。)
brew install libyaml
rvm reinstall 1.9.3
(Snow Leopardで)私のために働いたものです。
私の場合、解決策はpsych
gemをGemfileに追加することでした。
この問題がありました。 libyamlはコンパイルされません。 libtoolが見つかりませんでした。
yum install libtool
yum install libyaml (or rvm pkg install libyaml)
rvm reinstall 1.9.3
これで私の問題は解決しました。
$ brew doctor
$ brew link libyaml
Homebrewを使用してmacOSにRubyをインストールした場合、 このソリューションを試してください 。
rm -rf /usr/local/lib/Ruby/gems/ && brew reinstall Ruby
これにより、インストールされているすべてのgemが削除されることに注意してください。これを実行する前に、gem list
でインストールされたgemのリストを保存するのが最適です。
私は最終的にこれを修正しました。問題は、libyamlをbrewでインストールしても、リンクされないことでした。競合するヘッダーファイルを削除してからbrew link libyaml
を削除する必要がありました。
Mac osx用のrvmでRubyをインストールし、autolibsを使用してlibyamlをインストールし、最初にlibyamlをアンインストールすると役立ちます。
これは私のために働いた:
brew uninstall libyaml
rvm autolibs enable
rvm reinstall Ruby-2.1.1
同じ問題(Lion 10.7.4)があり、rvmをアップグレードしてからRubyを再インストールすることで修正しました
1)rvmのアップグレード https://rvm.io//rvm/install/
curl -L https://get.rvm.io | bash -s stable --Ruby
2)次に、rvmを使用してRuby 1.9.3(以前のバージョンの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
.rvmrcをリロードします(cd out、cd in)
bundle
LibyamlをサポートしたRuby 1.9.3を再インストールしました。
rvm reinstall 1.9.3 --with-libyaml
Psychをインストールする前に1.9.3を使用することを確認しました。
rvm use 1.9.3
Psychをインストールしました:
gem install psych
これがUbuntuで私にとってうまくいったことです:
-libyaml-devのインストール(Sudo apt-get install libyaml-dev)
-rvm + Ruby 1.9.3のインストール
私はこれらの答えをすべて試してみましたが、それでも機能させることができませんでした。 homebrewでlibyamlをインストールしてから、rvmでRuby 1.9.3および2.0.0をインストールしました。それは私が精神(libyaml)を逃していると不平を言うたびに。しかし、libyamlをインストールしようとすると、すでにインストールされていることがわかりました。すすぎ、繰り返します。ほら.
最後に、私がしたことはuninstalllibyamlでした。次に、 rvmでautolibsを有効化 にすると、(少なくともOSXでは)rvmが依存関係をより直接インストールして管理できるようになります。今、Rubiesをインストールしたとき、rvmはlibyamlをインストールし、それが正しい場所にあることを認識できました。
したがって、他のオプションをすべて試した場合は、実際にremovinglibyamlを試してから、Rubiesをインストールしてください。エラーメッセージから直感的に理解できますが、それが最終的にはうまくいきました。
これらの答えはどれも私にとってはうまくいきませんでした。
https://github.com/sstephenson/Ruby-build/issues/119 で答えを見つけました== Centos 6.3 Virtual Machineを使用しています。
Rubyをインストールする前にlibyamlをインストールする必要があります。 Rubyを既にインストールしている場合は、ソースを再度コンパイルする前にファイルを削除する必要があります!!!
# 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
Libyamlファイルをソースとは別にビルドし、/ usr/local/libにインストールしました。 RVMが作成したRubyにはまだ表示されず、メイクファイルまたはシステムLD_LIBRARY_PATHをいじるのではなく、/ usr/local/lib/libyaml *を〜/ .rvm/rubies/Ruby-にコピーしました1.9.3-p327/lib /
それは警告を静めました。
このエラーが発生し、HomeBrewと共にRubyの異なるバージョンがインストールされていることに気付きました。したがって、次のように完全にクリーンアップしました。
$ 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
Gemfile
を使用しない場合は、どのgemを再インストールするかを確認してください。
NON-RVM Rubyインストール方法。
% 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"
このファイルを編集してrpmforgeを無効にし、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
Libyaml-develが鍵です。
% 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
パスとソース.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
GEM_HOMEを.cshrcおよびソースに設定します
% echo $GEM_HOME
% /home/francis/Ruby/lib/Ruby/gems
% gem install mysql2 pg Ruby-debug-ide Rails capistrano capistrano-ext passenger
CentOS 6.3では、上記のいずれも機能しませんでした。しかし、ソースからのlibyamlのインストールbeforeRubyのインストールは問題を解決しました。
$ 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
その後
rvm install 1.9.3
gem install Rails
私は同じ問題を抱えていました(Cent OS 5.7)、上記の解決策のどれも私にはうまくいきませんでした。
// 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.
数回再インストールした後、1.9.1
ではなくRubyバージョンの1.9.3
でyamlを探していることに気付きました。だから私はダウングレードしました
// obviously after installing `libyaml`
rvm remove all
rvm install 1.9.1
rvm use 1.9.1 --default
そして、8Dで機能しました!
私の場合 必要なことはすべて は
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
さて、FWIW、gem list
には
psych (2.2.4, default: 2.2.2)
ソースからRubyをビルドしている場合(Fedora 20で1.9.3をビルドした場合)、configure/makeを実行してRubyをビルドする前にこれが必要になります。
yum install libyaml-devel
(libyamlのインストールに加えて)。上記のrpmforgeを使用したFrancisの回答に似ています。
私は使っています
rvm 1.16.20(バージョン)by Wayne E. Seguin、Michal Papis [https://rvm.io/]
また、バンドルのインストール中に次のエラーが発生しました
.rvm/rubies/Ruby-1.9.3-p194/lib/Ruby/1.9.1/yaml.rb:56:in `':Rubyインストールにpsychが欠けているようです(YAML出力用) 。この警告を解消するには、libyamlをインストールしてRubyを再インストールしてください。
以下に、gemをインストールする必要のないこのエラーを解決する3つの異なる方法を示します。
/etc/ld.so.confを変更します
Sudo su - root echo /usr/local/lib64 >> /etc/ld.so.conf echo /usr/local/lib >> /etc/ld.so.conf ldconfig
Rvm Ruby 1.9.3インストールを修正
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 **** #相対が有効な場合、libyamlはRuby自体にインストールされるため、 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"]] !その後__rvm_update_configure_env LDFLAGS = "-L $ {rvm_rubies_path}/$ {rvm_Ruby_string}/lib64" fi else libyaml_installed || libyaml#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"]] !次に__rvm_update_configure_env LDFLAGS = "-L $ {rvm_path}/usr/lib64" fi fi --- 106,123 ---- #相対が有効な場合、libyamlはRuby自体にインストールされるため、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"]] !その後__rvm_update_configure_env LDFLAGS = "-L $ {rvm_rubies_path}/$ {rvm_Ruby_string}/lib64 $ {LDFLAGS}" fi else libyaml_installed || libyaml#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"]] !その後__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
OSXのアップグレード後に同様の問題が発生しました。これが私の問題を解決します。
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*
これは少なくともUbuntu 10.04で機能しました
$ sudo apt-get install libtool
$ rvm再インストール1.9.3
Solarisの場合:
# Sudo crle -64 -l /usr/local/lib
/usr/local/lib
を共有ライブラリ検索パスに追加するには(man crleを参照)
私はまた、rvm install Ruby-2.0.0
で同じ障害に何時間も苦労しました。 libyamlをインストールするためのさまざまな方法をすべて試しました。 wget source
、yum
、およびrvm
。同様のスレッドにリストされているさまざまなアプローチもすべて試しました。さまざまな方法をすべて試したため、複数のインストールとlibyamlの場所がありました。
RVMは、~/.rvm
に必要な依存関係を完全にインストールできます。非RVMインストールからlibyamlファイルを削除するだけで、この問題は修正されました。
Sudo rm /usr/local/lib/libyaml*.*
rvm reinstall Ruby-2.0.0-p0
動作します!
Snow Leopard 10.6.8で64ビットから32ビットに切り替えると、Ruby(使用されているrvm)を再インストールして32ビットで実行し、同じ問題に遭遇しました。そのため、以前rvmによってキャッシュされたすべてのものを「クリーンアップ」し、問題を解決しました。このヒントが誰かを助けることを願っています。
すべてのrvmクリーンアップ
rvm install Ruby_version_here //(この方法で、rvmは最新のyamlも再ダウンロードします)。
ところで、まだこの問題が解決しない場合は、試してみてください。
gem install psych
Snow Leopardでは、Catharzによる解決策はうまくいきませんでした。ただし、このソリューションは次のことを行いました。
brew install libyaml
rvm get head
rvm reinstall 1.9.3 --with-gcc=clang
(rvmを再インストールすると、clangにオプション "--with-libyaml"がないという警告が表示されましたが、それでもエラーメッセージは解決しました。)
Mountain LionおよびRVMバージョン1.18.x以上の場合
RVMには、Rubyバージョンをインストールする際のフラグとして使用されるこの新しいツールが付属しています。これはautolibと呼ばれます。
次のことを行うことで、この精神的な問題を取り除きました。
rvm reinstall Ruby-1.9.3-p392 --autolibs=3
以下を実行する前に、ヘルプテキストを読んでください。
rvm help autolibs
クール。