Я использовал rvm для установки ruby 1.9.3. хотя он был успешно установлен, он жаловался на libyaml. и теперь каждый раз, когда я хочу установить драгоценный камень (скажем, рельсы), это предупреждение появляется:
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).
Ответ 1
В моем случае
rvm pkg install libyaml
и
rvm reinstall ruby-1.9.3-p125
решил проблему.
Для пользователей, использующих Ubuntu, убедитесь, что libtool
установлен до следующих шагов:
sudo apt-get install libtool
Для пользователей macOS (с доморощенным):
rm -rf /usr/local/lib/ruby/gems/ && brew reinstall ruby
Ответ 2
для ubuntu и rvm
sudo apt-get install libtool
rvm pkg install libyaml
rvm reinstall 1.9.3
работал
Ответ 3
Если вы не используете rvm, а скорее строите и устанавливаете ruby 1.9.3 с нуля - например, вы управляете своими рубиновыми версиями rbenv - сначала вы должны установить 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/. Откройте 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. ( Обновление: я просто попробовал это в Mac OS X 10.8.1, и, похоже, он тоже отлично справился.)
Ответ 4
brew install libyaml
rvm reinstall 1.9.3
Что сработало для меня (на Snow Leopard).
Ответ 5
В моем случае решение заключалось в том, чтобы добавить камень psych
в Gemfile.
Ответ 6
У меня была эта проблема. libyaml не собирался. Оказывается, мне не хватает libtool.
yum install libtool
yum install libyaml (or rvm pkg install libyaml)
rvm reinstall 1.9.3
Это решило мою проблему.
Ответ 7
$ brew doctor
$ brew link libyaml
Ответ 8
Наконец-то я получил это исправление. Проблема заключалась в том, что, хотя я установил libyaml с brew, он никогда не был связан. Мне пришлось удалить конфликтный файл заголовка, а затем brew link libyaml
.
Ответ 9
Установка ruby с rvm для mac osx, используйте autolibs для установки libyaml и первой деинсталляции libyaml.
Это сработало для меня:
brew uninstall libyaml
rvm autolibs enable
rvm reinstall ruby-2.1.1
Ответ 10
Если вы установили ruby на macOS с homebrew, попробуйте это решение.
rm -rf /usr/local/lib/ruby/gems/ && brew reinstall ruby
Обратите внимание, что это избавит вас от всех установленных камней. Лучше всего сохранить список установленных драгоценных камней с помощью gem list
, прежде чем запускать его.
Ответ 11
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
Ответ 12
У меня была та же проблема (Lion 10.7.4) и исправлена ее, обновив rvm, а затем переустановив ruby
1) upgrade 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
Ответ 13
Ни один из этих ответов не работал у меня.
Я нашел свой ответ на https://github.com/sstephenson/ruby-build/issues/119
Я на виртуальной машине Centos 6.3.
ВЫ ДОЛЖНЫ установить libyaml перед установкой ruby. Если вы УЖЕ установили 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
Ответ 14
Я создал файлы libyaml отдельно от источника и установил их в /usr/local/lib. Рубин, созданный RVM, все еще не видел их, а не гадость с makefile или системой LD_LIBRARY_PATH Я просто скопировал /usr/local/lib/libyaml * в ~/.rvm/rubies/ruby-1.9.3-p327/Library/
Это успокоило предупреждение.
Ответ 15
Это то, что сработало для меня на Ubuntu:
- установка libyaml-dev (sudo apt-get install libyaml-dev)
- установка rvm + ruby 1.9.3
Ответ 16
Я пробовал все эти ответы и до сих пор не смог заставить его работать. Я установил libyaml с homebrew, а затем установил Ruby 1.9.3 и 2.0.0 с rvm. Каждый раз, когда он жаловался, что мне не хватает психики (libyaml). Но, пытаясь установить libyaml, мне сказали, что он уже установлен. Прополощите, повторите. Urgh.
Наконец, я решил удалить libyaml. Затем я включил автолибы в rvm, который (по крайней мере, в OSX) позволяет rvm устанавливать и управлять зависимостями более напрямую. Теперь, когда я установил Rubies, rvm смог установить libyaml и признать, что он находится в нужном месте.
Итак, если вы пробовали все другие параметры, попробуйте удалить Libyaml, а затем установить Rubies. Он считается интуитивным из сообщений об ошибках, но тем, что в конечном итоге сработало для меня.
Ответ 17
Я переустановил ruby 1.9.3 с поддержкой libyaml:
rvm reinstall 1.9.3 --with-libyaml
Я убедился, что перед установкой psych использовал бы 1.9.3:
rvm use 1.9.3
Я установил psych:
gem install psych
Ответ 18
У меня была та же проблема (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.
После нескольких повторных установок я понял, что ищет yaml в рубиновой версии 1.9.1
вместо 1.9.3
. Итак, я понизил рейтинг
// obviously after installing `libyaml`
rvm remove all
rvm install 1.9.1
rvm use 1.9.1 --default
И это сработало 8D!
Ответ 19
В CentOS 6.3 ничего из этого не было. Однако установка libyaml из источника до установки ruby разрешила проблему.
$ 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
Ответ 20
Я использую
rvm 1.16.20 (версия) Уэйн Э. Сегин, Michal Papis [https://rvm.io/]
а также при ошибке установки пакета
.rvm/rubies/ruby-1.9.3-p194/lib/ruby /1.9.1/yaml.rb: 56: in `': кажется ваша рубиновая установка отсутствует psych (для вывода YAML). к устраните это предупреждение, пожалуйста, установите libyaml и переустановите рубин.
Вот три разных способа решить эту ошибку без необходимости установки gem install psych
$ 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 ****
# when relative is in effect libyaml is installed in ruby itself so it will be moved with 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" ]]
! then __rvm_update_configure_env LDFLAGS="-L${rvm_rubies_path}/${rvm_ruby_string}/lib64"
fi
else
libyaml_installed || libyaml # Installs 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" ]]
! then __rvm_update_configure_env LDFLAGS="-L${rvm_path}/usr/lib64"
fi
fi
--- 106,123 ----
# when relative is in effect libyaml is installed in ruby itself so it will be moved with 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" ]]
! then __rvm_update_configure_env LDFLAGS="-L${rvm_rubies_path}/${rvm_ruby_string}/lib64 ${LDFLAGS}"
fi
else
libyaml_installed || libyaml # Installs 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" ]]
! then __rvm_update_configure_env LDFLAGS="-L${rvm_path}/usr/lib64 ${LDFLAGS}"
fi
fi
Ответ 21
Метод установки ruby без 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"
ОТКЛЮЧИТЬ 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
Ответ 22
Если вы создаете ruby из исходного кода (я построил 1.9.3 на Fedora 20), вам понадобится это, прежде чем вы выполните команду configure/make для создания ruby:
yum install libyaml-devel
(в дополнение к yum install libyaml.) Подобно Фрэнсису, ответьте, используя rpmforge выше.
Ответ 23
У меня была эта ошибка и я заметил, что у меня были разные версии Ruby, установленные с HomeBrew, а также многие драгоценные камни, которые я больше не использовал. Так что полная очистка:
$ 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
, убедитесь, что знаете, какие камни переустанавливать.
Ответ 24
На Snow Leopard решение Catharz не помогло мне. Это решение, однако, сделало:
brew install libyaml
rvm get head
rvm reinstall 1.9.3 --with-gcc=clang
(Установщик rvm дал мне предупреждение о том, что clang не имеет опции "--with-libyaml", но он решил сообщение об ошибке независимо.)
Ответ 25
Это сработало для меня хотя бы на Ubuntu 10.04
$sudo apt-get install libtool
$rvm переустановить 1.9.3
Ответ 26
В Solaris:
# sudo crle -64 -l /usr/local/lib
добавить /usr/local/lib
в путь поиска совместно используемой библиотеки
(см. man crle)
Ответ 27
Когда я переключаюсь с 64 бит на 32 бит на Snow Leopard 10.6.8, я переустановил ruby (используемый rvm) для запуска на 32-битной и встретил ту же проблему. Поэтому я просто "очищаю" все, что было ранее кэшировано rvm, и проблемы решены. Надеюсь, этот совет поможет кому-то.
rvm очистить все
rvm install ruby_version_here//(таким образом, rvm также перезагрузит новейший yaml).
Кстати, если вы все еще встречаете эту проблему, я думаю, вы можете попробовать:
gem install psych
Ответ 28
Для тех, у кого есть версия Mountain Lion и RVM >= 1.18.x
RVM поставляется с этим новым инструментом, который используется как флаг при установке рубиновых версий. Это называется автолибами.
Я избавился от этой психической проблемы, выполнив следующее:
rvm reinstall ruby-1.9.3-p392 --autolibs=3
Прочтите текст справки ДОПОЛНИТЕЛЬНО:
rvm help autolibs
Круто.
Ответ 29
Я также боролся с теми же неудачами с rvm install ruby-2.0.0
для многих, МНОГО часов. Я попробовал все различные методы установки libyaml; wget source
, yum
и rvm
. Я также пробовал все различные подходы, перечисленные в похожих потоках. Поскольку я пробовал все разные методы, у меня было несколько установок и мест размещения libyaml.
RVM отлично подходит для установки необходимых зависимостей в ~/.rvm
. Простое удаление файлов libyaml из установки, отличной от RVM, исправило эту проблему для меня:
sudo rm /usr/local/lib/libyaml*.*
rvm reinstall ruby-2.0.0-p0
Работы!
Ответ 30
У меня была аналогичная проблема после обновления ОС, это решает мою проблему:
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*
найдено здесь