我正在开发几个私有 gem,我认为我不正确理解 PATH/GEM_PATH 和/或 Bundler/RVM 安装流程,如果有人能加入我会很高兴。
我有一个包含两个 gem 的存储库(为简单起见,A 和 B)。我已经使用脚手架 + 遵循此捆绑器教程提供的指南开发了这些 gem 。
感谢 Bundler 项目,我有一些 Rakefile 任务,例如rake build
、和. 由于这些 gem 的私有性质,我无法将它们发布到 RubyGems(而且我们还没有考虑托管我们的 rubygems)。rake install
rake install:local
rake release
我的机器正在使用 RVM 来管理 ruby 版本和 Bundler 版本 1.15.1
我想要做的:假设一台新机器/开发人员尝试该项目,理想情况下我们将cd
进入每个子文件夹(当前为 2,gem A 和 gem B),运行rake install
,然后我们应该在系统范围内为当前用户。
发生了什么: gem 已构建并正常工作,但它们仅在每个 gem 的子文件夹中可用,即 gem A 仅在子文件夹 A 中可用,gem B 仅在子文件夹 B 中可用。
我试过rake build/install/install:local
的:所以,.gem
在pkg
. 我尝试使用 手动安装“编译”文件gem install pkg/A.gem
,gem install --local pkg/A.gem
但gem install --local --user-install pkg/A.gem
没有成功。(有很多关于这个的问题/答案)
我相信这与 PATH 变量有关,但就像我之前所说的,我并不完全理解它们的管理方式。我从这些命令中得到以下结果:
# Our gem
> gem which A
/home/ubuntu/.rvm/gems/ruby-2.4.0/gems/A-0.1.8/lib/A.rb
# Pry, available globally
> gem which pry
/home/ubuntu/.rvm/gems/ruby-2.4.0/gems/pry-0.11.1/lib/pry.rb
我已经迷失和沮丧太久了,感谢任何帮助。也愿意听取更好的私人 gem 安装流程的建议:)