我根据github方向安装了rbenv.我正在运行OSX,但我在Ubuntu 12.04 VM上尝试了这个并得到了相同的结果.当我尝试更改ruby版本时,以下是我在终端中获得的内容:
rbenv versions
* 1.9.3-p0 (set by /Users/user/.rbenv/version)
1.9.3-p125
rbenv global
1.9.3-p0
rbenv rehash
ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]
which ruby
/usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)
任何人都有任何想法为什么rbenv没有像它认为的那样切换ruby版本?此外,本地目录中没有.rbenv文件会导致ruby版本默认为1.8.7
rbenv local
rbenv: no local version configured for this directory
Run Code Online (Sandbox Code Playgroud)
def*_*vol 470
检查PATH是否包含$ HOME/.rbenv/shims和$ HOME/.rbenv/bin
$ env | grep PATH
Run Code Online (Sandbox Code Playgroud)
如果使用bash,还要检查〜/ .bash_profile中是否包含以下内容;如果使用zsh,请检查〜/ .zshenv
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
Run Code Online (Sandbox Code Playgroud)
注意:确保它是〜/ .bash_profile中的最后一个设置.我遇到了一个问题,我安装了一个程序来更新我的.bash_profile并重置PATH.
alp*_*ogg 89
这可能是一个老问题,但谷歌带领我到这里,为了后人的缘故,我想我会分享.
在上面的许多推荐解决方案之后,我的问题仍然存在.像OP一样,我安装了rbenv然后安装了ruby版本,但我的笔记本电脑默认为系统.我忽略的是当我跑步时:
[~/.rbenv] $ rbenv versions
* system (set by /Users/alphadogg/.rbenv/version)
2.0.0-p247
Run Code Online (Sandbox Code Playgroud)
IOW,它仍然默认为系统.快点
[~/.rbenv] $ rbenv local 2.0.0-p247
Run Code Online (Sandbox Code Playgroud)
把它切换到新版本.
mjm*_*vis 86
我通过在〜/ .bash_profile中添加以下内容来修复此问题:
#PATH for rbenv
export PATH="$HOME/.rbenv/shims:$PATH"
Run Code Online (Sandbox Code Playgroud)
这是https://github.com/sstephenson/rbenv中记录的内容.
据我所知,没有〜/ .rbenv/bin目录,@rodowi在帖子中提到过.
mis*_*que 38
即使您已经rbenv安装,您的计算机仍然可以使用默认的 ruby 版本。要解决此问题,只需运行以下命令:
rbenv init
Run Code Online (Sandbox Code Playgroud)
这可能会给出如下输出:
# Load rbenv automatically by appending
# the following to ~/.zshrc:
eval "$(rbenv init - zsh)"
Run Code Online (Sandbox Code Playgroud)
只需打开您的.zshrc文件:
sudo nano ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
(或者您也可以使用任何其他文本编辑器打开此文件)
添加这一行:
eval "$(rbenv init - zsh)"
Run Code Online (Sandbox Code Playgroud)
保存文件(如果使用 sudo nano,你可以这样做:)
然后CTRL + X(对于 Mac)YEnter
.zshrc现在,像这样刷新您的个人资料:
source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
现在输入ruby --version,这必须为您提供由 提供的 ruby 版本rbenv。
小智 33
第一步是找出被调用的红宝石:
which ruby
你的系统说:
/usr/bin/ruby
这不是rbenv使用的垫片,它(在MacOS上)应该是这样的:
/Users/<username>/.rbenv/shims/ruby
垫片实际上是一个脚本,其作用类似于重定向到您设置的ruby版本.
rbenv global 1.9.3
rbenv local --unset
rbenv shell --unset
我建议您在解决问题时取消设置项目特定的"本地"版本,以及特定于shell的"shell"版本,并使用"全局"版本设置进行测试,该设置在〜/ .rbenv/verion中的纯文本文件中确定.在你的情况下将只是版本号"1.9.3".您可以在项目文件夹的根目录(而不是主文件夹)中执行"ls -laG",以确保不再存在".ruby-version"文件.
您可以使用"rbenv版本"来标识rbenv设置使用的版本(以及设置该文件的文件的位置和名称).
rbenv versions
没有这个问题:直到你正确设置路径.
使用它来确保您的*MacOS会服从您:
eval "$(rbenv init -)"
其次是:
which ruby
确保它看起来像:/Users//.rbenv/shims/ruby
然后将该行添加到您的配置文件中,以便每次打开新的终端窗口时它都会运行:
~/.bash_profile
eval "$(rbenv init -)"
还有其他方法可以修改路径,可以随意替换它们而不是运行rbenv init.
注意:重新安装Rails:
gem install rails
如果您尝试运行Ruby on Rails,那么您需要先将其全部工作,然后再次安装rails gem.以前安装的Rails将使用硬编码路径到错误的ruby,其他几个东西将在错误的位置,所以只需再次安装gem.
PS如果你的MacOS不服从你(*如上所述)那么你可能必须找到另一种方法来修改你的路径,但这不太可能是一个问题因为"Macs正常工作";)
Nea*_*eal 21
我刚刚发现了同样的问题.我做的是卸载rbenv(通过自制程序)并重新安装它.我还补充道
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
Run Code Online (Sandbox Code Playgroud)
当我重新安装rbenv时进入〜/ .bash_profile.现在工作得很好.
Pet*_*per 13
在我的情况下,改变~/.zshenv不起作用.我不得不在里面做出改变~/.zshrc.
我刚补充说:
# Include rbenv for ZSH
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
Run Code Online (Sandbox Code Playgroud)
在顶部~/.zshrc,重新启动shell并注销.
检查它是否有效:
? ~ rbenv install 2.4.0
? ~ rbenv global 2.4.0
? ~ rbenv global
2.4.0
? ~ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
Run Code Online (Sandbox Code Playgroud)
如果您使用的是bash,请转到
~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
并添加以下行(如果它还没有)
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 Zsh,请转到
~/.zshrc
Run Code Online (Sandbox Code Playgroud)
并在 .zshrc 文件的末尾添加相同的代码行。
然后只需重新启动您的终端,现在应该没问题了。
小智 8
我尝试了所有解决方案,但没有一个对我有用。即使我也在文件中包含了路径.zshrc。
就我而言,我使用MacBook Pro M2的是 macOS Ventura 13.2。我正在使用React Native 0.71.2,它需要 Ruby2.7.6版本。
我只是将以下代码放在.zprofile代替中.zshrc,并且它起作用了:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init - zsh)"
Run Code Online (Sandbox Code Playgroud)
运行此命令
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
这将解决您的问题参考
rbenv help shell
“通过在 shell 中设置 'RBENV_VERSION' 环境变量来设置特定于 shell 的 Ruby 版本。此版本覆盖本地应用程序特定的版本和全局版本。应该是与 rbenv 已知的 Ruby 版本匹配的字符串。特殊版本字符串 'system ' 将使用您的默认系统 Ruby。运行 rbenv versions' 以获取可用 Ruby 版本的列表。”
如果 rbenv 安装正确, ruby -v 将对应
rbenv shell 1.9.3-p125
对我来说,最简单的使用方法是添加rbenv到配置中的插件部分。就我而言,它看起来类似于:zshrbenv.zshrc
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git bower rails ruby rbenv gulp npm node nvm sublime)
Run Code Online (Sandbox Code Playgroud)
之后,在rbenv.
请注意在进行更改后重新启动终端会话。
我有同样的问题,但由 Homebrew 引起的:
[~]$ rbenv version
2.3.0 (set by /Users/user/.rbenv/version)
[~]$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]
[~]$ which ruby
/usr/local/bin/ruby
Run Code Online (Sandbox Code Playgroud)
不知何故,我也通过 Homebrew 安装了 Ruby,并且 Homebrew 路径在我的$PATH. 跑步brew uninstall ruby为我修好了。
适合鱼壳用户
set --universal fish_user_paths $fish_user_paths ~/.rbenv/shims/
Run Code Online (Sandbox Code Playgroud)
跑:
rbenv init
Run Code Online (Sandbox Code Playgroud)
运行之后,当我设置本地 rbenv 版本时:
rbenv local 2.4.0
Run Code Online (Sandbox Code Playgroud)
然后我ruby -v和我的rbenv local版本重合。
注意:你可能还想退出你所在的目录,然后再回到它,我注意到这对我来说是必要的,以便让事情正常工作。
我在MacBook Pro Catalina OS和MacBook Pro Big Sur上使用rbenv设置Ruby时遇到了这个问题。
这是我修复的方法:
首先运行下面的命令来初始化rbenv:
rbenv init
Run Code Online (Sandbox Code Playgroud)
这会给你一些关于做什么的指导。基本上,您必须打开~/.zshrc文件并将其添加到文件中eval "$(rbenv init -)"。您可以通过运行以下命令来完成此操作:
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
接下来,运行以下命令来设置您的 ruby 版本:
rbenv local your-desired-ruby-version
Run Code Online (Sandbox Code Playgroud)
就我而言,我想要的 ruby 版本是 3.0.1,所以它是:
rbenv local 3.0.1
Run Code Online (Sandbox Code Playgroud)
完成后,使用Command + Q退出终端,然后打开一个新终端,这次运行命令时:
ruby -v
rbenv versions
Run Code Online (Sandbox Code Playgroud)
你会看到你想要的 ruby 版本已经为你设置好了。
就这样。
我希望这有帮助
| 归档时间: |
|
| 查看次数: |
147400 次 |
| 最近记录: |