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

Предупреждение о RVM! PATH настроен неправильно

Я только что установил rvm на свой mac, но я получаю это предупреждение по глобальным командам

Внимание! PATH неправильно настроен, '/usr/local/rvm/gems/ruby-1.9.3-p194/bin' не на первом месте, обычно это вызвано файлами инициализации оболочки - проверьте их на "PATH =... ', это также может помочь повторно добавить RVM в ваши dotfiles:' rvm get stable --auto-dotfiles ', чтобы временно установить этот сеанс оболочки:' rvm use ruby-1.9.3-p194 '.

My $PATHS подтверждает предупреждение:

$echo :$PATH:
:/usr/local/rvm/bin:/usr/local/heroku/bin:/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/[email protected]/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:

Как я уже сказал, я сначала попробовал rvm get stable --auto-dotfiles безрезультатно, тогда я проверил файлы инициализации оболочки. Мой /.bash_profile:

export PATH=/usr/local/bin:/usr/local/sbin:$PATH
export PATH=/usr/local/share/python:$PATH
PATH=$PATH:$HOME/bin:/opt

Мой/Users/User/.bash_profile кажется виновником:

export PS1="[\w]$"
alias ll='ls -laGH'
alias .='echo $PWD'

### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"

# rvm
PATH=/usr/local/rvm/bin:$PATH
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

Причина в том, что если я удалю Heroku Toolbelt и пути rvm (которые были ответами, предложенными другими вопросами), /usr/local/rvm/gems/ruby-1.9.3-p194/bin будет на первом месте, и проблема будет решена. Однако я не знаю, что делать с Heroku Toolbelt. Кроме того, не стоит ли PATH=/usr/local/rvm/bin:$PATH размещать rvm в первую очередь?

Мне нужно упустить какое-то тривиальное решение.

Дополнительные примечания: $rvm --debug get head не содержит никаких примечаний по установке, кроме предупреждения, указанного выше.

Обновление: вызов rvm system устраняет проблему, но только в текущем сеансе оболочки. $echo $PATH теперь производит:

:/usr/local/heroku/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/rvm/bin:

Что такое постоянное исправление?

4b9b3361

Ответ 1

У меня такая же проблема с rvm 1.25.26.

Решение:

Я изменил ~/.bashrc следующим образом:

## rvm
PATH="$GEM_HOME/bin:$HOME/.rvm/bin:$PATH" # Add RVM to PATH for scripting
[ -s ${HOME}/.rvm/scripts/rvm ] && source ${HOME}/.rvm/scripts/rvm

вызывая

Предупреждение запускается в функции __rvm_path_match_gem_home_check() в $HOME/.rvm/scripts/functions/cli.

Если начало $PATH не начинается с $GEM_HOME/bin, отображается предупреждающее сообщение.

__rvm_path_match_gem_home_check()
{
  (( ${rvm_silence_path_mismatch_check_flag:-0} == 0 )) || return 0
  [[ -n "${GEM_HOME:-}" ]] || return 0
  case "$PATH:" in
    ($GEM_HOME/bin:*) true ;; # all fine here
    (*:$GEM_HOME/bin:*)
      __rvm_path_match_gem_home_check_warning "is not at first place"
      ;;
    (*)
      __rvm_path_match_gem_home_check_warning "is not available"
      ;;
  esac
}

Ответ 2

В моем случае, Heroku добавил следующее к моему .bashrc:

### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"

Обратите внимание, как он добавляет себя к пути. Все, что мне нужно было сделать, это переключить его на:

### Added by the Heroku Toolbelt
export PATH="$PATH:/usr/local/heroku/bin"

И моя проблема была решена!

Если у вас нет Heroku, найдите что-нибудь еще, что может быть добавлено к вашему пути. Действительно, RVM просто хочет убедиться, что у него есть справедливая возможность загрузить Ruby, прежде чем все драгоценные камни, которые включают себя в путь, загрузятся.

Ответ 3

Решение заключалось в том, чтобы запустить

$rvm install ruby-head
$rvm use ruby-head

с опциональным $rvm docs generate-ti

Я использовал устаревшую версию Ruby в своей системе, обновив ее до текущей версии, исправил ее.

Ответ 4

Поиск файлов конфигурации для:

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

Замените эту строку следующим образом:

export PATH="$HOME/.rvm/bin:$PATH" # Add RVM to PATH for scripting

Чтобы убедиться, что код RVM находится в начале вашего $PATH. Также убедитесь, что никакой другой код не ставит себя в начале $PATH.

Ответ 5

Поскольку я использовал версию rvm для Ubuntu, мне нужно было поместить это в мой .profile:

PATH="$GEM_HOME/bin:/usr/share/rvm/bin:$PATH" # Add RVM to PATH for scripting
[ -s /usr/share/rvm/scripts/rvm ] && source /usr/share/rvm/scripts/rvm

Ответ 6

Кажется, и конец .bashrc, вам нужно гарантировать, что путь rvm находится в начале $PATH

Ответ 7

Right. Я отбрасываю этот ответ, так как я провел много часов, не добившись успеха. Надеюсь, это еще немного спасет кого-то.

Моя проблема заключалась в установке 2 рубиновых головок, и, похоже, проблема с рубином также была проблемой.

➜ rvm list                   
Warning! PATH is not properly set up, '/home/ma/.rvm/gems/ruby-1.8.7-head/bin' is not at first place.
         Usually this is caused by shell initialization files. Search for 'PATH=...' entries.
         You can also re-add RVM to your profile by running: 'rvm get stable --auto-dotfiles'.
         To fix it temporarily in this shell session run: 'rvm use ruby-1.8.7-head'.
         To ignore this error add rvm_silence_path_mismatch_check_flag=1 to your ~/.rvmrc file.

rvm rubies

=> ruby-1.8.7-head [ x86_64 ]
   ruby-1.8.7-p374 [ x86_64 ]
   ruby-2.3.0 [ x86_64 ]
   ruby-2.4.0 [ x86_64 ]
 * ruby-head [ x86_64 ]

# => - current
# =* - current && default
#  * - default

В этом случае (попробуйте все вышеперечисленные решения, this и this), установив мои по умолчанию - ruby-head [ x86_64 ] и перезапустить терминал Warning! И моя текущая рубиновая версия сохранялась, как показывает вышеприведенный фрагмент.

Чтобы исправить это:

rvm remove ruby-1.8.7-head

Теперь, если я перезапущу терминал:

➜ rvm list                  

rvm rubies

   ruby-1.8.7-p374 [ x86_64 ]
   ruby-2.3.0 [ x86_64 ]
   ruby-2.4.0 [ x86_64 ]
=* ruby-head [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Ответ 8

Решение для OSX

У вас есть эти 3 файла в вашем домашнем каталоге: .bash_profile, .bashrc и (!) .profile

  1. Вам нужно удалить все конфигурации rvm из .profile
  2. .bash_profile должен содержать:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

3. .bashrc должен содержать:

# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$HOME/.rvm/bin:$PATH"

4. Перезагрузить сессию Bash