루트가 아닌 경우 사용 권한 오류 지우기

6267 단어 fpm-cookery

묘사

는 다음과 같습니다.
-bash-4.1$ fpm-cook 
===> Starting package creation for teamcity-server-8.0.5 (centos, rpm)
===> 
===> Verifying build_depends and depends with Puppet
===> Verifying package: jdk
===> All build_depends and depends packages installed
===> Fetching source: 
===> Using cached file /opt/teamcity-agent/work/fpm-recipes/teamcity-server/cache/TeamCity-8.0.5.tar.gz
===> Building in /opt/teamcity-agent/work/fpm-recipes/teamcity-server/tmp-build/TeamCity
===> Installing into /opt/teamcity-agent/work/fpm-recipes/teamcity-server/tmp-dest
===> [FPM] Converting dir to rpm {}
WARNING: [FPM] no value for epoch is set, defaulting to nil {}
===> [FPM] Reading template {"path":"/usr/lib/ruby/gems/1.8/gems/fpm-0.4.42/templates/rpm.erb"}
WARNING: [FPM] no value for epoch is set, defaulting to nil {}
/usr/lib/ruby/1.8/fileutils.rb:1178:in `open': Permission denied - /tmp/package-dir-staging20131208-28170-1jkcjhp/var/lib/teamcity-server (Errno::EACCES)
    from /usr/lib/ruby/1.8/fileutils.rb:1178:in `entries'
    from /usr/lib/ruby/1.8/fileutils.rb:1178:in `entries'
    from /usr/lib/ruby/1.8/fileutils.rb:1340:in `postorder_traverse'
    from /usr/lib/ruby/1.8/fileutils.rb:1341:in `postorder_traverse'
    from /usr/lib/ruby/1.8/fileutils.rb:1340:in `each'
    from /usr/lib/ruby/1.8/fileutils.rb:1340:in `postorder_traverse'
    from /usr/lib/ruby/1.8/fileutils.rb:1341:in `postorder_traverse'
    from /usr/lib/ruby/1.8/fileutils.rb:1340:in `each'
    from /usr/lib/ruby/1.8/fileutils.rb:1340:in `postorder_traverse'
    from /usr/lib/ruby/1.8/fileutils.rb:1341:in `postorder_traverse'
    from /usr/lib/ruby/1.8/fileutils.rb:1340:in `each'
    from /usr/lib/ruby/1.8/fileutils.rb:1340:in `postorder_traverse'
    from /usr/lib/ruby/1.8/fileutils.rb:760:in `remove_entry'
    from /usr/lib/ruby/1.8/fileutils.rb:613:in `rm_r'
    from /usr/lib/ruby/1.8/fileutils.rb:609:in `each'
    from /usr/lib/ruby/1.8/fileutils.rb:609:in `rm_r'
    from /usr/lib/ruby/gems/1.8/gems/fpm-0.4.42/lib/fpm/package.rb:274:in `cleanup_staging'
    from /usr/lib/ruby/gems/1.8/gems/fpm-0.4.42/lib/fpm/package.rb:267:in `cleanup'
    from /usr/lib/ruby/gems/1.8/gems/fpm-cookery-0.16.2/lib/fpm/cookery/package/package.rb:69:in `cleanup'
    from /usr/lib/ruby/gems/1.8/gems/fpm-cookery-0.16.2/lib/fpm/cookery/packager.rb:171:in `build_package'
    from /usr/lib/ruby/gems/1.8/gems/fpm-cookery-0.16.2/lib/fpm/cookery/packager.rb:146:in `chdir'
    from /usr/lib/ruby/gems/1.8/gems/fpm-cookery-0.16.2/lib/fpm/cookery/packager.rb:146:in `build_package'
    from /usr/lib/ruby/gems/1.8/gems/fpm-cookery-0.16.2/lib/fpm/cookery/packager.rb:133:in `dispense'
    from /usr/lib/ruby/gems/1.8/gems/fpm-cookery-0.16.2/lib/fpm/cookery/cli.rb:104:in `exec'
    from /usr/lib/ruby/gems/1.8/gems/fpm-cookery-0.16.2/lib/fpm/cookery/cli.rb:68:in `execute'
    from /usr/lib/ruby/gems/1.8/gems/fpm-cookery-0.16.2/lib/fpm/cookery/book.rb:16:in `call'
    from /usr/lib/ruby/gems/1.8/gems/fpm-cookery-0.16.2/lib/fpm/cookery/book.rb:16:in `load_recipe'
    from /usr/lib/ruby/gems/1.8/gems/fpm-cookery-0.16.2/lib/fpm/cookery/cli.rb:64:in `execute'
    from /usr/lib/ruby/gems/1.8/gems/clamp-0.6.3/lib/clamp/command.rb:67:in `run'
    from /usr/lib/ruby/gems/1.8/gems/clamp-0.6.3/lib/clamp/subcommand/execution.rb:11:in `execute'
    from /usr/lib/ruby/gems/1.8/gems/clamp-0.6.3/lib/clamp/command.rb:67:in `run'
    from /usr/lib/ruby/gems/1.8/gems/clamp-0.6.3/lib/clamp/command.rb:125:in `run'
    from /usr/lib/ruby/gems/1.8/gems/fpm-cookery-0.16.2/bin/fpm-cook:7
    from /usr/bin/fpm-cook:19:in `load'
    from /usr/bin/fpm-cook:19

