2010-04-07 25 views
16

Todo estaba funcionando bien, hasta que decidimos actualizar ruby ​​a 1.8.7 desde 1.8.6, y eso es cuando todo se desató. Cuando compilamos Ruby 1.8.7 desde la fuente, se instaló en/usr/local/bin y Ruby 1.8.6 permaneció en/usr/bin. Actualmente, hemos desinstalado ruby ​​1.8.6 y de algún modo eliminamos los archivos ruby ​​1.8.7 de/usr/local.¿Cómo desinstalar Ruby de/usr/local?

cuando intentamos "qué ruby" apunta a/usr/local. Si alguien nos puede ayudar con lo que tenemos que volver a encarrilar, le estaríamos muy agradecidos. Y también alguna idea de cómo podemos desinstalar Ruby de/usr/local. probamos yum remove ruby, que eliminó el rubí de /usr/bin.Gracias y ¡Salud!

Respuesta

9

No es una buena idea desinstalar 1.8.6 si está en /usr/bin. Eso es propiedad del SO y se espera que esté allí.

Si pones /usr/local/bin en su PATH antes /usr/bin entonces las cosas que ha instalado en /usr/local/bin se encuentra antes que cualquier con el mismo nombre en /usr/bin, sobrescribir con eficacia o la actualización de ellos, sin llegar a hacerlo. ¡Todavía puede comunicarse con ellos utilizando explícitamente /usr/bin en su #! línea de invocación del intérprete en la parte superior de tu código.

@Anurag recomienda el uso de RVM, que seré el segundo. Lo uso para administrar 1.8.7 y 1.9.1 además del sistema operativo 1.8.6.

2

Cree un symlink en/usr/bin llamado 'ruby' y apúntelo al último ruby ​​instalado.

Usted puede usar algo como ln -s /usr/bin/ruby /to/the/installed/ruby/binary

Espero que esto ayude.

+0

¿Quiso decir/etc/bin/ruby ​​o/usr/bin/ruby? Además, hay nombres adicionales relacionados con ruby ​​que deben estar vinculados, como irb, rdoc, etc. –

+0

Greg, mi mal ... Lo apuntaste correctamente, es/usr/bin/ruby, al igual que la primera línea. Lo corregiré. Gracias :-) – intellidiot

+0

Voy a sugerir NO hacer ningún enlace en '/ usr/bin' a otras versiones de Ruby si el sistema operativo instaló Ruby en'/usr/bin' de manera predeterminada. En Snow Leopard de Apple, Apple ahora está instalando código que usa Ruby 1.8.7 que está preinstalado en '/ usr/bin'. Jugar con eso podría causar errores/fallas sutiles en el camino en esa aplicación o cualquiera que aparezca más tarde. Más, creo que es mejor usar RVM para administrar Rubies sandboxed o instalarlo en '/ usr/local/bin' o tal vez en algún lugar debajo de'/opt/'y ajustar tu ruta; Colóquelo en un lugar que el sistema no supondrá mirar. –

20

Editar: Como se sugiere en los comentarios. Esta solución es para el sistema operativo Linux. Eso también si has instalado ruby ​​manualmente desde el administrador de paquetes.

Si quiere tener múltiples versiones ruby, mejor tener RVM. En ese caso, no es necesario que elimines la versión anterior de ruby.

embargo, si desea quitar a continuación, siga los siguientes pasos:

En primer lugar debe encontrar en Ruby es:

whereis ruby 

una lista de todos los lugares en los que existe en el sistema, entonces se puede eliminar todos ellos explícitamente O bien, puede usar algo como esto:

rm -rf /usr/local/lib/ruby 
rm -rf /usr/lib/ruby 
rm -f /usr/local/bin/ruby 
rm -f /usr/bin/ruby 
rm -f /usr/local/bin/irb 
rm -f /usr/bin/irb 
rm -f /usr/local/bin/gem 
rm -f /usr/bin/gem 
+22

Es * REALMENTE * importante saber en qué SO y versión se está ejecutando, antes de sugerir que alguien elimine Ruby de '/ usr'. Apple incluye a Ruby en Snow Leopard y tiene un código que lo llama desde aplicaciones. Eliminarlos romperá las aplicaciones silenciosamente. Si se trata de un sistema Linux, y Ruby se instaló a través de un administrador de paquetes, entonces debería usarse para eliminar los archivos. Y, en cualquier caso, usar algo como RVM puede negar la necesidad de eliminar un Ruby preinstalado. –

+1

Hola Tin, gracias, mantendré la atención de la próxima vez. –

+5

La tristeza se produce si alguien copia/pega ese trozo de comandos rm. No copie/pegue sin leer a los niños. – sclarson

0

lo hacen de esta manera:

sudo apt purge ruby 
1

Si rubí se instala en la siguiente forma:

./configure --prefix=/usr/local 
make 
sudo make install 

puede desinstalarlo de la siguiente manera :

Compruebe la versión de ruby ​​instalada; Asumamos 2.1.2

wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.bz2 
bunzip ... 
tar xfv ... 
cd ruby-2.1.2 
./configure --prefix=/usr/local 
make 
sudo checkinstall 
    # will build deb or rpm package and try to install it 

Después de la instalación, ahora puede eliminar el paquete y va a eliminar los directorios/archivos/etc.

sudo rpm -e ruby # or dpkg -P ruby (for Debian-like systems) 

que podría haber algunos artefactos dejados:

Removing ruby ... 
    warning: while removing ruby, directory '/usr/local/lib/ruby/gems/2.1.0/gems' not empty so not removed. 
    ... 

eliminarlos manualmente.

0

sudo make uninstall hizo el truco para mí usando el alquitrán Ruby 2.4 de la página de descargas oficial.