Я строю бродячую настройку, а часть этого - установка rbenv. Я использую библиотекаря-шеф-повара для управления всеми моими кулинарными книгами повара, и он устанавливает rbenv и ruby-build.
Однако, когда я попытался выполнить ssh в моей Vagrant VM и набрал ruby -v
, я получил стандартную системную установку ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux]
. Подумав, что, возможно, rbenv не был установлен, я попытался запустить rbenv versions
, но на самом деле был установлен rbenv:
[email protected]:~$ rbenv versions
* system (set by /opt/rbenv/version)
Итак, я попробовал rbenv install [version]
:
[email protected]:~$ rbenv install 1.9.3-p327
[...]
BUILD FAILED
[...]
test -z "/opt/rbenv/versions/1.9.3-p327/include" || /bin/mkdir -p "/opt/rbenv/versions/1.9.3-p327/include"
/bin/mkdir: cannot create directory `/opt/rbenv/versions/1.9.3-p327': Permission denied
Ошибка с Permission denied
. Я снова попытался установить с помощью sudo
:
sudo rbenv install 1.9.3-p327
И это сработало. Затем я снова попробовал запустить rbenv versions
:
[email protected]:~$ rbenv versions
* system (set by /opt/rbenv/version)
Но он все еще говорит, что установлен только system
ruby. Однако, если я запустил его с помощью sudo
:
[email protected]:~$ sudo rbenv versions
* system (set by /home/vagrant/.rbenv/version)
1.9.3-p327
rbenv versions
теперь показывает 1.9.3
.
Таким образом, похоже, что отключается, поскольку rbenv и моя рубиновая версия теперь установлены на системном уровне, а не на уровне пользователя.
Я использую rbenv-cookbook. Я хотел бы, чтобы rbenv настраивался с шеф-поваром, потому что это избавляет меня от настройки его вручную, после установки.
Другая проблема, с которой я сталкиваюсь, заключается в том, что похоже, что все, что контролируется рубином, например gem
, также страдает от такого же разъединения.
[email protected]:~$ gem install bundler
Fetching: bundler-1.3.5.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /opt/vagrant_ruby/lib/ruby/gems/1.8 directory.