突然之间,我无法再在项目中运行bundle命令了。我正在使用Ubuntu进行开发,并遵循了关于如何部署到Azure的教程。
当我cd到我的项目目录并运行捆绑包时,我会收到以下消息:-
Unfortunately, a fatal error has occurred. Please see the Bundler
troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
/usr/lib/ruby/2.1.0/fileutils.rb:250:in `mkdir': Permission denied @ dir_s_mkdir - /var/lib/gems/2.1.0/extensions/x86-linux/2.1.0/kgio-2.9.2 (Errno::EACCES)
from /usr/lib/ruby/2.1.0/fileutils.rb:250:in `fu_mkdir'
from /usr/lib/ruby/2.1.0/fileutils.rb:224:in `block (2 levels) in mkdir_p'
from /usr/lib/ruby/2.1.0/fileutils.rb:222:in `reverse_each'
from /usr/lib/ruby/2.1.0/fileutils.rb:222:in `block in mkdir_p'
from /usr/lib/ruby/2.1.0/fileutils.rb:208:in `each'
from /usr/lib/ruby/2.1.0/fileutils.rb:208:in `mkdir_p'
from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:210:in `write_gem_make_out'
from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:132:in `build_error'
from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:171:in `rescue in build_extension'
from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:156:in `build_extension'
from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:198:in `block in build_extensions'
from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:195:in `each'
from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:195:in `build_extensions'
from /usr/lib/ruby/2.1.0/rubygems/specification.rb:1436:in `block in build_extensions'
from /usr/lib/ruby/2.1.0/rubygems/user_interaction.rb:45:in `use_ui'
from /usr/lib/ruby/2.1.0/rubygems/specification.rb:1434:in `build_extensions'
from /usr/lib/ruby/2.1.0/rubygems/stub_specification.rb:60:in `build_extensions'
from /usr/lib/ruby/2.1.0/rubygems/basic_specification.rb:56:in `contains_requirable_file?'
from /usr/lib/ruby/2.1.0/rubygems/specification.rb:925:in `block in find_inactive_by_path'
from /usr/lib/ruby/2.1.0/rubygems/specification.rb:924:in `each'
from /usr/lib/ruby/2.1.0/rubygems/specification.rb:924:in `find'
from /usr/lib/ruby/2.1.0/rubygems/specification.rb:924:in `find_inactive_by_path'
from /usr/lib/ruby/2.1.0/rubygems.rb:185:in `try_activate'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:132:in `rescue in require'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:144:in `require'
from /usr/lib/ruby/vendor_ruby/net/http/persistent.rb:12:in `<top (required)>'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/vendor_ruby/bundler/vendored_persistent.rb:7:in `<top (required)>'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/vendor_ruby/bundler/fetcher.rb:1:in `<top (required)>'
from /usr/lib/ruby/vendor_ruby/bundler/cli.rb:239:in `install'
from /usr/lib/ruby/vendor_ruby/thor/command.rb:27:in `run'
from /usr/lib/ruby/vendor_ruby/thor/invocation.rb:121:in `invoke_command'
from /usr/lib/ruby/vendor_ruby/thor.rb:363:in `dispatch'
from /usr/lib/ruby/vendor_ruby/thor/base.rb:440:in `start'
from /usr/bin/bundle:20:in `block in <main>'
from /usr/lib/ruby/vendor_ruby/bundler/friendly_errors.rb:3:in `with_friendly_errors'
from /usr/bin/bundle:20:in `<main>'
我有点不知所措。有人知道我做了什么来破坏它吗?或者我如何修复它?
从堆栈跟踪中可以看到,
/usr/lib/ruby/2.1.0/fileutils.rb:250:in `mkdir':
Permission denied @ dir_s_mkdir -
/var/lib/gems/2.1.0/extensions/x86-linux/2.1.0/kgio-2.9.2 (Errno::EACCES)
...
from /usr/lib/ruby/2.1.0/fileutils.rb:208:in `mkdir_p'
...
bundler正在尝试创建目录:/var/lib/gems/2.1.0/extensions/x86-linux/2.1.0/kgio-2.9.2
。它使用的是等效的mkdir -p
,它将"根据需要创建中间目录"(参见man mkdir
)。因此,您需要权限才能创建该目录。
如果您不熟悉unix权限,则必须进行一些阅读,例如。https://en.wikipedia.org/wiki/File_system_permissions#Traditional_Unix_permissions
一些有用的工具包括cd、ls-l、chown和chmod。在阅读了它们的手册之前,不要使用它们,尤其是chown和chmod。
只需删除应用程序路径中的.bundle
目录