Help us understand the problem. What is going on with this article?

composer で Could not delete エラーで先に進めなくなった場合の対処法

More than 3 years have passed since last update.


composer installCould not delete というエラーで先に進めなくなった場合の対処とその原因について説明します。


composer install で下記のようなエラーで中断してしまうことがあります。

  Could not delete /var/www/html/php-csv-file-iterator/vendor/phpoffice/phpexcel/.git/objects/pack/tmp_pack_Z4npdu:

sudo rm /var/www/html/php-csv-file-iterator/vendor/phpoffice/phpexcel/.git/objects/pack/tmp_pack_Z4npdu をしても Text file busy と言われて消すことも出来ません。


前述の例でいえば、phpexcel を clone 中に composer がタイムアウトした可能性が高いです。
裏ではまだ git clone が動いているのでディレクトリは消せず、エラーとなっています。

試しに、ps aux | grep git を実行してみると composer は終了しているのにプロセスが生きていることが判ると思います。

vagrant  16169  0.3  0.1  16220  1580 pts/2    S    14:59   0:01 git clone --no-checkout git:// /var/www/html/php-csv-file-iterator/vendor/phpoffice/phpexcel
vagrant  16170  0.5  0.0  16220   516 pts/2    S    14:59   0:01 git clone --no-checkout git:// /var/www/html/php-csv-file-iterator/vendor/phpoffice/phpexcel
vagrant  16171  2.2  0.2  11552  2424 pts/2    S    14:59   0:07 git index-pack --stdin --fix-thin --keep=fetch-pack 16169 on localhost.localdomain
vagrant  16201  0.0  0.0 103240   868 pts/2    S+   15:04   0:00 grep git

このプロセスを kill 16169 で終了させれば composer は無事にディレクトリを消せるようになります。


composer のタイムアウト時間を伸ばす

タイムアウトのデフォルトは 300 秒 (5分) です。
vi ~/.composer/config.json で設定ファイルを開き、下記のように "process-timeout": 1200 を書き加えます。
こうすることでタイムアウト時間は 20 分にまで延長されます。

    "config": {
        "process-timeout": 1200



composer install の前に実行しても構いません。


これで再度 composer install を実行すれば大丈夫なはず。

ただし、なんらかの原因で ~/.composer/cache が壊れてしまっていて、再実行もエラーになることがあるようです。
その場合には、 rm -rf ~/.composer/cache composer clear-cache を実行してから、改めて composer install を実行すれば大丈夫です。(2016-02-16 sizuhiko さんの指摘で修正)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away