Предупреждение о 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:
Что такое постоянное исправление?
Ответы
Ответ 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
- Вам нужно удалить все конфигурации rvm из
.profile
-
.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