Подтвердить что ты не робот

Невозможно установить RVM. Разрешение отклонено в/usr/local/rvm

Основываясь на моем предыдущем потоке: RVM, установленный Ruby, не работает?, где я установил RVM с помощью пользователя root, мне тогда пришлось полностью удалить установку RVM и теперь я устанавливаю как пользователь.

Итак, я сделал:

Теперь я получаю сообщение об ошибке: mkdir: невозможно создать каталог `/usr/local/rvm ': Permission denied

Новый пользователь, которого я создал, не имеет доступа к этому каталогу. Я вручную попытался создать папку, но с той же ошибкой. Пожалуйста, помогите.

EDIT: Исходная проблема возникла из-за того, что я не перезапускал терминал и все еще использовал старые настройки.

Теперь у меня возникла новая проблема: после установки RVM я не могу запустить ее, и это дает мне ошибку: команда rvm не найдена.

Вот результат моего файла ~/.bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.

И здесь выводится файл ~/.bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.
4b9b3361

Ответ 1

RVM прост в установке, но вы делаете это сложнее, пытаясь смешивать и сопоставлять типы установки. Вам не нужно создавать нового пользователя. При запуске RVM создаст каталог в вашем домашнем каталоге: ~/.rvm и установите все внутри него. Это означает, что у вас будут все правильные разрешения. Вам НЕ нужно работать от имени root, вам не нужно использовать sudo. Я бы рекомендовал закрыть все ваши командные строки и открыть один новый и начать в вашем домашнем каталоге. Если вы используете root, выйдите из системы и войдите в свою обычную учетную запись. Для однопользовательской установки вам НЕ нужно быть root.

Для одного пользователя, использующего RVM в качестве изолированной песочницы Ruby, используйте однопользовательские установочные документы. Следуйте всем инструкциям на этой странице, ВКЛЮЧАЯ раздел "Установка после установки".

Закройте окно терминала и снова откройте его. Если вы правильно выполнили приведенные выше инструкции, введите rvm info, чтобы вытереть шаблон того, что должно произойти после установки экземпляра Ruby. Если вы ничего не видите и не получаете ошибку, повторите шаги в разделе "Установка после установки" и перейдите в раздел "Устранение неполадок". Большинство проблем возникают из-за того, что они не удосужились прочесть указания.

После установки RVM введите rvm notes и прочитайте, какие зависимости вам нужно установить. Если вы не добавите эти файлы, у ваших Rubies будет отсутствовать функциональность. Они будут работать, но некоторые из удобств существ, о которых вы услышите, не будут работать, и вы будете удивляться, почему.

После установки зависимостей вы должны быть в хорошей форме для установки Rubies. Тип rvm list known для всех рубинов RVM может быть установлен. Если вы хотите 1.8.7 типа rvm install 1.8.7, и, аналогично, rvm install 1.9.2 для Ruby 1.9.2. Если вы хотите получить конкретную ревизию, вы можете добавить ее на основе тех, что указаны в списке.

Важно периодически обновлять RVM с помощью rvm get head. Это добавит функции, исправит ошибки и сообщит RVM о новых версиях Ruby, которые можно установить, если вы запросите.

После установки Ruby введите rvm list и он должен появиться в списке, выглядя примерно так:

rvm rubies

   ruby-1.8.7-p334 [ x86_64 ]
   ruby-1.9.2-p180 [ x86_64 ]

Введите rvm use 1.9.2 --default, чтобы установить по умолчанию Ruby, который будет липким между входами. Используйте версию любого Ruby, который вы хотите использовать по умолчанию, если 1.9.2 не плавает на вашей лодке. После того, как вы определили значение по умолчанию, оно должно выглядеть примерно так:

rvm rubies

   ruby-1.8.7-p334 [ x86_64 ]
=> ruby-1.9.2-p180 [ x86_64 ]

Прежде чем приступать к установке драгоценных камней в RVM-управляемый Ruby, прочитайте "RVM и RubyGems" , в частности часть, в которой говорится: "НЕ используйте sudo...". Я повторяю. НЕ используйте sudo для установки любых драгоценных камней, несмотря на то, что говорит какой-то блог или веб-страница. Автор RVM лучше знает, когда дело касается RVM-контролируемых рубинов. Это еще одна ошибка, которую люди используют с RVM, опять же в результате не прочтения направлений.

В Mac OS вам понадобится последняя версия XCode для вашей ОС. НЕ используйте XCode, который поставляется с Snow Leopard на DVD. Это глючит. Загрузите и установите новую версию с сайта Apple Developer. Это бесплатная загрузка, требующая бесплатной регистрации. Это большой файл размером около 8 ГБ, поэтому вы захотите его запустить и уйти. Установите XCode, и вы должны быть готовы к установке RVM Rubies.

Наконец, RVM устанавливается легко, как и рубины, которые вы просите установить. У меня это на четырех или пяти разных машинах и виртуальных машинах на Mac OS, Ubuntu и CentOS. Мне требуется около минуты, чтобы установить его и еще одну минуту, чтобы настроить его и начать установку нового Ruby. Это действительно так просто.

Ответ 2

mkdir: невозможно создать каталог `/usr/local/rvm ': Permission denied

Если вы запустили rvm installer как root ранее, удалите /usr/local/rvm и/etc/rvmrc.

Ответ 3

У меня была оригинальная проблема, указанная в этом вопросе: " mkdir: не удается создать каталог`/usr/local/rvm ': Permission denied" при попытке установить rvm.

Это мой сценарий и как я его решил - возможно, это поможет другим с этой же проблемой.

