
Надеюсь, мой заголовок не сбивает с толку. У меня машина CentOS 5, и у меня установлен Ruby 1.8.7. Поэтому, чтобы обновить мою установку Ruby и gems/rails, я
Удалённый Ruby:sudo yum удалить рубин
Загрузил последнюю стабильную версию Ruby и распаковал ее:wget... && tar -zxf ....
Прошел обычную установку:
- ./configure --prefix=$HOME
- делать
- sudo сделать установку
Загруженные rubygems:wget....
запустил файл установки: настройка рубина.rb
Теперь моя проблема в том, что если я попытаюсь установить рельсы, что я делаю, набрав:рельсы для установки драгоценных камней, я получаю следующее сообщение:"-bash: /usr/local/bin/gem: /usr/local/bin/ruby: плохой интерпретатор: Отказано в доступе"
Поэтому следующим логичным шагом (для меня) было набрать:sudo gem install рельсы, но это возвращает"sudo: gem: команда не найдена", а это значит, что я что-то крупно облажался.
Просто чтобы добавить немного информации
где рубин:рубин: /usr/lib/ruby /usr/lib64/ruby /usr/local/bin/ruby /usr/local/lib/ruby
какой рубин: ~/bin/руби
Я думаю, что, устанавливая Ruby вручную из исходников, я что-то напортачил. Возможно, виноват --prefix=$HOME?
решение1
Похоже, вы не удалили пакет, предоставляющий gem
исполняемый файл, поэтому он все еще находится в папке /usr/local/bin/
, и указывает на более не существующий /usr/local/bin/ruby
интерпретатор.
Вы можете либо удалить этот пакет (рекомендуется, поскольку вы также удалили пакет Ruby, от которого он зависит), либо просто убедиться, ~/bin
что перед /usr/local/bin
вашим PATH
. (В качестве альтернативы, если у вас есть права root, вы можете просто перезапустить скрипт, ./configure
не указывая --prefix=${HOME}
, и позволить ему установиться в /usr/local/bin
, что является значением по умолчанию в Ruby.)
Как только вы все устроите так, что ваша оболочка найдет gem
исполняемый файл, установленный в ~/bin
, вы сможете сделать это gem install rails
без необходимости в sudo
. (Или, если вы собираетесь выполнить установку с правами root в /usr/local/bin
, убедитесь, gem
что он находится в /usr/local/bin/gem
, а затем запустите sudo gem install rails
, как вы пробовали ранее).
Возможно, лучшим подходом было бы рассмотреть либоrvm
илиrbenv
, оба из которых делают управление несколькими ruby довольно безболезненной задачей. Используя любой из этих инструментов, вы можете установить несколько версий ruby без необходимости удалять общесистемную версию, которая может потребоваться другим пакетам в системе.