2010-04-07 18 views
16

Wszystko działało dobrze, dopóki nie zdecydowaliśmy się ulepszyć rubiego do 1.8.7 z 1.8.6, i to wtedy, gdy rozpętało się piekło. Kiedy skompilowaliśmy Ruby 1.8.7 ze źródła, zostało ono zainstalowane w/usr/local/bin, a Ruby 1.8.6 pozostało w/usr/bin. Obecnie odinstalowaliśmy ruby ​​1.8.6 i przez jakiś obrót usunęliśmy pliki ruby ​​1.8.7 z/usr/local.Jak odinstalować Ruby z/usr/local?

kiedy próbujemy "który rubin" wskazuje na/usr/local. Jeśli ktokolwiek mógłby nam pomóc w tym, co musimy zrobić, to wracamy na właściwe tory. Bylibyśmy bardzo wdzięczni. Mamy także pomysł, jak odinstalować ruby ​​z/usr/local. próbowaliśmy mniam usunąć ruby, który usunął ruby ​​z /usr/bin.Thanks and Cheers!

Odpowiedz

9

Nie jest dobrym pomysłem odinstalowanie wersji 1.8.6, jeśli jest w wersji /usr/bin. To jest własnością systemu operacyjnego i oczekuje się, że tam będzie.

Jeśli umieścisz /usr/local/bin w PATH przed /usr/bin wtedy rzeczy, które zostały zainstalowane w /usr/local/bin zostaną znalezione zanim o tej samej nazwie w /usr/bin, skutecznie nadpisanie lub ich aktualizacji, bez faktycznie robić. Nadal możesz do nich dotrzeć, jawnie używając /usr/bin w swoim #! linia wywoływania interpretera u góry kodu.

@Anurag zalecane przy użyciu RVM, który będę sekundować. Używam go do zarządzania 1.8.7 i 1.9.1 oprócz OS 1.8.6.

2

Utwórz symlink w/usr/bin o nazwie "ruby" i skieruj go do najnowszego zainstalowanego ruby.

Można użyć czegoś podobnego ln -s /usr/bin/ruby /to/the/installed/ruby/binary

nadzieję, że to pomaga.

+0

Czy chodziło Ci o/etc/bin/ruby ​​lub/usr/bin/ruby? Ponadto istnieją dodatkowe nazwy powiązane z rubinami, które muszą być powiązane, takie jak irb, rdoc, itp. –

+0

Greg, mój zły ... Wskazałeś to poprawnie, to/usr/bin/ruby, tak jak w pierwszym wierszu. Poprawię to. Dzięki :-) – intellidiot

+0

Zamierzam zasugerować, aby NIE robić żadnych linków w '/ usr/bin' do innych wersji Rubiego, jeśli system operacyjny zainstalował domyślnie Ruby w'/usr/bin'. W systemie Snow Leopard firmy Apple Apple instaluje teraz kod, który używa Ruby 1.8.7, który jest preinstalowany w '/ usr/bin'. Przesyłanie wiadomości może spowodować subtelne błędy/awarie na drodze w tej aplikacji lub inne, które pojawią się później. Myślę, że lepiej używać RVM do zarządzania piaskownicami Rubinami lub instalować w '/ usr/local/bin' lub może gdzieś w'/opt/'i dostosować ścieżkę; Umieść go gdzieś, a system nie przyjmie wyglądu. –

20

Edytuj: Jak zasugerowano w komentarzach. To rozwiązanie jest przeznaczone dla systemu operacyjnego Linux. To też, jeśli zainstalowałeś ruby ​​ręcznie z menedżera pakietów.

Jeśli chcesz mieć wiele wersji ruby, lepiej mieć RVM. W takim przypadku nie trzeba usuwać starej wersji ruby.

Jeszcze jeśli chcesz usunąć, a następnie wykonaj następujące czynności:

najpierw trzeba znaleźć gdzie Ruby jest:

whereis ruby 

będzie lista wszystkich miejsc, gdzie istnieje w systemie, a następnie można usunąć wszystkie wyraźnie. Lub można użyć coś takiego:

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

To jest * NAPRAWDĘ * ważne, aby dowiedzieć się, na którym systemie operacyjnym i na jakiej wersji działa, zanim zaproponujesz komuś usunięcie Ruby z '/ usr'. Apple zawiera Ruby in Snow Leopard i ma kod wywołujący go z aplikacji. Usunięcie tych plików spowoduje ciche podzielenie aplikacji. Jeśli jest to system Linux, a Ruby została zainstalowana za pośrednictwem menedżera pakietów, to powinno to zostać użyte do usunięcia plików. W obu przypadkach użycie czegoś podobnego do RVM może negować konieczność usunięcia wstępnie zainstalowanej Ruby. –

+1

Cześć Tin, dziękuję, że będę pilnować od następnego razu. –

+5

Smutek pojawia się, gdy ktoś kopiuje/wkleja ten fragment poleceń rm. Nie kopiuj/wklej bez czytania dzieci. – sclarson

0

zrobić w ten sposób:

sudo apt purge ruby 
1

Jeśli Ruby został zainstalowany w następujący sposób:

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

można odinstalować go w następujący sposób: :

Sprawdź zainstalowaną wersję ruby; pozwala zakładać 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 

Po instalacji, możesz teraz usunąć pakiet i usunie katalogi/pliki/etc.

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

nie mogą być pewne artefakty lewej:

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

usunąć je ręcznie.

0

sudo make uninstall dokonałem sztuczki dla mnie za pomocą tary Ruby 2.4 z oficjalnej strony pobierania.