Linux Gemfile.lock 写错误,权限?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/17519090/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-07 00:11:00  来源:igfitidea点击:

Gemfile.lock write error, permissions?

rubylinuxbundler

提问by jerseybyte

I created a Rails model "model" a while ago and now I'm trying to run the server. After a bundle installI get:

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

There was an error while trying to write to Gemfile.lock. It is likely that you need to allow write permissions for the file at path: /home/thiago/model/Gemfile.lock

尝试写入 Gemfile.lock 时出错。您可能需要为路径中的文件授予写权限:/home/thiago/model/Gemfile.lock

Tried rails sto see what happens and:

试图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': There was an error while trying to write to Gemfile.lock. It is likely that  (Bundler::InstallError)
you need to allow write permissions for the file at path: 
/home/thiago/model/Gemfile.lock
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/definition.rb:220:in `lock'
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/environment.rb:34:in `lock'
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/runtime.rb:43:in `setup'
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429@global/gems/rubygems-bundler-1.1.1/lib/rubygems-bundler/noexec.rb:79:in `setup'
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429@global/gems/rubygems-bundler-1.1.1/lib/rubygems-bundler/noexec.rb:91:in `'
  from /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'
  from /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'
  from /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'
  from /home/thiago/.rvm/gems/ruby-1.9.3-p429/bin/ruby_noexec_wrapper:9:in `'

Can I set the permissions for the Gemfile.lock so I can bundle and run server?

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

$ ls -a -l
total 80
drwxr-xr-x. 13 root   root   4096 May 19 14:08 .
drwx------. 41 thiago thiago 4096 Jul  7 23:51 ..
drwxr-xr-x.  8 root   root   4096 May 19 14:08 app
drwxr-xr-x.  5 root   root   4096 May 19 14:08 config
-rw-r--r--.  1 root   root    155 May 19 14:08 config.ru
drwxr-xr-x.  2 root   root   4096 May 19 14:08 db
drwxr-xr-x.  2 root   root   4096 May 19 14:08 doc
-rw-r--r--.  1 root   root    765 May 19 14:08 Gemfile
-rw-r--r--.  1 root   root    430 May 19 14:08 .gitignore
drwxr-xr-x.  4 root   root   4096 May 19 14:08 lib
drwxr-xr-x.  2 root   root   4096 May 19 14:08 log
drwxr-xr-x.  2 root   root   4096 May 19 14:08 public
-rw-r--r--.  1 root   root    270 May 19 14:08 Rakefile
-rw-r--r--.  1 root   root   9208 May 19 14:08 README.rdoc
drwxr-xr-x.  2 root   root   4096 May 19 14:08 script
drwxr-xr-x.  7 root   root   4096 May 19 14:08 test
drwxr-xr-x.  3 root   root   4096 May 19 14:08 tmp
drwxr-xr-x.  4 root   root   4096 May 19 14:08 vendor

Model files created incorrectly?

模型文件创建不正确?

采纳答案by Andrew Marshall

Your app root directory (whose permissions govern file creation) and files are all owned by root instead of your user (possibly because you did sudo rails new—don't use sudofor that). You can change the permissions by doing:

您的应用程序根目录(其权限管理文件创建)和文件都归 root 而不是您的用户所有(可能是因为您这样做了 -sudo rails new不要sudo用于那个)。您可以通过执行以下操作来更改权限:

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

Where “myappfolder” is your Rails app's root directory.

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

By the way, a good tip with regard to sudois to always try the command without it first, then, if there's a permissions error when it runs, you may need sudo. Don't default to using sudo.

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

回答by Touseef Murtaza

I had the same issue, that's how i fixed mine.

我有同样的问题,这就是我修复我的方法。

If you are using ZSHthen goto

如果您使用的是ZSH,则转到

profile -> command

配置文件 -> 命令

and check "Run command as a login shell" and close the terminal. Fire up your terminal and initiate bundle installcommand.

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

回答by ifeegoo

Sometimes the above answer:

有时上面的答案是:

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

will give you the error:

会给你错误:

chown: ifeegoo: illegal group name

You can also try this kind of command:

你也可以试试这样的命令:

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