토론 #1

레시피 출처:https://github.com/haf/fpm-recipes

토론 #2

이전에 루트로 생성되었지만 디렉터리를 정리하지 않았을 가능성이 있습니까?

토론 #셋

아니요, 저는 그곳에서 모든 것을 제거하여 검증 문제의 일부분으로 삼았습니다.

토론 #4

네,감사합니다.이거 복제해 볼게요.만약 네가 필요로 하는 것이 있다면 나에게 말해라.

토론 #5

나는 이 문제를 재현할 수 있다.다음은 당신의 식단과 다른 점으로 이 문제를 해결했습니다.
--- teamcity-server/recipe.rb
+++ teamcity-server/recipe.rb
@@ -28,11 +28,11 @@ class TeamcityServer < FPM::Cookery::Recipe

     # InitV script
     etc('init.d').install workdir('teamcity-server')
-    chmod 755, etc('init.d/teamcity-server')
+    chmod 0755, etc('init.d/teamcity-server')

     # data directory
     (var/'lib/teamcity-server').mkdir
-    chmod 755, (var/'lib/teamcity-server')
+    chmod 0755, (var/'lib/teamcity-server')

     # installation directory
     opt('teamcity-server/conf').mkdir

토론 #6

방법의 첫 번째 매개 변수(모드)는 8진수여야 한다.FileUtils.chmod 참조
$ fpm-cook --no-deps
===> Starting package creation for teamcity-server-8.0.5 (ubuntu, deb)
===> 
===> Fetching source: 
===> Using cached file /tmp/fpm-recipes/teamcity-server/cache/TeamCity-8.0.5.tar.gz
===> Building in /tmp/fpm-recipes/teamcity-server/tmp-build/TeamCity
===> Installing into /tmp/fpm-recipes/teamcity-server/tmp-dest
===> [FPM] Converting dir to deb {}
===> Removing existing package file: teamcity-server_8.0.5-2_amd64.deb
===> [FPM] No deb_installed_size set, calculating now. {}
===> [FPM] Reading template {"path":"/home/bernd/.rvm/gems/ruby-1.9.3-p545/gems/fpm-1.0.2/templates/deb.erb"}
===> [FPM] Creating {"path":"/tmp/package-deb-build20140303-9280-1i8z8pg/control.tar.gz","from":"/tmp/package-deb-build20140303-9280-1i8z8pg/control"}
===> [FPM] Created deb package {"path":"teamcity-server_8.0.5-2_amd64.deb"}
===> Created package: /tmp/fpm-recipes/teamcity-server/pkg/teamcity-server_8.0.5-2_amd64.deb
오래 걸려서 미안해요...chmod 와, gj@me가 그에게 소수를 주었다:).나는 심지어 루비에 8진법의 접두사가 있는지도 모른다.쿨하다
시간을 들여 이 일을 추적해 주셔서 감사합니다!

좋은 웹페이지 즐겨찾기