Как установить системные требования RVM без предоставления доступа sudo для пользователя RVM

На моем сервере Debian у меня есть пользователь, называемый "развертыватель", который не имеет доступа к sudo и установлен RVM.

При установке Ruby с использованием "развертывателя", например 1.9.3, он запускает задачу установки зависимостей

"Installing requirements for debian, might require sudo password."

который терпит неудачу и останавливает установку, потому что "deployer" не может sudo.

Я не хочу добавлять "deployer" в список sudoers и не хочу устанавливать RVM для другого пользователя только для одноразового использования для установки зависимостей.

Каков правильный способ установки этих зависимостей? Или как я могу их перечислить вручную?

Ответ 1

Это действительно новая функция RVM под названием autolibs, которая автоматически устанавливает зависимости.

Если вы уже установили RVM и запрашиваете у вас пароль sudo, вы можете отключить автолибы:

$ rvm autolibs disable
$ rvm requirements # manually install these
$ rvm install ruby

В противном случае вы можете установить RVM без автолиб с помощью этой команды:

$ \curl -L https://get.rvm.io | bash -s -- --autolibs=read-fail

Я понимаю мотивацию, но считаю ее довольно раздражающей. Я не хочу вставлять свой пароль sudo в RVM, и в этом случае Bundle! Пожалуйста, общайтесь, перестаньте это делать.

Ответ 2

Я предпочитаю это

$ rvm autolibs fail
$ rvm install ruby
Searching for binary rubies, this might take some time.
Found remote file https://rubies.travis-ci.org/ubuntu/12.04/x86_64/ruby-2.1.1.tar.bz2
Checking requirements for ubuntu.
Missing required packages: gawk g++ gcc make libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev
RVM autolibs is now configured with mode '2' => 'check and stop if missing',
please run `rvm autolibs enable` to let RVM do its job or run and read `rvm autolibs [help]`
or visit https://rvm.io/rvm/autolibs for more information.
Requirements installation failed with status: 1.

то я могу перейти с помощью root и запустить

# apt-get install gawk g++ gcc make libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev

Ответ 3

В принятом ответе не удалось установить Ruby на .rvm/bin/ruby. Оболочка script заканчивается в .rvm/wrappers/ruby-2.0.0-p247/ruby, что является болью, если ваша сборка script зависит от этого местоположения и номер версии изменяется со временем.

Вот более легкое решение, которое сработало для меня:

\curl -L https://get.rvm.io | bash -s -- --ignore-dotfiles --autolibs=0 --ruby

.rvm/bin/ruby создается, как ожидалось.

Источник: http://blog.sunild.com/2013/07/install-ruby-with-rvm-on-mac-os-108.html

Ответ 4

Проблема была внедрена где-то в последних версиях RVM. Не знаю точно, когда, но определенно в последние 3-4 месяца.

Попробуйте следующее:

rvm get 1.18.8
rvm install <whichever-version-you-want>

Я точно не знаю, когда на пути между 1.18.8 и 1.20.12 эта проблема появилась, но для меня установка работает с RVM v1.18.8 и не выполняется с v1.20.12.