Bundle命令未找到(mac)

64

我正在使用Ruby,收到了一个带有一些Ruby程序的压缩文件,并且里面写道:在该文件夹内运行bundle install以安装所需的软件包。

当我在终端中运行该命令时,显示出bundle command not found

请问有人能详细描述如何解决这个问题吗?

6个回答

128
gem install bundler

这是如何做的。

你可能想要使用诸如rbenv这样的工具来管理gems。


1
当我尝试这样做时,我遇到了以下错误:您没有对 /Library/Ruby/Gems/2.0.0 目录的写入权限。 - ytk
3
请使用“sudo gem install bundler”进行安装。 - pjs
1
我可以发誓之前我尝试过这个,但是它没有起作用。但是我刚刚又尝试了一次,它成功了。哈哈,非常感谢! - ytk
1
@TejaK,有什么问题解决了吗?不要使用sudo。你的系统已经安装了Ruby,而且你不想碰系统安装。如果你搞砸了系统安装的Ruby,可能会损坏整个操作系统。你需要安装自己的Ruby来进行操作。最好(也是最简单)的方法是使用rvm(我使用的)或rbenv。是的,你必须先安装rvm或rbenv。一旦你安装了自己的Ruby,你只需要运行“gem install bundler”即可,无需sudo。要安装rvm,请参见此处:https://rvm.io/rvm/install。 - 7stud
2
是的,所有其他的帖子也都警告不要使用sudo,所以我按照B Seven建议使用了rbenv! - ytk
显示剩余4条评论

55

再次强调,对于那些使用OSX操作系统的人来说

gem install bundler

如果出现权限错误,一个似乎对很多人有效的选项是使用rbenv,这个工具可以在你的 ruby 命令(例如 gem install)和你的环境之间添加一个“shim”(如果我理解正确的话)。

一定要查看这个答案

上面的链接中非常清楚地介绍了这个过程。我选择通过 homebrew 安装:

brew update
brew install rbenv

然后您需要向您的配置文件中添加一个参数命令,如果您使用常见的~/.bash_profile,则可以使用以下命令完成:

echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

看起来是通过您的Shell添加一个命令来初始化rbenv。

不要忘记启动一个新的Shell,可以通过打开一个新的终端或使用source ~/.bash_profile命令来实现。

确保您的$PATH在您的Shell可能正在寻找Ruby的任何其他目录之前具有此.rbenv/shims(OSX附带了它自己的版本,我们不想搞乱):echo $PATH

which ruby
/Users/mikekilmer/.rbenv/shims/ruby
#GOOD!

现在安装一个版本的 Ruby:

rbenv install 2.2.3 

(使用rbenv install -l命令查看所有可用版本。)

现在,我们可以使用rbenv global 2.2.3命令将全局的Ruby版本切换为较新的版本。(嗯,我想我们不应该去改动系统自带的版本。)您也可以尝试使用rbenv local 2.2.3rbenv shell 2.2.3 命令。

最后运行:

rbenv rehash

现在运行 ruby -v 命令应该会返回2.2.3,并且 gem install bundler 命令也应该可以工作。

到此为止。


1
救了我。非常感谢。 - FRD
2
最佳答案!关键在于详细解释任何情况下仅执行“gem install bundler”是行不通的。谢谢。 - Almas Adilbek
1
我从这个答案中学到的关于Ruby的知识比我过去所有机会中学到的都多! - Douglas Fischer
感谢 @DouglasFischer。非常感谢您的赞美。 - MikeiLL

7

只需在终端中运行gem install bundler

这里有一个关于bundler的链接,您可以查看:bundler


1

尝试了这里的每一个解决方案,但都没有奏效。最终我用了两种不同的方法使其工作:

  • 如果您不在意难看的话,在.bashrc中设置alias bundle=/path/to/bundle
  • 通过rbenv重新创建一个全新的开发环境,并执行bundle install rails将会修复它(解决了我的问题)。

1
一些Ruby版本管理器(如chruby和rbenv)会为每个版本单独存储gems,因此当您安装不同版本的Ruby时,您需要运行gem install bundler

-4

终端 -

sudo su 

然后输入您的密码:

更改目录:

cd command . 

如果您没有写入驱动器的权限。

chmod 755 foldername. 

你也可以在终端中使用mkdir命令

mkdir /Library/Ruby/Gems/2.3.0.1

复制并粘贴:gem install bundler 到终端。
Fetching: bundler-1.16.2.gem (100%)
bundler's executable "bundle" conflicts with /usr/local/bin/bundle
Overwrite the executable? [yN]  y
bundler's executable "bundler" conflicts with /usr/local/bin/bundler
Overwrite the executable? [yN]  y
Successfully installed bundler-1.16.2
Parsing documentation for bundler-1.16.2
Installing ri documentation for bundler-1.16.2
Done installing documentation for bundler after 7 seconds
1 gem installed

适用于OS X High Sierra。


1
  1. 这完全无法阅读。你应该用4个空格缩进命令。
  2. sudo很危险。如上所述,你正在干扰系统的ruby安装,并可能破坏你的操作系统。
  3. 你做了很多不必要的事情(请参见被接受的答案)。
- mbuechmann

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