Подтвердить что ты не робот

Не удалось разрешить ошибку Ruby (отсутствует psych)

Всякий раз, когда я запускаю что-то с Ruby на моем сервере, я получаю следующую ошибку:

/usr/local/rvm/rubies/ruby-1.9.3-p194/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.

Я установил Ruby с помощью RVM на свой VPS.

Ive попытался установить пакет libyaml в соответствии с инструкциями по другим вопросам, связанным с переполнением стека, безрезультатно.

Я не уверен, какой тип системы работает VPS, но у нее нет команды apt-get. Он имеет yum...

4b9b3361

Ответ 1

У меня возникла эта проблема, и установка libyaml не помогла. Оказалось, что libyaml-devel был нужен психике. Я был на centos6, поэтому я сделал это:

curl -O http://www6.atomicorp.com/channels/atomic/centos/6/x86_64/RPMS/atomic-release-1.0-14.el6.art.noarch.rpm

sudo  rpm -Uvh atomic-release-1.0-14.el6.art.noarch.rpm

sudo yum install libyaml-devel

rvm reinstall 1.9.3-p194

Ответ 2

Я должен не согласиться с @JunaidKirkire в том, что я думаю, что вы используете CentOS или Redhat 5, который по умолчанию использует очень старую версию Ruby, и я думаю, что использование RVM - намного лучший способ пойти. Я считаю, вам просто нужно скомпилировать libyaml из источника со следующим:

rvm pkg install libyaml

Это сообщит вам каталог, в который он компилируется, в моем случае это /Users/ehowe/.rvm/usr

Затем вам необходимо перекомпилировать Ruby со следующей опцией:

rvm reinstall 1.9.3 --with-libyaml-dir=$directory_that_rvm_installed_libyaml_to

Итак, в моем случае я бы сделал:

rvm install 1.9.3 --with-libyaml-dir=/Users/ehowe/.rvm/usr

Если вы используете rvm как root, это будет установлено в /usr/local/rvm/usr. Если вы используете его как пользователя, как рекомендуется, это будет /home/$user/.rvm/usr

Ответ 3

В дистрибутиве на основе RHEL, таком как CentOS 6.x, вам нужно добавить еще один репозиторий yum, такой как EPEL, который содержит пакет libyaml-devel.

Keys для EPEL или скачать
RPM для EPEL

Дополнительная информация:

Также предложит использовать yum-plugin-priority

Добавить репозиторий EPEL Yum

rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
rpm -Kih http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Установить libyaml-devel через yum

yum -y install libyaml-devel

Пакеты

Dependencies Resolved

====================================================================================
 Package                       Arch         Version           Repository       Size
====================================================================================
Installing:
 libyaml-devel                 x86_64       0.1.3-1.el6       epel             84 k
Installing for dependencies:
 libyaml                       x86_64       0.1.3-1.el6       epel             52 k

Transaction Summary
====================================================================================
Install       2 Package(s)

Ответ 4

Проблема может быть решена путем установки libyaml. Ниже приведены соответствующие пакеты для самых популярных дистрибутивов:

  • Fedora libyaml
  • Ubuntu и другие Debian на основе libyaml-dev
  • Некоторые другие, такие как CentOS libyaml-devel

а также вы должны установить следующее, чтобы избежать подобных проблем в будущем:

ruby-devel libxml2 libxml2-devel libxslt libxslt-devel

Ответ 5

В случае, если люди все еще ударяют это, я исправил его, используя новую функцию автолитов в RVM, которая автоматически устанавливает зависимости с помощью ваших доморощенных библиотек (проверьте rvm help autolibs для информации.)

rvm reinstall 1.9.3 --autolibs=2

Ответ 7

У меня была такая же проблема libyaml с CentOS 6.2

Ведение...

rvm pkg install libyaml
rvm reinstall 1.9.3 --with-libyaml-dir=/usr/local/rvm/usr

Исправлено это для меня.

(благодаря @Eugene)

Ответ 8

Убедитесь, что ваша машина Redhat имеет действительную подписку:

# subscription-manager list 

+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
Product Name:   Red Hat Enterprise Linux Server
Product ID:     69
Version:        7.1
Arch:           x86_64
Status:         Subscribed
Status Details: 
Starts:         06/13/2014
Ends:           06/12/2015

Статус должен указывать "Подписка". Если нет, то пройдите через регистрацию и, возможно, приобретите подписку на https://access.redhat.com/management/consumers.

Когда это будет сделано, запустите

# subscription-manager repos --enable rhel-7-server-optional-rpms

тогда libyaml-devel установит ОК.