Невозможно разрешить ошибку 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.
Я пытался установить пакет libyaml
согласно инструкциям в других вопросах о переполнении стека, безрезультатно.
Я не уверен, какой тип системы работает на моем VPS, но он не имеет apt-get
команда. Это имеет yum
...
8 ответов
У меня была эта проблема, и установка 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
Я должен не согласиться с @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
В дистрибутиве на основе RHEL, таком как CentOS 6.x, вам нужно добавить еще один репозиторий yum, такой как EPEL, который содержит пакет libyaml-devel.
Ключи для EPEL или скачать
RPM для EPEL
Больше информации:
Также предложил бы использовать yum-plugin-priority
Добавить EPEL Yum Repository
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)
Проблема может быть решена путем установки libyaml
, Ниже приведены соответствующие пакеты для самых популярных дистрибутивов:
- мягкая фетровая шляпа
libyaml
- Ubuntu и другие основанные на Debian
libyaml-dev
- Некоторые другие, как CentOS
libyaml-devel
а также вам следует установить следующее, чтобы избежать подобных проблем в будущем:
ruby-devel libxml2 libxml2-devel libxslt libxslt-devel
В случае, если люди все еще сталкиваются с этим, я исправил это, используя новую функцию autolibs в RVM, которая автоматически устанавливает зависимости, используя ваши библиотеки homebrew (ознакомьтесь с rvm help autolibs
для информации.)
rvm reinstall 1.9.3 --autolibs=2
Убедитесь, что на вашем компьютере 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 установит ОК.
У меня была такая же проблема libyaml с CentOS 6.2
Ведение...
rvm pkg install libyaml
rvm reinstall 1.9.3 --with-libyaml-dir=/usr/local/rvm/usr
Исправил это для меня.
(спасибо @ Eugene)
Вы, кажется, работаете над Fedora. Проверьте официальный сайт Ruby для получения инструкций по установке на Fedora.
Попробуйте эту ссылку тоже http://sraji.wordpress.com/2011/01/25/how-to-install-ruby-on-fedora-14/