Как решить проблему "рубиновая установка пропала без вести"?

Я использовал 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

  • export LD_LIBRARY_PATH =/usr/local/lib
  • 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
    
  • Исправить 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 ****
              # 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*

найдено здесь