7

我正在尝试使用bundle install. 我不是 Ruby 用户——这是我第一次真正尝试运行 rake。我只是尝试使用 ThrowtheSwitch.org 中的一些使用 Rake 等的软件包。

几天前我最初使用以下方法安装了 ruby​​:

sudo apt-get install ruby-full

这让我可以在 Unity 测试框架中使用 rake。现在我想使用 CMock。然后使用 CMockcd进入目录的说明

$ bundle install
$ bundle exec rake

所以我使用以下方法安装捆绑器:

$ sudo apt-get install bundler

但随后bundle install连续运行要求我输入密码。所以我尝试:

$ gem install bundler

对 /var/lib/gems/1.9.1 的写入权限失败。所以我尝试:

$ sudo gem install bundler

安装OK所以我再试bundle install一次。但仍然不断被要求输入我的密码。所以我尝试:

$ sudo bundle install

并得到一个警告,我不应该以 root 身份运行 bundler:

不要以 root 身份运行 Bundler。如果需要,Bundler 可以请求 sudo,并且以 root 身份安装您的 bundle 将破坏此计算机上所有非 root 用户的应用程序。

如何正确安装它以便可以按预期运行它?

注意:我已经看到关于这个主题还有其他几个问题,我都没有理解这些问题的答案,所以让我强调一下,我不是一个 ruby​​(甚至是 web 堆栈)开发人员——我需要这个外行的术语可能的。

另请注意:我确实看到了几次提到 RVM 和 rbenv。我不确定它们是否特别与这些问题有关,或者是否需要其中一个或两个。我目前也没有。我即将研究他们现在的确切情况。

注意第三点:我的平台是 WSL(所以是 Ubuntu)。

4

3 回答 3

3

我只用了几个星期才开始使用 Ruby。我会说,我知道你在哪里。我不会提供太多帮助,但会对评论中的最后一个问题说,我的理解是这两个命令是不同的。

我对简短答案的理解.. 一个人可以拥有他们需要使用的不同版本的 Ruby(遗留项目等),并不是每个版本的 Ruby 都可以运行给定 gem 的每个版本。出于这个原因,可以使用 rbenv 或 rvm 来帮助管理使用特定版本的 ruby​​ 设置项目,然后安装所需的 gem。

我一直在我的 mac 上使用 rvm,在 linux 中使用 rbenv,发现它们对于我一直在做的简单事情来说都足够相似。在 linux 上安装 rbenv 被证明稍微容易一些。正确设置后,不再需要 sudo 来安装 gems - 这是首选。我建议尝试其中一种并按照他们的网站说明进行安装。设置完成后,事情应该会更顺利。

于 2016-11-02T17:44:09.893 回答
2

尝试运行:

gem install bundler
bundle install

我将尝试解释 ruby​​ 生态系统是如何工作的:

Bundler 是一个 gem - 一个模块 - 安装在 ruby​​ 之上。宝石是使用安装的

 gem install <gem name>

我建议您在做任何其他事情之前先安装一个 ruby​​ 版本管理器。两个主要候选者是 RVM 和 rbenv。

我发现 RVM 对于初学者来说是更简单的选择,但它会占用更多硬盘空间。

安装 ruby​​ 后,您可以通过ruby -v从命令行调用来测试它是否安装正确。

之后,您可以通过调用安装 bundlergem install bundler

一旦安装了 gem,你应该可以运行 bundler,但是如果你使用的是 rbenv,你可能需要先运行 rehash

我希望这个解释是有道理的——如果你有问题请大声喊叫。

于 2016-11-02T20:46:25.813 回答
0

如果您 - 出于某种原因 - 坚持使用 ruby​​ 的系统安装,则可以执行以下操作:

export GEM_HOME="$(ruby -e 'puts Gem.user_dir')"
export PATH="$GEM_HOME/bin:$PATH"

在别处找到它:https ://guilhermesimoes.github.io/blog/using-bundler-with-system-ruby

于 2021-03-10T18:12:03.287 回答