2012-10-01 15 views
6

Sistema operativo: CentOS 6.2 x86_64
Pido disculpas por la indentación que es wonky. Esta es mi primera publicación SO y soy nuevo en la configuración de servidores. Sin embargo, estoy aprendiendo y detallaré los pasos que he seguido tratando de resolver esto, así como dónde busqué ayuda. Soy un aspirante a desarrollador web joven y trabajo en un servidor que alguien más configuró, por lo que toda esta experiencia es nueva para mí.para bibliotecas compiladas, como libyaml, ¿dónde busca Ruby (o RVM) dentro del sistema de archivos para cargarlas o resolverlas?

He estado preparando un linode que compré recientemente para ejecutar una aplicación de rieles. Seguí la guía de instalación inicial proporcionada aquí http://blog.blenderbox.com/2011/01/07/installing-rvm-ruby-rails-passenger-nginx-on-centos/, así como cambiar el paso:
sudo bash < <(curl -L http://bit.ly/rvm-install-system-wide)
para reflejar los cambios aconsejados en este SO enhebro RVM system-wide install script url broken -- what is replacement?

bash -c "bash <(curl -L https://github.com/wayneeseguin/rvm/raw/1.3.0/contrib/install-system-wide) --version '1.3.0'" 

Me detuve en la instalación ngix porque estoy utilizando Apache2. También me aseguré de ejecutar rvm requirements e instalar los paquetes necesarios antes de la instalación de los rieles. Aquí es donde libyaml se encargó de la instalación y se produjo el primer error al intentar instalarlo. Sin embargo, yum informó que no existía. La instalación inicial de RVM y Gemas parecía funcionar, sin embargo, me encontré con un problema con las gemas que faltan 'Psych' y luego solicita la instalación libyaml:

/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.

Así que primero intentado instalar libyaml través de Yum pero no recibió este error:

yum install libyaml 
Loaded plugins: fastestmirror, security 
Loading mirror speeds from cached hostfile 
* base: centosmirror.quintex.com 
* extras: centosmirror.quintex.com 
* updates: centosmirror.quintex.com 
Setting up Install Process 
No package libyaml available. 
Error: Nothing to do 


Tratando de instalar libyaml-devel y libyaml-dev tenido este mismo problema.

Después de investigar un poco encontré esta publicación de blog de CollectiveIdea que detallaba el mismo problema y ofrecía una solución. Blog Post by Collective Idea Seguí las instrucciones y realicé la instalación sin ningún problema de configuración ni configuración. Luego realicé la reinstalación de ruby ​​provista. Todavía recibí la misma advertencia y busqué más en SO para problemas similares. Tal como se detalla en las respuestas a esta pregunta en relación con el mismo problema, how to solve "ruby installation is missing psych" error? Usando:

rvm pkg install libyaml 
Fetching yaml-0.1.4.tar.gz to /usr/local/rvm/archives 
Extracting yaml-0.1.4.tar.gz to /usr/local/rvm/src 
Prepare yaml in /usr/local/rvm/src/yaml-0.1.4. 
Configuring yaml in /usr/local/rvm/src/yaml-0.1.4. 
Compiling yaml in /usr/local/rvm/src/yaml-0.1.4. 
Installing yaml to /usr/local/rvm/usr 

Please note that it's required to reinstall all rubies:

Se recomienda volver a instalar todo a través de RVM y seguido estas instrucciones también.

rvm reinstall all --force 
Removing /usr/local/rvm/src/ruby-1.9.3-p194... 
Removing /usr/local/rvm/rubies/ruby-1.9.3-p194... 
mv: overwrite `/usr/local/rvm/user/installs'? y 
No binary rubies available for: ///ruby-1.9.3-p194. 
Continuing with compilation. Please read 'rvm mount' to get more information on binary rubies. 
Installing Ruby from source to: /usr/local/rvm/rubies/ruby-1.9.3-p194, this may take a while depending on your cpu(s)... 
ruby-1.9.3-p194 - #downloading ruby-1.9.3-p194, this may take a while depending on your connection... 

ruby-1.9.3-p194 - #extracting ruby-1.9.3-p194 to /usr/local/rvm/src/ruby-1.9.3-p194 
ruby-1.9.3-p194 - #extracted to /usr/local/rvm/src/ruby-1.9.3-p194 
ruby-1.9.3-p194 - #configuring 
ruby-1.9.3-p194 - #compiling 
ruby-1.9.3-p194 - #installing 

Incluso después de esto, la advertencia todavía está presente. He verificado la instalación de ruby ​​con ruby -v y de hecho está instalado. Los archivos libyaml se instalaron, residen aquí:

[[email protected] ~]# ls -la /usr/local/lib 
total 19620 
drwxr-xr-x 5 root root  4096 Oct 1 15:40 . 
drwxr-xr-x 13 root root  4096 Oct 1 05:55 .. 
drwxr-xr-x 2 root root  4096 Oct 1 06:34 include 
lrwxrwxrwx 1 root root  16 Oct 1 15:40 libruby.so -> libruby.so.1.9.1 
lrwxrwxrwx 1 root root  16 Oct 1 15:40 libruby.so.1.9 -> libruby.so.1.9.1 
-rwxr-xr-x 1 root root 7457107 Oct 1 06:42 libruby.so.1.9.1 
-rw-r--r-- 1 root root 11633486 Oct 1 15:39 libruby-static.a 
lrwxrwxrwx 1 root root  18 Oct 1 06:37 libyaml-0.so.2 -> libyaml-0.so.2.0.2 
-rwxr-xr-x 1 root root 358698 Oct 1 06:37 libyaml-0.so.2.0.2 
-rw-r--r-- 1 root root 565584 Oct 1 06:37 libyaml.a 
-rwxr-xr-x 1 root root  953 Oct 1 06:37 libyaml.la 
lrwxrwxrwx 1 root root  18 Oct 1 06:37 libyaml.so -> libyaml-0.so.2.0.2 
drwxr-xr-x 2 root root  4096 Oct 1 06:45 pkgconfig 
drwxr-xr-x 6 root root  4096 Oct 1 06:45 ruby 
-rw-rw-r-- 1 root rvm  194 Oct 1 05:55 rvm 

También puede ver que he tratado de crear un enlace simbólico entre/usr/local/lib y/usr// RVM/lib local, bajo el supuesto de que los archivos yaml pueden haberse instalado en el directorio incorrecto o que rvm no estaba buscando en el directorio adecuado para ellos. Me encontré con un rubí y el que en el pensamiento, porque era rubí en el/RVM dir que podría ser el problema:

[[email protected] ~]# which ruby 
/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby 
[1]: http://collectiveidea.com/blog/archives/2011/10/31/install-ruby-193-with-libyaml-on-centos/ 

esto no ayuda. Así que estoy lejos de la verdad con respecto a dónde me equivoqué o qué es lo que no estoy buscando.
1: ¿He cometido un error de instalación al colocar los archivos en el directorio incorrecto?
2: ¿Ruby está buscando los archivos libyaml en un directorio diferente?
3: Cuando seguí las publicaciones del blog, ¿no agregué alguna función específica del sistema a las instalaciones?

He redistribuido CentOS en mi linode 4 veces, con la esperanza de que esto haya sido un problema conmigo al no seguir las secuencias de comandos apropiadamente, estoy en la 5ta implementación con el mismo problema apareciendo. Actualmente estoy buscando SO para el número 2 y espero que mi publicación no sea inapropiada ya que esto está claramente resuelto en otro lugar. Agradecería cualquier ayuda que pudiera brindar.

EDIT:

Así que después de volver a desplegar el sistema operativo CentOS6.2 me encontré con la configuración alterada de este modo:

yum -y install git 
yum -y install curl 
groupadd rvm 
usermod -a -G rvm root 
bash -c "bash <(curl -L https://github.com/wayneeseguin/rvm/raw/1.3.0/contrib/install-system-wide) -- version'1.3.0'" 
echo '[[ -s "/usr/local/lib/rvm" ]] && . "/usr/local/lib/rvm" #This loads RVM into a shell session' >> ~/.bash_profile 
source ~/.bash_profile 
yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel 
rvm get head 
yum install readline readline-devel 
rvm package install libyaml -v 
rvm install 1.9.3 -v 
rvm use 1.9.3 
ruby -v 

Esto también todavía encontró el error:

/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. 

Ejecución de los comandos anteriores obtener libyaml de RVM y luego volver a instalar todos los rubies no parece solucionar el problema para mí. Al realizar el rvm reinstalar all --force, ¿la instalación del paquete libyaml anterior se eliminará, sobrescribirá o reemplazará? Parece estar en los directorios correctos.

[[email protected] src]# pwd 
/usr/local/rvm/src 
drwxrwsr-x 7 root rvm 4096 Oct 1 21:19 . 
drwxrwsr-x 24 root rvm 4096 Oct 1 20:51 .. 
drwxr-xr-x 24 root rvm 8192 Oct 1 21:22 ruby-1.9.3-p194 
drwxr-xr-x 7 501 games 4096 Apr 27 23:31 rubygems-1.8.24 
drwxrwsr-x 18 root rvm 4096 Oct 1 20:51 rvm 
drwxrwsrwx 8 root rvm 4096 Oct 1 20:27 yaml-0.1.3 
drwxr-xr-x 9 root rvm 4096 Oct 1 21:18 yaml-0.1.4 

editar # 2:
Después de no otra instalación en un nuevo CentOS 5.6 redeploy yo estaba haciendo claramente un defecto fatal en alguna parte del proceso de instalación. Antes de realizar rvm install 1.9.3, tuve que ejecutar rvm install 1.8.7. Además, desplegué una imagen de 32 bits CentOS6.2 esta vez en lugar

Correr joya en 1.8.7

[[email protected] ~]# gem -v 
1.8.24 

ahora funciono rvm install 1.9.2

[[email protected] ~]# rvm use 1.9.2 
ruby-1.9.2-p320 is not installed. 
To install do: 'rvm install ruby-1.9.2-p320' 
[[email protected] ~]# rvm install ruby-1.9.2-p320 
#CUT OUT INSTALL SHELL PROMPTS ETC 
[[email protected] ~]# rvm use 1.9.2-p320 
Using /usr/local/rvm/gems/ruby-1.9.2-p320 
[[email protected] ~]# gem -v 
1.8.24 

El cambio a 1.9.3: Error devuelve

[[email protected] ~]# rvm use 1.9.3-p194 
Using /usr/local/rvm/gems/ruby-1.9.3-p194 
[[email protected] ~]# gem -v 
/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. 
1.8.24 

Parece que decirle a rvm que use 1.9.3 (claro que estoy usando -p194, no he probado los anteriores) causa algún tipo de problema de comunicación en cuanto a dónde rvm intenta cargar libyaml. Por ahora usaré 1.9.2 ya que la mayoría de estas cosas han estado un poco sobre mi cabeza. Estoy seguro de haber cometido un error al carecer de algún tipo de dependencia que 1.9.3 requiera o no ajustar adecuadamente un archivo de configuración. Al menos esta es mi suposición, la configuración del primer servidor ha estado adivinando gran parte de esto.

Respuesta

1

Retire todo el RVM, rubí, libyaml, etc.

de instalar uno RVM, y sólo utiliza RVM para instalar libyaml y rubíes.

(También tenga en cuenta que Ruby puede buscar bibliotecas de 32 bits, a fin de comprobar si existe la versión de 32 bits, o si no hay carpeta de la liberación separada para las bibliotecas de 64 bits!)

PS Ir comprobar heroku para alojar su aplicaciones.Ideal para principiantes ya que es gratis, y 5 minutos para configurar (15 minutos desde la instalación de rieles a los rieles página web autogenerada en heroku!). Y no necesita cambiar sus configuraciones, por lo que la implementación en su servidor no será más difícil.

+0

Estoy preparando un guión en este momento para hacer precisamente eso y evitar tratar de compilar e instalar desde el código fuente. Te dejaré saber cómo resulta eso. Gracias por la respuesta –

+0

Agregué un EDIT para reflejar mi intento de simplemente usar RVM para instalar libyaml. –

3

Construí libyaml por separado y básicamente pasé por varias permutaciones de los pasos anteriores con el mismo resultado. Ejecuté IRB y descubrí que no estaba encontrando libyaml.so. Desesperado, copié/usr/local/lib/libyaml * (que había construido previamente) a ~/.rvm/rubies/ruby-1.9.3-p327/lib.

Esto tranquilizó la advertencia.

+0

Muchas gracias. ¡Intenté casi todo hasta que esto fue sugerido! –

2

Después de muchos ensayos, a continuación fijar mi

# rvm pkg install libyaml 
# rvm reinstall all --force 
# ln -s /usr/local/rvm/usr/lib/libyaml.so /usr/local/rvm/lib/ 
# ln -s /usr/local/rvm/usr/lib/libyaml-0.so.2 /usr/local/rvm/lib/ 
# ln -s /usr/local/rvm/usr/lib/libyaml-0.so.2 /usr/local/rvm/rubies/ruby-1.9.3-p327/lib 
# ln -s /usr/local/rvm/usr/lib/libyaml.so /usr/local/rvm/rubies/ruby-1.9.3-p327/lib 

Mi entorno

# cat /etc/redhat-release 
CentOS release 5.8 (Final) 

# ruby -v 
ruby 1.9.3p327 (2012-11-10 revision 37606) [i686-linux] 

# gem -v 
1.8.24 

# rvm -v 

rvm 1.16.20 (latest) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/] 
+0

Correcciones en la versión 5.6 (Tikanga) del servidor Red Hat Enterprise Linux – j15e

Cuestiones relacionadas