由于某些原因,gem random_unique_id的文件在部署时安装时会以错误的权限结束:
# ls -la /var/www/projectx/shared/bundle/ruby/2.1.0/gems/random_unique_id-0.2.0
total 48
drwxrwxr-x 5 projectx projectx 4096 May 26 23:36 .
drwxrwxr-x 148 projectx projectx 4096 May 26 23:36 ..
-rw------- 1 projectx projectx 320 May 26 23:36 Gemfile
drwxrwxr-x 2 projectx projectx 4096 May 26 23:36 gemfiles
-rw------- 1 projectx projectx 184 May 26 23:36 .gitignore
drwxrwxr-x 3 projectx projectx 4096 May 26 23:36 lib
-rw------- 1 projectx projectx 1067 May 26 23:36 LICENSE.txt
-rw------- 1 projectx projectx 223 May 26 23:36 Rakefile
-rw------- 1 projectx projectx 1000 May 26 23:36 random_unique_id.gemspec
-rw------- 1 projectx projectx 2934 May 26 23:36 README.md
drwxrwxr-x 2 projectx projectx 4096 May 26 23:36 test
-rw------- 1 projectx projectx 127 May 26 23:36 .travis.yml
所有人都应该可读。其他宝石拥有正确的权限:
# ls -la /var/www/projectx/shared/bundle/ruby/2.1.0/gems/sorcery-0.8.5/
total 76
drwxrwxr-x 4 projectx projectx 4096 May 26 23:36 .
drwxrwxr-x 148 projectx projectx 4096 May 26 23:36 ..
-rw-r--r-- 1 projectx projectx 5802 May 26 23:36 CHANGELOG.md
-rw-r--r-- 1 projectx projectx 55 May 26 23:36 .document
-rw-r--r-- 1 projectx projectx 733 May 26 23:36 Gemfile
-rw-r--r-- 1 projectx projectx 503 May 26 23:36 Gemfile.rails4
-rw-r--r-- 1 projectx projectx 865 May 26 23:36 .gitignore
drwxrwxr-x 4 projectx projectx 4096 May 26 23:36 lib
-rw-r--r-- 1 projectx projectx 1083 May 26 23:36 LICENSE.txt
-rw-r--r-- 1 projectx projectx 117 May 26 23:36 Rakefile
-rw-r--r-- 1 projectx projectx 10309 May 26 23:36 README.md
-rw-r--r-- 1 projectx projectx 8 May 26 23:36 .rspec
-rw-r--r-- 1 projectx projectx 1309 May 26 23:36 sorcery.gemspec
drwxrwxr-x 8 projectx projectx 4096 May 26 23:36 spec
-rw-r--r-- 1 projectx projectx 329 May 26 23:36 .travis.yml
-rw-r--r-- 1 projectx projectx 5 May 26 23:36 VERSION
我正在使用Bundler 1.6.2安装这些gem,Gemfile包含random_unique_id,如下所示:
gem "random_unique_id", "~> 0.2.0"
我正在使用Capistrano 3.2.1(耙式版本:10.3.1)和capistrano-bundler 1.1.2进行部署。生成的包线看起来像这样:
cd /var/www/projectx/releases/20140526233202 && /usr/local/rvm/bin/rvm default do bundle install --binstubs /var/www/projectx/shared/bin --path /var/www/projectx/shared/bundle --without development test --deployment --quiet
任何可能导致此问题的想法?
免责声明:我写了那个gem,random_unique_id,但是我看不出它会有什么影响。
答案 0 :(得分:0)
我对此感到非常惊讶,但是宝石文件中的权限没有规范化,它们只是从开发人员对自己文件的任何权限中复制而来。当我打包那个gem时,我的主目录中的所有文件都是0600,并且这些权限保存给安装该gem的人。
我认为这是一个错误,没有tar可以选择忽略文件权限吗?我不知道该向谁报告此错误。这是红宝石项目吗? RubyGems的?宝石?捆绑?
我通过发布具有更好文件权限的新版本的random_unique_id,v0.2.1解决了这个问题。