2017-01-13 17 views
-1

プロダクションサーバーの依存関係を更新するためにコンポーザーのインストールを実行しようとしていますが、引き続き次のエラーが発生します(これはLaravel Forgeが展開したサーバーで発生します)。Composerのインストールでファイルを削除できません

Loading composer repositories with package information 
Installing dependencies from lock file 
Package operations: 0 installs, 0 updates, 24 removals 
    - Removing symfony/dom-crawler (v3.2.1) 

[RuntimeException] 
Could not delete /home/forge/website.com/vendor/symfony/dom-crawler/composer.json: 

どうしてですか?偽造サーバー上のベンダフォルダ全体を手作業で削除し、依存関係を壊さずに再デプロイできますか?

答えて

0

Here in laracastsを議論しています。たぶん、ある時点でsudoを使用していて、ファイルは現在rootによって所有されています。通常、この操作に別のユーザーを使用して、もう一度そのユーザーを使用すると、もちろんファイルを削除することはできません。

したがって、ユーザー/グループがファイルを所有しているかを確認するために

ls -l /home/forge/website.com/vendor/symfony/dom-crawler/composer.json 

を試してみてください。また、そのディレクトリのアクセス許可を確認してください。多分それはもはや書き込み可能ではないでしょうか?

+0

これは問題のようです。私は 'sudo'を使ってベンダーフォルダ内のファイルを削除しなければなりませんでした。 – user3691644

0

問題は、コンポーザーがタイムアウトしている可能性があります。だから、作曲家の時間を増やす必要があるかもしれません。

あなたは、いくつかの速度を得るために、以下の措置取ることができる:

  1. 増加作曲・プロセス・タイムアウト(デフォルト300)(以下の設定を使用して、スピードを得るのに役立ちますが、傷つけることができない場合は、本当に必要とされていません)
  2. 推奨インストールタイプとしてdistを設定します。
  3. githubのhttpsプロトコルを有効にします。これは高速です。

    ~/.composer/config.json 
        { 
         "config": { 
           "process-timeout":  600, 
           "preferred-install": "dist", 
           "github-protocols":  ["https"] 
           } 
           } 
    

あなたはまだその後に問題が発生した場合は、明確な作曲家のキャッシュすることができます:

rm -rf ~/.composer/cache 

また、あなたはgitのを更新してみてくださいを。

同様の質問は、それは権限の問題かもしれません

+0

私はタイムアウトとは思わない。あなたが提供したリンクは、権限を参照する別のエラーメッセージを持っているようです。このエラーメッセージは、300秒後ではなく直ちに生成されます。私は影響を与えずにコンポーザーのキャッシュも削除しました。問題を起こさずに 'rm -rf vendor'を実行できますか? – user3691644

+0

結局、私は 'rm -rf vendor 'を実行し、' composer install'を実行して問題を解決しました。 – user3691644

+0

それがうまく解決すれば、答えを受け入れることができます!誰かが何をすべきかを簡単に理解することができます! – HelpingHand

関連する問題