Почему я не могу выполнить многопользовательскую установку RVM в Ubuntu 11.04? - PullRequest
4 голосов
/ 08 июня 2011

Я пытаюсь установить RVM в /usr/local/rvm, потому что мне нужна возможность запуска ruby ​​в качестве сервера. Тем не менее, всякий раз, когда я бегу:

bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

по умолчанию это мой домашний каталог, /home/<user>/.rvm.

Я пытался запустить:

sudo bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

, а также включение корневого пароля Ubuntu и вход в систему с учетной записью root, но при установке всегда по умолчанию используется мой домашний каталог. Как я могу это исправить, или было бы проще просто установить Ruby из исходного кода?

Ответы [ 5 ]

1 голос
/ 20 марта 2012

Вы можете установить rvm в многопользовательском режиме на Ubuntu. Инструкции такие же, как и для других систем, как описано здесь http://beginrescueend.com/rvm/install/ Просто установите его, используя sudo.

Тем не менее, существует другая проблема с Ubuntu, которая приводит к сбою последующих команд, таких как sudo rvm install 1.9.2, из-за способа, которым Ubuntu реализует команду sudo. В Ubuntu sudo изменяет путь по умолчанию, чтобы сделать его более безопасным. Этот более ранний поток подробно обсуждает проблему sudo изменяет PATH - почему?

Чтобы обойти эту проблему, отредактируйте файл sudoers с помощью visudo и добавьте укажите

Defaults !secure_path

как указано в соответствующей теме.

1 голос
/ 08 июня 2011

По моему мнению, RVM на производственном хосте не так полезен, как для песочницы разработчика. Я думаю, что RVM - отличный инструмент, но он подходит не для каждой ситуации.

Разработчикам нужна большая гибкость для использования различных версий Ruby и для использования определенных версий гемов. RVM сияет для этого. Это позволяет легко переключаться автоматически, проверять все установленные версии Ruby или, если что-то пойдет не так, сойти на нет и начать все сначала.

В среде производственного сервера, где вы обычно выделяете хост для определенной службы или набора связанных служб, необходимость быстрого переключения между различными Ruby и наборами гемов имеет тенденцию исчезать. Я поставил только одну версию Ruby. Все приложения указывают на это. ЕСЛИ Мне нужно было больше одного, я бы установил его в отдельную иерархию каталогов /opt или /local и установил бы свой PATH для учетной записи-владельца, чтобы она указала на нужную версию. На производстве это, как правило, один раз, и забывают ситуацию.

0 голосов
/ 08 августа 2011

Вместо запуска команд с помощью sudo или включения пароля root, попробуйте следующее:

$ sudo su -

Это переключит вас на учетную запись root, где вы можете запустить команду установки:

# bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

Это сработало для меня.

0 голосов
/ 03 августа 2011

Чтобы быть уверенным, попробуйте sudo su -c bash < <(...). Вы можете использовать sudo, не имея учетной записи root в системе (именно так OSX был настроен, когда я ее купил), поэтому вам следует быть осторожным с sudo. Также, например, sudo su -c env имеет путь, отличный от sudo env в моей установке Ubuntu.

Также обратите внимание, что после установки (вы не можете использовать функцию sudo) вам нужно использовать rvmsudo rvm ... вместо sudo rvm ..., если вы не вошли в систему как пользователь root (то есть, возможно, вам следует sudo su, а затем выполнить твоя работа).

0 голосов
/ 17 июня 2011

Когда вы вошли в систему как root, проверьте, установлен ли rvm_path:

echo $rvm_path

Если это так, то:

export rvm_path=
rm /etc/rvmrc

Этого должно быть достаточно.

...