rbenv:没有这样的命令`init'

Har*_*wig 3 ruby rbenv

我按照https://github.com/sstephenson/rbenv#section_2上的说明安装了rbenv

在第4点重新启动我的shell将导致错误

$ rbenv init -
rbenv: no such command `init'
Run Code Online (Sandbox Code Playgroud)

尝试直接从其文件夹运行命令也不起作用.

$ cd .rbenv/bin
$ ./rbenv init -
rbenv: no such command `init'
Run Code Online (Sandbox Code Playgroud)

我的$ PATH

$ echo $PATH
/home/myusername/.rbenv/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/myusername/bin
Run Code Online (Sandbox Code Playgroud)

运行rbenv安装有效,直到调用rbenv rehash

$ rbenv install 1.9.3-p0
Downloading http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz...
Installing yaml-0.1.4...
Installed yaml-0.1.4 to /home/hbrandl/.rbenv/versions/1.9.3-p0
Downloading http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz...
Installing ruby-1.9.3-p0...
Installed ruby-1.9.3-p0 to /home/hbrandl/.rbenv/versions/1.9.3-p0
rbenv: no such command `rehash'
Run Code Online (Sandbox Code Playgroud)

所有其他rbenv命令似乎不起作用.

任何帮助或指针非常感谢.

Kel*_*vin 6

检查符号链接是否正确:

> ls -l ~/.rbenv/bin/rbenv
lrwxr-xr-x  1 kelvin  staff  16 Mar 29 11:19 /Users/kelvin/.rbenv/bin/rbenv@ -> ../libexec/rbenv
Run Code Online (Sandbox Code Playgroud)

你的rbenv是../libexec/rbenv的符号链接吗?它应该是,因为它读取符号链接位置以知道"libexec"是其他可执行文件的位置.

修理:

> cd ~/.rbenv/bin
> mv rbenv rbenv.broken
> ln -s ../libexec/rbenv rbenv
Run Code Online (Sandbox Code Playgroud)

如果你从另一个位置复制〜/ .rbenv,可能会破坏,这可能会使链接混乱.


Har*_*wig 5

解决我的问题的一个可行方法是简单地将 libexec 文件夹添加到我的路径中。

我的 rbenv PATH 添加现在如下所示:

export PATH="$HOME/.rbenv/bin:$HOME/.rbenv/libexec:$PATH"
Run Code Online (Sandbox Code Playgroud)

这为我解决了问题。