我正在尝试使用bundle install
。我不是Ruby用户 - 这是我第一次真正涉足甚至运行rake。我只想尝试使用来自ThrowtheSwitch.org的一些使用Rake等的软件包。
我最初几天前使用以下方法安装了ruby:
sudo apt-get install ruby-full
这允许我在Unity测试框架中使用rake。现在我想使用CMock。使用CMock的说明向cd
说到目录
$ bundle install
$ bundle exec rake
所以我使用以下方法安装bundler:
$ sudo apt-get install bundler
但随后运行bundle install
不断询问我的密码。所以我试试:
$ gem install bundler
对于/var/lib/gems/1.9.1的写入权限失败。所以我试试:
$ sudo gem install bundler
安装好,所以我再次尝试bundle install
。但仍然不断询问我的密码。所以我试试:
$ sudo bundle install
并警告我不应该以root身份运行bundler:
不要以root身份运行Bundler。如果需要,Bundler可以请求sudo,并且以root身份安装捆绑包将破坏此计算机上所有非root用户的此应用程序。
如何正确安装,以便我可以按预期运行?
注意:我已经看到关于这个主题还有其他一些问题,其中没有一个我理解答案,所以让我强调我不是一个红宝石(甚至是网络堆栈)开发者 - 我需要这个外行的术语尽可能多。
另请注意:我确实看到了几个关于RVM和rbenv的提及。我不确定它们是否特别附带于这些问题,或者是否需要其中一个或两个。我目前也没有。我将准确研究他们现在的情况。
注意第三个:我的平台是WSL(所以Ubuntu,有点)。
答案 0 :(得分:3)
我几个星期以来一直在使用Ruby。我会说,我知道你在哪里。我不是要提供很多帮助,而是会对评论中的最后一个问题说,我的理解是这两个命令是不同的。
我对简短回答的理解。可以使用他们需要处理的Ruby版本(遗留项目等),而不是每个版本的Ruby都可以运行给定gem的每个版本。出于这个原因,可以使用rbenv或rvm来帮助管理使用特定版本的ruby设置项目的艺术,然后安装所需的gem。
我一直在使用我的mac上的rvm和linux中的rbenv,并且发现它们与我一直在做的简单事情相似。在linux上安装rbenv证明稍微容易一些。一旦设置正确,不再需要sudo来安装宝石 - 这是首选。我建议尝试其中一个并按照他们的网站说明进行安装。一旦设置,事情应该会更顺畅。
答案 1 :(得分:2)
尝试跑步:
gem install bundler
bundle install
我将尝试解释红宝石生态系统的工作原理:
Bundler是一个宝石 - 一个模块 - 安装在ruby之上。宝石是使用
安装的 gem install <gem name>
我建议您在执行任何其他操作之前先查看安装ruby版本管理器。两个主要候选人是RVM和rbenv。
我发现RVM对于初学者来说是一个更简单的选项,但它会占用更多硬盘空间。
安装ruby后,您可以通过从命令行调用ruby -v
来测试它是否已正确安装。
之后,您可以通过调用gem install bundler
安装gem之后,您应该能够运行bundler,但是如果您使用的是rbenv,则可能需要先运行rehash
我希望这种解释是有道理的 - 如果您有疑问,请大声说出来。
答案 2 :(得分: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