web-dev-qa-db-fra.com

sudo composer installer vs composer installer

Je cours Sudo composer install J'ai reçu cet avertissement

Ne pas exécuter Composer en tant que root/super utilisateur! Voir https://getcomposer.org/root pour plus de détails

J'ai essayé juste composer install J'ai eu cette erreur

[ErrorException] file_put_contents (/Applications/MAMP/htdocs/code/bheng/vendor/composer/installed.json): échec d pour ouvrir le flux: autorisation refusée

Voici les autorisations actuellement définies sur mon dossier Laravel

total 1872
-rw-r--r--   1 bheng  staff     777 Feb 27 20:18 phpunit.xml
-rw-r--r--   1 bheng  staff      87 Feb 27 20:18 phpspec.yml
-rw-r--r--   1 bheng  staff     481 Feb 27 20:18 package.json
drwxr-xr-x   3 bheng  staff     102 Feb 27 20:18 note
-rw-r--r--   1 bheng  staff     967 Feb 27 20:18 md-bheng-readme.txt
-rw-r--r--   1 bheng  staff     503 Feb 27 20:18 gulpfile.js
-rw-r--r--   1 bheng  staff      26 Feb 27 20:18 contributors.txt
-rw-r--r--   1 bheng  staff    1635 Feb 27 20:18 artisan
-rw-r--r--   1 bheng  staff      43 Feb 27 20:18 Procfile
-rw-r--r--   1 bheng  staff    5634 Feb 27 20:18 Gruntfile.js
drwxr-xr-x   4 bheng  staff     136 Feb 27 20:18 tests
drwxr-xr-x   5 bheng  staff     170 Feb 27 20:18 storage
drwxr-xr-x   4 bheng  staff     136 Feb 27 20:18 sql
-rw-r--r--   1 bheng  staff     560 Feb 27 20:18 server.php
drwxr-xr-x   5 bheng  staff     170 Feb 27 20:18 resources
-rw-r--r--   1 bheng  staff     105 Feb 27 20:18 pull.sh
drwxr-xr-x   7 bheng  staff     238 Mar  1 14:46 bootstrap
-rw-r--r--@  1 bheng  staff       0 Mar  1 14:46 Icon?
drwxr-xr-x  22 bheng  staff     748 Mar  2 11:47 app
drwxrwxrwx@ 27 bheng  staff     918 Mar  3 14:55 public
drwxr-xr-x   8 bheng  staff     272 Mar  6 13:25 database
-rw-------@  1 bheng  staff     405 Mar 14 09:29 id_rsa.pub
-rw-------   1 bheng  staff    1766 Mar 14 09:29 id_rsa
-rw-r--r--   1 bheng  staff  126713 Mar 14 10:00 composer.lock
drwxr-xr-x  18 bheng  staff     612 Mar 28 21:24 config
-rw-r--r--   1 bheng  staff    1022 Mar 30 12:21 composer.json
drwxr-xr-x  32 bheng  staff    1088 Mar 30 12:21 vendor

Voici ce que contient mon composer.json

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
    "laravel/framework": "5.1.0",
    "intervention/image": "^2.3",
    "laravelcollective/remote": "5.1.*",
    "doctrine/dbal": "^2.3",
    "league/flysystem-sftp": "^1.0"
    },
    "require-dev": {
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1"
        },
        "autoload": {
            "classmap": [ "database" ],

            "psr-4": {
                "App\\": "app/"
            }
            },
            "autoload-dev": {
                "classmap": [
                "tests/TestCase.php"
                ]
                },
                "scripts": {
                    "post-install-cmd": [
                    "php artisan clear-compiled",
                    "php artisan optimize"
                    ],
                    "post-update-cmd": [
                    "php artisan clear-compiled",
                    "php artisan optimize"
                    ],
                    "post-create-project-cmd": [
                    "php -r \"copy('.env.example', '.env');\"",
                    "php artisan key:generate"
                    ]
                    },
                    "config": {
                        "preferred-install": "dist"
                    }
                }

Comment puis-je résoudre ce problème? Dois-je modifier des dossiers?

7
cyber8200

Supprimez votre répertoire de fournisseurs et exécutez composer install encore.

Vous obtenez l'erreur d'autorisation refusée car le fichier a été créé par root lorsque vous avez exécuté Sudo composer install, alors maintenant, lorsque vous exécutez composer install votre utilisateur n'est pas autorisé à modifier ce fichier.

Mise à jour:

Si vous travaillez dans une racine de document en direct (vous ne devriez pas - lire sur déploiement atomique ), vous pouvez essayer chown sur le répertoire du fournisseur et son contenu pour éviter tout temps d'arrêt entre la suppression et la relance composer install:

$ Sudo chown -R myuser: vendor/

Remplacez myuser par votre nom d'utilisateur.

8
Andy