У меня установлен Ubuntu 11.04 на ноутбуке, у меня только 1 пользователь, тот, который я создал во время установки, названный nathan. Когда я попытаюсь установить rvm как nathan, установщик rvm увидел меня как root и продолжал пытаться установить rvm глобально, но поскольку я не был действительно root, он не смог получить доступ к созданию каталогов в /usr/local/rvm.

Я далек от эксперта с Ubuntu, поэтому я уверен, что есть более простые/лучшие способы выполнить то, что я сделал (и я хотел бы узнать о них), но это сработало для меня:

  • Я создал нового пользователя rubydev
  • Я вошел в систему как rubydev, открыл терминал и набрал:

    rubydev~$ bash < <(curl -B http://rvm.beginrescueend.com/install/rvm)
    
  • rvm установлен правильно, и я вышел из rubydev

  • Подписанный как натан, открыл терминал и набрал "su" (вы могли бы сделать все это с помощью sudo, я ленив).
  • После успешного запуска root я набрал следующие команды:

    root: /home/nathan# cp -R /home/rubydev/.rvm .
    
    root: /home/nathan# chown -R nathan .rvm
    
    root: /home/nathan# chgrp -R nathan .rvm
    
    root: /home/nathan# exit
    
    nathan~$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
    
    nathan~$ echo 'export rvm_path="/home/nathan/.rvm"' > ~/.rvmrc
    
    nathan~$ source .bash_profile
    
  • В этот момент rvm был правильно установлен в моем домашнем каталоге. Чтобы проверить, что я набрал:

    nathan~$ type rvm | head -1
    rvm is a function (if you don't get this response, something else is wrong)
    
  • Прочитайте заметки и установите любые зависимости

    nathan~$ rvm notes
    
  • Я установил некоторые рубины

    nathan~$ rvm install 1.8.7-head
    nathan~$ rvm install 1.9.2-head
    
  • Проверенная установка

        nathan~$ rvm list
    
        rvm rubies
            ruby-1.8.7-head [x86_64]
            ruby-1.9.2-head [x86_64]
    
        nathan~$ rvm use 1.9.2
        using /home/nathan/.rvm/gems/ruby-1.9.2-head
    
        nathan~$ rvm list
    
        rvm rubies
           ruby-1.8.7-head [x86_x64]
        => ruby-1.9.2-head [x86_x64]
    
  • Наконец, я отредактировал настройки на самом терминале, чтобы убедиться, что флажок "Запустить команду как оболочку входа" на вкладке "Название и команда" отмечен. Похоже, что .bash_profile иначе не обрабатывается.

  • Я удалил пользователя rubydev, созданного на шаге 1.

При всем этом у меня есть рабочий rvm под Ubuntu 11.04, используя мое предпочтительное имя пользователя.

Ответ 4

Я решил это, добавив

export rvm_path=~/.rvm

to ~/.bash_profile

Ответ 5

Если вы сначала установили RVM как root, а затем удалили его. И теперь вы пытаетесь установить его как пользователь не sudo, и вы получаете следующую ошибку:

mkdir: cannot create directory `/usr/local/rvm': Permission denied

Перед установкой под пользователем убедитесь, что вы вышли из корневого сеанса.

Ответ 6

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

~/.rvm 

Если проблем с разрешениями вообще не должно быть.

Я бы предположил, что он подбирает старую конфигурацию, оставшуюся после установки системы.

Убедитесь, что файл /etc/rvmrc или $HOME/.rvmrc отсутствует, потому что он может использовать ранее инициализированные переменные из этих файлов для создания неправильного пути установки.

если мы посмотрим на этот раздел bash script:

if [[ ${rvm_ignore_rvmrc:-0} -eq 0 ]]; then
  for file in /etc/rvmrc "$HOME/.rvmrc  " ; do
    if [[ -s "$file" ]] ; then
      source $file
    fi
  done
fi

Он пытается найти один из этих файлов, если он найдет его, если он запустит его, возможно, инициализируя rvm_path, который впоследствии не будет установлен как $HOME/.rvm с помощью этой команды

rvm_path="${rvm_path:-"$HOME/.rvm"}"

Ответ 7

У меня была такая же проблема. Когда я попытался создать gemset, я получил бы отказ от разрешения. Я просто забыл сначала запустить команду "rvm use 1.8.7". После этого я смог без проблем создать и использовать gemset.

Ответ 8

В последних версиях rvm вам нужно также удалить /etc/profile.d/.

Это случается часто, если вы пытаетесь установить его как root, а затем повторите попытку как обычный пользователь.

Надеюсь на эту помощь.

Ответ 9

Найдите файл rvm.sh ниже каталога /etc (он может быть в /etc, или/etc/init.d). Кроме того, попробуйте grep rvm/etc -r, чтобы вы могли найти некоторые файлы/строки, которые не позволяют вам устанавливать rvm в директории $HOME.

Ответ 10

Для меня работает

__rvm_unload

Работала сначала, это было связано с тем, что у меня был установлен rvm как для многопользовательского режима.

Ответ 11

Если вы установили rvm как root, и вы получаете разрешение на отказ (возможно, вы развертываете с capistrano в качестве пользователя без root), тогда вы можете попробовать rvm fix-permissions после выполнения таких действий, как rvm install 2.2.2, как root и создать gemset as корень.

Ответ 12

Решение Скотта Бартель работало для меня. Я нахожусь на изображении Digital Ocean, где они уже установили rvm как root. 1. удален /etc/rvmrc. 2. добавлен экспорт rvm_path = ~/.rvm в ~/.bash_profile 3. вышла из сеанса ssh на виртуальную машину 4. зашел назад и престо!

прокомментировал бы, но репутация на 3 балла слишком низкая:)