Gemfile.lock write error, permissions?

41,039

Solution 1

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 sudo for that). You can change the permissions by doing:

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

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

By the way, a good tip with regard to sudo is 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.

Solution 2

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
Share:
41,039
jerseybyte
Author by

jerseybyte

Updated on June 30, 2020

Comments

  • jerseybyte
    jerseybyte almost 4 years

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

    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

    Tried rails s to see what happens and:

    /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?

    $ 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?