【问题标题】:Gemfile.lock write error, permissions?Gemfile.lock 写入错误,权限?
【发布时间】:2013-07-05 08:09:27
【问题描述】:

不久前我创建了一个 Rails 模型“模型”,现在我正在尝试运行服务器。在bundle install 之后我得到:

尝试写入 Gemfile.lock 时出错。您可能需要在路径:/home/thiago/model/Gemfile.lock 处允许文件的写入权限

尝试rails s 看看会发生什么,然后:

/home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/definition.rb:235:in `rescue in lock':尝试写入 Gemfile.lock。很可能 (Bundler::InstallError) 您需要允许路径中文件的写入权限: /home/thiago/model/Gemfile.lock 来自 /home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/definition.rb:220:in `lock' 来自 /home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/environment.rb:34:in `lock' 来自 /home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/runtime.rb:43:in `setup' 来自 /home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup' 来自 /home/thiago/.rvm/gems/ruby-1.9.3-p429@global/gems/rubygems-bundler-1.1.1/lib/rubygems-bundler/noexec.rb:79:in `setup' 来自/home/thiago/.rvm/gems/ruby-1.9.3-p429@global/gems/rubygems-bundler-1.1.1/lib/rubygems-bundler/noexec.rb:91:in `' 来自 /home/thiago/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:110:in `require' 来自/home/thiago/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:110:in `rescue in require' 来自 /home/thiago/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:35:in `require' 来自 /home/thiago/.rvm/gems/ruby-1.9.3-p429/bin/ruby_noexec_wrapper:9:in `'

我可以设置 Gemfile.lock 的权限,以便我可以捆绑和运行服务器吗?

$ ls -a -l 共 80 个 drwxr-xr-x。 13 根 4096 5 月 19 日 14:08。 drwx-----。 41 蒂亚戈 蒂亚戈 4096 7 月 7 日 23:51.. drwxr-xr-x。 8 根根 4096 5 月 19 日 14:08 应用 drwxr-xr-x。 5 根根 4096 5 月 19 日 14:08 配置 -rw-r--r--。 1 根 155 5 月 19 日 14:08 config.ru drwxr-xr-x。 2根根4096 5月19日14:08分贝 drwxr-xr-x。 2 根根 4096 May 19 14:08 doc -rw-r--r--。 1 根 765 5 月 19 日 14:08 Gemfile -rw-r--r--。 1 根 430 5 月 19 日 14:08 .gitignore drwxr-xr-x。 4根根4096 5月19日14:08 lib drwxr-xr-x。 2根根4096 5月19日14:08日志 drwxr-xr-x。 2根根4096 5月19日14:08公开 -rw-r--r--。 1 根根 270 May 19 14:08 Rakefile -rw-r--r--。 1 根 9208 5 月 19 日 14:08 README.rdoc drwxr-xr-x。 2根根4096 5月19日14:08脚本 drwxr-xr-x。 7根根4096 5月19日14:08测试 drwxr-xr-x。 3 根根 4096 5 月 19 日 14:08 tmp drwxr-xr-x。 4 root root 4096 5月19日 14:08 供应商

模型文件创建不正确?

【问题讨论】:

  • 那么,当前文件的权限是什么?
  • 看起来您已经以 root 身份创建了应用程序。把所有的文件都给自己,你应该没问题

标签: ruby linux bundler


【解决方案1】:

您的应用程序根目录(其权限控制文件创建)和文件都归根而不是您的用户所有(可能是因为您使用了sudo rails new——不要为此使用sudo)。您可以通过以下方式更改权限:

sudo chown -R $(whoami):$(whoami) myappfolder

其中“myappfolder”是 Rails 应用的根目录。

顺便说一句,关于sudo 的一个很好的提示是总是先尝试没有它的命令,然后,如果在运行时出现权限错误,您可能需要sudo。不要默认使用sudo

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,我就是这样解决的。

    如果您使用的是 ZSH 则转到

    配置文件->命令

    并选中“以登录 shell 方式运行命令”并关闭终端。 启动终端并启动bundle install 命令。

    【讨论】:

      【解决方案3】:

      有时上面的答案:

      sudo chown -R $(whoami):$(whoami) myappfolder
      

      会给你错误:

      chown: ifeegoo: illegal group name
      

      你也可以试试这种命令:

      sudo chown -R ifeegoo: /Users/ifeegoo/workspace/rails/Test
      

      【讨论】:

      • 本质上是:sudo chown -R $(whoami): myappfolder
      猜你喜欢
      • 2011-07-16
      • 1970-01-01
      • 2021-03-24
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 2019-11-22
      • 2015-04-04
      • 1970-01-01
      相关资源
      最近更新 更多