2010-04-07 10 views
16

Tutto stava funzionando bene, fino a quando abbiamo deciso di aggiornare Ruby a 1.8.7 da 1.8.6, e questo è quando si scatena l'inferno. Quando abbiamo compilato Ruby 1.8.7 dal sorgente, è stato installato in/usr/local/bin e Ruby 1.8.6 è rimasto in/usr/bin. Al momento abbiamo disinstallato Ruby 1.8.6 e da un certo punto abbiamo eliminato i file ruby ​​1.8.7 da/usr/local.Come disinstallare Ruby da/usr/local?

quando proviamo "quale rubino" punta a/usr/local. Se qualcuno può aiutarci a capire cosa dobbiamo fare per rimetterci in carreggiata, saremmo molto grati.e anche qualche idea su come possiamo disinstallare ruby ​​da/usr/local. abbiamo provato yum rimuovere rubino, che ha rimosso il rubino da /usr/bin.Grazie e saluti!

risposta

9

Non è una buona idea disinstallare 1.8.6 se è in /usr/bin. Questo è di proprietà del sistema operativo e dovrebbe essere lì.

Se mettete /usr/local/bin nel PATH prima /usr/bin poi le cose che avete installato nel /usr/local/bin sarà trovato prima di qualsiasi con lo stesso nome in /usr/bin, efficace sovrascrivere o l'aggiornamento, senza in realtà farlo. Puoi ancora raggiungerli utilizzando esplicitamente /usr/bin nel tuo #! riga di chiamata interprete nella parte superiore del codice.

@Anurag consigliato utilizzando RVM, che io secondo. Lo uso per gestire 1.8.7 e 1.9.1 oltre al 1.8.6 del sistema operativo.

2

Creare un symlink in/usr/bin denominato 'ruby' e puntarlo sull'ultimo ruby ​​installato.

Si può usare qualcosa di simile ln -s /usr/bin/ruby /to/the/installed/ruby/binary

Spero che questo aiuti.

+0

Intendevi/etc/bin/ruby ​​o/usr/bin/ruby? Inoltre, ci sono altri nomi correlati a ruby ​​che devono essere collegati come irb, rdoc, ecc. –

+0

Greg, il mio male ... Lo hai indicato correttamente, è/usr/bin/ruby, proprio come la prima riga. Lo correggerò. Grazie :-) – intellidiot

+0

Ho intenzione di suggerire di NON fare alcun collegamento in '/ usr/bin' ad altre versioni di Ruby se il SO installato Ruby in'/usr/bin' di default. Su Apple's Snow Leopard, Apple sta installando il codice che utilizza Ruby 1.8.7, che è preinstallato in '/ usr/bin'. Pasticciare con quello potrebbe causare piccoli bug/fallimenti lungo la strada in quell'app o in qualsiasi altro momento successivo. Più penso che sia meglio usare RVM per gestire i Rubini sandboxed o installare in/usr/local/bin' o magari da qualche parte in '/ opt /' e regolare il percorso; Mettilo da qualche parte il sistema non assumerà l'aspetto. –

20

Modifica: come suggerito nei commenti. Questa soluzione è per Linux OS. Anche questo se hai installato Ruby manualmente da gestore pacchetti.

Se si desidera avere più versioni in rubino, è meglio avere RVM. In tal caso non è necessario rimuovere la versione precedente rubino.

Ancora se desidera rimuovere quindi seguire le istruzioni riportate di seguito:

primo luogo si dovrebbe trovare dove Ruby è:

whereis ruby 

elencherà tutti i luoghi in cui esiste sul vostro sistema, allora è possibile rimuovere tutti loro esplicitamente Oppure si può usare qualcosa di simile:

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

È * DAVVERO * importante scoprire quale sistema operativo e versione è in esecuzione, prima di suggerire a qualcuno di rimuovere Ruby da/usr'. Apple include Ruby in Snow Leopard e ha il codice che lo chiama dalle app. L'eliminazione di quelli interromperà silenziosamente le app. Se si tratta di un sistema Linux e Ruby è stato installato tramite un gestore di pacchetti, dovrebbe essere usato per rimuovere i file. E, in entrambi i casi, l'uso di qualcosa come RVM può negare la necessità di cancellare un Ruby preinstallato. –

+1

Ciao Tin, grazie terrò attenzione dalla prossima volta. –

+5

La tristezza si verifica se qualcuno copia/incolla quel pezzo di comandi rm. Non copiare/incollare senza leggere i bambini. – sclarson

0

fare in questo modo:

sudo apt purge ruby 
1

Se rubino è stato installato nel seguente modo:

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

è possibile disinstallarlo nel modo seguente :

Controllare la versione di rubino installata; assumiamo 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 

Dopo l'installazione, ora è possibile rimuovere il pacchetto e rimuoverà le directory/file/ecc.

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

ci potrebbero essere alcuni manufatti lasciati:

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

rimuoverle manualmente.

0

sudo make uninstall ha fatto il trucco per me utilizzando il tar di Ruby 2.4 dalla pagina di download ufficiale.