Проблемы с путями при установке исходного кода

Проблемы с путями при установке исходного кода

Надеюсь, мой заголовок не сбивает с толку. У меня машина 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 ​​без необходимости удалять общесистемную версию, которая может потребоваться другим пакетам в системе.

Связанный контент