我有一个开发宝石试图通过capistrano安装在服务器上,并且b / c失败我现在正指向github。
为什么这个gem试图安装在我的服务器上呢?
Gemfile片段:
gem 'capistrano-local-precompile', '~> 1.0', :git => 'git@github.com:stve/capistrano-local-precompile.git', :branch => 'cap3', :group => :development, require: false
Capistrano片段输出:
00:08 bundler:install
01 ~/.rvm/bin/rvm 2.3.3 do bundle install --path /var/www/csmschedule/shared/bundle --without development test --quiet --no-cache
01 The authenticity of host 'github.com (192.30.253.112)' can't be established.
01
01 RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
答案 0 :(得分:0)
您的Gemfile.lock中是否存在GIT
的{{1}}部分,并且该锁定文件是否已提交给您的仓库?换句话说,您是否在本地运行capistrano-local-precompile
,同时提交了bundle install
和Gemfile
,并在运行Gemfile.lock
之前推送了这些更改?
Bundler需要知道cap deploy
gem的依赖关系才能进行版本解析。即使您指定capistrano-local-precompile
,它仍然需要此信息(因为开发宝石的版本要求会影响生产版本的版本解析)。
如果你的锁文件不存在或者它已经过时(即--without development
不在锁文件中),那么Bundler需要从GitHub下载gem才能更新锁文件。 / p>
在相关说明中:我注意到您没有在服务器上的bundle命令中使用capistrano-local-precompile
。这可能不是一个好主意。您应该使用--deployment
,以便Bundler检查您的Gemfile.lock是最新的,如下所述:
http://bundler.io/v1.15/man/bundle-install.1.html#DEPLOYMENT-MODE