RubyonRails bundle命令不起作用



突然之间,我无法再在项目中运行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目录

最新更新