J'ai un Vagrant sous Linux et j'essaie d'installer Symfony.
Après la commande composer create-project symfony/framework-standard-edition ./ "2.5.*"
j'ai l'erreur:
[RuntimeException]
Could not delete ./.git/objects/pack/tmp_idx_llwUKb:
Si j'essaie de mettre à jour le compositeur d'un autre projet, j'ai toujours ce genre d'erreur Could not delete
Des idées?
Edit: Pour un simple Sudo composer update -vvv
sur un autre projet:
- Installing sonata-project/admin-bundle (dev-master 8a022aa)
Failed to download sonata-project/admin-bundle from source: Could not delete /vagrant/crm_neo/vendor/sonata-project/admin-bundle/.git/objects/pack/tmp_idx_hchQhc:
Now trying to download from dist
- Installing sonata-project/admin-bundle (dev-master 8a022aa)
Failed: [RuntimeException] Could not delete /vagrant/crm_neo/vendor/sonata-project/admin-bundle/.git/objects/pack/tmp_idx_hchQhc:
[RuntimeException]
Could not delete /vagrant/crm_neo/vendor/sonata-project/admin-bundle/.git/o
bjects/pack/tmp_idx_hchQhc:
Exception trace:
() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:193
Composer\Util\Filesystem->unlink() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:151
Composer\Util\Filesystem->removeDirectoryPhp() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:129
Composer\Util\Filesystem->removeDirectory() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:35
Composer\Util\Filesystem->remove() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:80
Composer\Util\Filesystem->emptyDirectory() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:108
Composer\Downloader\FileDownloader->doDownload() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:89
Composer\Downloader\FileDownloader->download() at phar:///usr/local/bin/composer/src/Composer/Downloader/ArchiveDownloader.php:35
Composer\Downloader\ArchiveDownloader->download() at phar:///usr/local/bin/composer/src/Composer/Downloader/DownloadManager.php:201
Composer\Downloader\DownloadManager->download() at phar:///usr/local/bin/composer/src/Composer/Installer/LibraryInstaller.php:156
Composer\Installer\LibraryInstaller->installCode() at phar:///usr/local/bin/composer/src/Composer/Installer/LibraryInstaller.php:87
Composer\Installer\LibraryInstaller->install() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:152
Composer\Installer\InstallationManager->install() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:139
Composer\Installer\InstallationManager->execute() at phar:///usr/local/bin/composer/src/Composer/Installer.php:548
Composer\Installer->doInstall() at phar:///usr/local/bin/composer/src/Composer/Installer.php:217
Composer\Installer->run() at phar:///usr/local/bin/composer/src/Composer/Command/UpdateCommand.php:128
Composer\Command\UpdateCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:252
Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:889
Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:193
Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:135
Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:124
Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:84
Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:43
require() at /usr/local/bin/composer:15
Cela m'est arrivé une fois et il s'est avéré que j'étais en retard sur le compositeur.
Vous pouvez prendre les mesures suivantes pour gagner du temps:
dist
comme type d'installation préféré.https
pour github, ce qui est plus rapide.~/.composer/config.json
{
"config": {
"process-timeout": 600,
"preferred-install": "dist",
"github-protocols": ["https"]
}
}
Si vous avez toujours des problèmes après cela, vous pouvez également vider le cache du compositeur:
rm -rf ~/.composer/cache
Juste courir
Sudo chmod -R 777 /folder/path
Cela vous donnera un accès en écriture au dossier dans lequel vous exécutez composer . Je sais que ceci est un ancien post, mais cela fonctionne donc je dois le partager.
J'ai eu ce problème lors de la mise en service de la machine, qui a été démarrée pour exécuter composer install
. J'ai simplement quitté le VM et ai exécuté composer install
sur le code de mon ordinateur hôte et cela a fonctionné.
Ainsi, si vous rencontrez ce problème lorsque vous exécutez Composer à l'intérieur de la VM , essayez simplement d'exécuter Composer de l'extérieur du VM .
Mise à jour: Comme indiqué dans les commentaires ci-dessous, cela peut poser quelques problèmes avec différentes versions de paquets en cours d'installation en raison des différences de configuration système entre les environnements local et Vagrant;.
Nous rencontrons des problèmes également. Plusieurs personnes semblent avoir ce problème, aucun correctif n’a été fourni. Pour plus d'informations, vous pouvez consulter/ problèmes github de vagrant-winnfsd.
Je viens d'avoir le même problème.
Je vois le problème en accédant à certains fichiers locaux. Dans mon cas, le répertoire cible était sous "root" et je ne suis pas l'utilisateur root.
Solution
Modifiez les autorisations/le propriétaire de votre fichier/répertoire.
1. Redéfinir le propriétaire:
Sudo chown myuser:myuser -R /path/to
2. Peut-être existe-t-il un manque d'autorisations pour le groupe dans lequel vous vous trouvez.
Alors, essayez de lancer:
Sudo chmod g+rwX -R /path/to
Ou peut-être pouvez-vous exécuter votre commande avec "Sudo" si cela fonctionne pour vous (non recommandé). :)
P.S. Ne jamais utiliser 777 . Ce n'est pas sécurisé.
Dans mon cas, j’essayais composer update
mais j’ai eu
[RuntimeException] Impossible de supprimer .../vendor/bin/php-parse:
Bien que j'utilise le cadre Laravel, cette question était le premier lien de Google. J'ai donc décidé de poster une réponse.
Ma solution a été d’accorder la propriété pour vendor
: Sudo chown -R $USER:www-data vendor/
etSudo chown -R $USER:www-data composer.json
Cela a quelque chose à voir avec la synchronisation des dossiers entre les systèmes d'exploitation hôte et invité, le dossier peut simplement être temporairement verrouillé à partir de votre ordinateur hôte.
La solution consiste simplement à supprimer le dossier .git
incriminé de votre système d'exploitation hôte ou à redémarrer l'ordinateur et à relancer composer install
.
Idéalement, chaque système d'exploitation a ses propres dépendances et différents fichiers binaires. Par conséquent, vous devez isoler votre dossier /vendor
du partage de dossier rsync/vagrant. De même, vous feriez de même avec /node_modules
sur un projet Nodejs.
Une autre chose à vérifier, Composer doit être exécuté dans le contexte d'un répertoire pour lequel il dispose d'autorisations.
Dans mon cas, j'essayais d'émettre une commande create-project à partir de/var/www, destinée à/var/www/html./var/www appartient à root,/var/www/html appartient au même utilisateur que j'ai exécuté Composer en tant que (www-data). J'ai eu l'erreur suivante; Impossible de supprimer/var/www/html /:
Émis la même commande Composer depuis/var/www/html lui-même et cela fonctionnait parfaitement.
Dans mon cas, en supprimant le plugin et en recréant la boîte, résolvez le problème.
Sur AWS, cette erreur s'est produite lors du déploiement du projet d'infrastructure Yii.
/ var/app/current/vendor /
dossier j'ai tout supprimé à l'intérieur, il est revenu à la racine de mon document et a lancé la mise à jour du compositeur, il a récupéré tous les dépôts.
Wow, je ne peux pas croire combien de temps il m'a fallu pour réaliser cela, et malheureusement, cela s'est passé plusieurs fois, et j'écris enfin cette note pour que moi et les autres puissent récupérer rapidement la prochaine fois.
Utilisez simplement l'Explorateur Windows pour supprimer le dossier /vendor/whatever_project_name
au lieu d'essayer de le supprimer de la ligne de commande Vagrant.
Ensuite, exécutez composer update
pour réinstaller les dépendances.
Pour moi, c'est causé par le délai d'attente du compositeur . J'ai vérifié ma vitesse d'Internet et je l'ai trouvée réduite à 0,7 M, ce qui est presque inutilisable. Après avoir reconnecté le wifi et retrouvé la vitesse de ma connexion Internet, les erreurs ont disparu.
Pour moi, cela a aidé à installer une (nouvelle) version via la ligne de commande à partir de la page d'accueil du téléchargement https://getcomposer.org/download/ . Je peux exclure certaines autorisations de fichier car j'étais root avec chmod + R 0777, même si j'avais un lecteur monté sur virtualbox. Quoi qu’il en soit, depuis que la nouvelle version a fonctionné, cela signifierait qu’il s’agissait d’une version ou d’exécuter une nouvelle version via php phar, et que le bac original appartenait à la racine.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"