rbenv安装权限被拒绝

11

大家好,我正在尝试设置一个开发环境,并且一直在按照以下教程进行学习; 教程链接

我做得不太好,对于终端命令除了最基本的版本控制之外几乎没有经验。我按照第一个链接进行操作时,当尝试运行时出现了问题。

source ~/.bash_profile

我收到了以下错误信息:mkdir: /usr/local/rbenv/shims: Permission denied mkdir: /usr/local/rbenv/versions: Permission denied

现在每次加载终端时都会出现这个错误。

bash_profile的内容如下:

export PATH=/usr/local/rbenv/bin:$PATH
export RBENV_ROOT=/usr/local/rbenv
eval "$(rbenv init -)"

非常感谢任何指导。


你可以发布.bash_profile文件的内容吗? - Greg Burghardt
是的,我已经将它添加到问题中了。 - Meeps
1
看起来rbenv设置会在您的.bash_profile中放置一行shell脚本,试图创建该目录。您可以授予自己在/usr/local/rbenv中创建目录的权限,或者只需使用sudo mkdir /directories/that/need/to/be/created命令创建需要创建的目录。 - Greg Burghardt
没错,就是那个,谢谢Greg。如果你回答了它,我会给你点赞的。谢谢啊。 - Meeps
4个回答

7
我在尝试安装 Ruby 版本时遇到了权限错误。同时它还抱怨说无法完成 mkdir。
简而言之,将 LDFLAGS 设置为空字符串即可。
export LDFLAGS= 

这里发现了一个问题: https://github.com/rbenv/rbenv/issues/766


2
在将.bashrc从AMD64 Mac迁移到ARM64 Mac后,我在rbenv install中遇到了一个mkdir /usr/local/opt错误,并且Homebrew的安装位置发生了变化。在我的.bashrc文件中,最初有以下这些行:export LDFLAGS="-L/usr/local/opt/zlib/lib -L/usr/local/opt/sqlite/lib"export CPPFLAGS="-I/usr/local/opt/zlib/include -I/usr/local/opt/sqlite/include"。当我将它们更新为:export LDFLAGS="-L/opt/homebrew/opt/zlib/lib -L/opt/homebrew/opt/sqlite/lib"export CPPFLAGS="-I/opt/homebrew/opt/zlib/include -I/opt/homebrew/opt/sqlite/include" 时,问题得到解决。 - spkane
1
LDFLAGS="" rbenv install 对我很有效,如果您不想总是导出空的LDFLAGS。 - Chad M
在OSX上,你可以使用env LDFLAGS= rbenv install来执行操作。 - Orlando

7
似乎rbenv安装会在您的.bash_profile中添加一行shell脚本,试图创建该目录。您可以授予自己在/usr/local/rbenv中创建目录的权限,或者执行sudo mkdir /directories/that/need/to/be/created命令创建目录。
sudo mkdir -p /usr/local/rbenv/shims
sudo mkdir -p /usr/local/rbenv/versions

如果需要创建这些文件夹,您不应该自己创建,rbenv 本身就有能力完成。您需要做的唯一事情是在使用 init 脚本启动终端时运行 eval "$(rbenv init -)"。更多信息请参见此解决方案:https://dev59.com/U1wZ5IYBdhLWcg3wVO9U#65999645 - mbritto

4

实际的解决方案;-)(无需更改权限或创建目录)是更改您的bash_profile(或其他类似.zshrc,例如我的情况)并删除这两个导出项:

export PATH=/usr/local/rbenv/bin:$PATH
export RBENV_ROOT=/usr/local/rbenv

为确保无问题,启动新的shell,并执行rbenv install <your_version_of_choice>,它将安装而不出错。

运行eval "$(rbenv init -)"应该足以满足您的环境需求。请参阅rbenv init explained。 我也认为这更加安全,因为您可以依赖于安装程序正常工作。

Gems可以在无需root/sudo权限的情况下安装。


3
这很有用 System Wide Install With rbenv,特别是将rbenv目录的权限更改为用户所在的组: chgrp -R staff /usr/local/rbenv chmod -R g+rwxXs /usr/local/rbenv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接