dda*_*yan 152 ruby rubygems bundler
我有几个gem文件,我通过它安装gem install xx.gem.我可以告诉Bundler使用它们吗?或者我是否必须指定源路径?
pje*_*pje 277
这不是关于安装.gem包的问题的严格答案,但您可以通过编辑Gemfile以gem-by-gem为基础指定所有类型的位置.
:path属性将从本地计算机上的该路径安装gem.gem "foreman", path: "/Users/pje/my_foreman_fork"
Run Code Online (Sandbox Code Playgroud)
:git属性将从远程git存储库安装gem.gem "foreman", git: "git://github.com/pje/foreman.git"
# ...or at a specific SHA-1 ref
gem "foreman", git: "git://github.com/pje/foreman.git", ref: "bf648a070c"
# ...or branch
gem "foreman", git: "git://github.com/pje/foreman.git", branch: "jruby"
# ...or tag
gem "foreman", git: "git://github.com/pje/foreman.git", tag: "v0.45.0"
Run Code Online (Sandbox Code Playgroud)
小智 58
似乎捆绑包不能使用开箱即用的.gem文件.指向:包含.gem文件的目录的路径不起作用.有人建议为此目的设置本地gem服务器(geminabox,stickler).
但是,我发现更简单的是从文件系统使用本地gem"服务器":只需将.gem文件放在本地目录中,然后使用"gem generate_index"使其成为Gem存储库
mkdir repo
mkdir repo/gems
cp *.gem repo/gems
cd repo
gem generate_index
Run Code Online (Sandbox Code Playgroud)
最后通过将以下行添加到Gemfile来将bundler指向此位置
source "file://path/to/repo"
Run Code Online (Sandbox Code Playgroud)
如果更新存储库中的gem,请确保重新生成索引.
eda*_*dap 43
我会在应用程序供应商文件夹中解压缩您的gem
gem unpack your.gem --target /path_to_app/vendor/gems/
Run Code Online (Sandbox Code Playgroud)
然后在Gemfile上添加路径以链接解压缩的gem.
gem 'your', '2.0.1', :path => 'vendor/gems/your'
Run Code Online (Sandbox Code Playgroud)
JHu*_*rah 29
默认情况下,Bundler将首先检查您的系统,如果找不到gem,它将使用您的Gemfile中指定的源.
您可以强制捆绑器使用通过“捆绑包”和“捆绑安装--local”部署的gem
在您的开发机器上:
bundle install
Run Code Online (Sandbox Code Playgroud)
(安装必需的gem并制作Gemfile.lock)
bundle package
Run Code Online (Sandbox Code Playgroud)
(在供应商/缓存中缓存宝石)
在服务器上:
bundle install --local
Run Code Online (Sandbox Code Playgroud)
(--local表示“使用供应商/缓存中的宝石”)
| 归档时间: |
|
| 查看次数: |
103197 次 |
| 最近记录: |