2010-04-07 1 views
16

Все работало нормально, пока мы не решили обновить рубин до 1,8,7 с 1,8,6, и это когда все ад сломался. Когда мы скомпилировали Ruby 1.8.7 из источника, он был установлен в/usr/local/bin, а Ruby 1.8.6 остался в/usr/bin. В настоящее время мы удалили ruby ​​1.8.6, и некоторым ударом мы удалили рубиновые файлы 1.8.7 из/usr/local.Как удалить Ruby из/usr/local?

при попытке «какой рубин» он указывает на/usr/local. Если кто-то может помочь нам в том, что нам нужно сделать, мы будем очень благодарны. И также любая идея о том, как мы можем удалить ruby ​​из/usr/local. мы попробовали yum удалить ruby, который удалил ruby ​​из /usr/bin.Thanks and Cheers!

ответ

9

Неправильно удалить 1.8.6, если оно находится в /usr/bin. Это принадлежит ОС и, как ожидается, будет там.

Если вы поставите /usr/local/bin в вашем PATH, прежде чем /usr/bin то вещи, которые вы установили в /usr/local/bin будет найден до того, как с тем же именем в /usr/bin, эффективно перезаписывать или обновлять их, фактически не делая так. Вы все равно можете связаться с ними, явно используя /usr/bin в своем #! строка вызова интерпретатора вверху вашего кода.

@Anurag рекомендуется использование RVM, который я буду вторым. Я использую его для управления 1.8.7 и 1.9.1 в дополнение к 1.8.6 ОС.

2

Создайте symlink в/usr/bin с именем 'ruby' и укажите его на последний установленный рубин.

Вы можете использовать что-то вроде ln -s /usr/bin/ruby /to/the/installed/ruby/binary

Надеется, что это помогает.

+0

Вы имели в виду/etc/bin/ruby ​​или/usr/bin/ruby? Кроме того, есть дополнительные имена, связанные с рубином, которые необходимо связать, такие как irb, rdoc и т. Д. –

+0

Грег, мой плохой ... Вы правильно указали, это/usr/bin/ruby, как и в первой строке. Я исправлю это. Спасибо :-) – intellidiot

+0

Я предлагаю НЕ делать какие-либо ссылки в '/ usr/bin' для других версий Ruby, если ОС по умолчанию установлена ​​в'/usr/bin'. В Apple Snow Leopard Apple теперь устанавливает код, который использует Ruby 1.8.7, который предварительно установлен в '/ usr/bin'. Беседа с этим может привести к тонким ошибкам/сбоям в будущем в этом приложении или в том, что приходит позже. Я больше думаю, что лучше использовать RVM для управления изолированными Rubies или установить в '/ usr/local/bin' или, возможно, где-то под'/opt/'и настроить свой путь; Поместите его где-нибудь, система не будет предполагать, чтобы смотреть. –

20

Редактировать: Как предложено в комментариях. Это решение предназначено для ОС Linux. Это тоже, если вы вручную установили ruby ​​из диспетчера пакетов.

Если вы хотите иметь несколько рубиновых версий, лучше иметь RVM. В этом случае вам не нужно удалять более раннюю версию ruby.

Тем не менее, если хотите удалить, то выполните следующие действия:

Сначала вы должны найти, где Рубин:

whereis ruby 

будут перечислены все места, где она существует в вашей системе, то вы можете удалить все они явно. Или вы можете использовать что-то вроде этого:

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

Это * ДЕЙСТВИТЕЛЬНО * важно выяснить, какая ОС и версия этой функции запущена, прежде чем предлагать кому-то удалить Ruby из '/ usr'. Apple включает Ruby in Snow Leopard и имеет код, вызывающий его из приложений. При удалении этих файлов приложения будут отключены. Если это Linux-система, и Ruby был установлен через диспетчер пакетов, то это должно быть использовано для удаления файлов. И в любом случае использование чего-то вроде RVM может отрицать необходимость удалить предварительно установленный Ruby. –

+1

Привет Тин, спасибо, я буду держать внимание в следующий раз. –

+5

Печаль возникает, если кто-то копирует/вставляет этот кусок команд rm. Не копируйте/не вставляйте, не читая детей. – sclarson

0

сделать так:

sudo apt purge ruby 
1

Если рубин был установлен следующим образом:

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

Вы можете удалить его следующим образом :

Проверить установленную рубиновую версию; позволяет принять 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 

После установки вы можете удалить пакет и удалить каталоги/файлы/etc.

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

Там могут быть некоторые артефакты осталось:

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

Удалите их вручную.

0

sudo make uninstall сделал трюк для меня, используя Ruby 2.4 tar с официальной страницы загрузки.