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