web-dev-qa-db-fra.com

Erreur d'écriture Gemfile.lock, autorisations?

J'ai créé un Rails model "model" il y a quelque temps et maintenant j'essaye d'exécuter le serveur. Après un bundle install Je reçois:

Une erreur s'est produite lors de l'écriture dans Gemfile.lock. Il est probable que vous deviez autoriser l'écriture pour le fichier sur le chemin: /home/thiago/model/Gemfile.lock

A tenté Rails s pour voir ce qui se passe et:

/home/thiago/.rvm/gems/Ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/definition.rb: 235: dans `rescue in lock ': il y avait une erreur lors de l'écriture dans Gemfile.lock. Il est probable que (Bundler :: InstallError) 
 Vous devez autoriser les autorisations d'écriture pour le fichier sur le chemin: 
/Home/thiago/model/Gemfile.lock 
 Depuis/home /thiago/.rvm/gems/Ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/definition.rb:220:in `lock '
 depuis/home/thiago /. rvm/gems/Ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/environment.rb: 34: dans `lock '
 depuis /home/thiago/.rvm/gems/ Ruby-1.9.3-p429/gems/bundler-1.3.5/lib/bundler/runtime.rb: 43: dans `setup '
 À partir de /home/thiago/.rvm/gems/Ruby-1.9. 3-p429/gems/bundler-1.3.5/lib/bundler.rb: 120: dans `setup '
 Depuis /home/thiago/.rvm/gems/Ruby-1.9.3-p429@global/ gems/rubygems-bundler-1.1.1/lib/rubygems-bundler/noexec.rb: 79: dans `setup '
 de /home/thiago/.rvm/gems/Ruby-1.9.3-p429@ global/gems/rubygems-bundler-1.1.1/lib/rubygems-bundler/noexec.rb: 91: dans `` 
 de /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/thi ago/.rvm/rubies/Ruby-1.9.3-p429/lib/Ruby/site_Ruby/1.9.1/rubygems/core_ext/kernel_require.rb: 110: dans `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: dans `require '
 depuis/home/thiago/.rvm/gems/Ruby-1.9.3-p429/bin/Ruby_noexec_wrapper: 9: dans `` 

Puis-je définir les autorisations pour Gemfile.lock afin de pouvoir regrouper et exécuter le serveur?

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

Fichiers de modèle créés incorrectement?

31
jerseybyte

Le répertoire racine de votre application (dont les autorisations régissent la création de fichiers) et les fichiers appartiennent tous à root au lieu de votre utilisateur (peut-être parce que vous avez Sudo Rails new— n'utilisez pas Sudo pour cela). Vous pouvez modifier les autorisations en procédant comme suit:

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

Où "myappfolder" est votre Rails répertoire racine de l'application.

Soit dit en passant, une bonne astuce en ce qui concerne Sudo est de toujours essayer la commande sans elle d'abord, puis, s'il y a une erreur d'autorisation lors de son exécution, vous aurez peut-être besoin de Sudo. N'utilisez pas par défaut Sudo.

67
Andrew Marshall

Parfois, la réponse ci-dessus:

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

vous donnera l'erreur:

chown: ifeegoo: illegal group name

Vous pouvez également essayer ce type de commande:

Sudo chown -R ifeegoo: /Users/ifeegoo/workspace/Rails/Test
0
ifeegoo

J'ai eu le même problème, c'est comme ça que j'ai corrigé le mien.

Si vous utilisez ZSH alors goto

profil -> commande

et cochez "Exécuter la commande en tant que shell de connexion" et fermez le terminal. Lancez votre terminal et lancez bundle install commande.

0
Touseef Murtaza