如何 运行 以普通用户身份进行捆绑安装

How to run bundle install as normal user

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

几天前我最初安装 ruby 使用:

sudo apt-get install ruby-full

这让我可以将 rake 与 Unity 测试框架结合使用。现在我想使用 CMock。使用 CMock 的说明说 cd 进入目录然后

$ bundle install
$ bundle exec rake

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

$ sudo apt-get install bundler

但是 运行ning bundle install 不断地询问我的密码。所以我尝试:

$ gem install bundler

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

$ sudo gem install bundler

安装正常,所以我再次尝试 bundle install。但是仍然不断地询问我的密码。所以我尝试:

$ sudo bundle install

并收到警告,我不应该 运行 以 root 身份打包:

Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this machine.

我怎样才能正确安装它,以便我可以 运行 按预期安装它?

注意:我看到还有其他几个关于这个主题的问题,none 我理解其中的答案,所以让我强调一下,我不是 ruby(甚至网络stack) dev - 我需要尽可能通俗易懂。

另请注意:我确实看到多次提到 RVM 和 rbenv。我不确定它们是否特别是这些问题的附带问题,或者是否需要其中一个或两个。我目前也没有。我即将研究它们现在到底是什么。

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

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

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

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

尝试 运行宁:

gem install bundler
bundle install

我将尝试解释 ruby 生态系统的运作方式:

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

安装 Gem
 gem install <gem name>

我建议您在执行任何其他操作之前先安装 ruby 版本管理器。两个主要候选者是 RVM 和 rbenv。

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

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

之后你可以通过调用gem install bundler

来安装bundler

安装 gem 后,您应该可以 运行 捆绑器,但是如果您使用的是 rbenv,则可能需要先 运行 重新哈希

希望解释得通 - 如有疑问请大声疾呼。

如果您出于某种原因无法安装 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