web-dev-qa-db-ja.com

Composer Content-Length Mismatch

いつかcomposer=プロジェクトをアップグレードするためにupdate laravel=プロジェクトを実行すると、コンテンツ長の不一致の例外が発生する可能性があります。中国のファイアウォール:DNSが汚染されていたので、もしあなたが私のような人なら、それを修正するために次のようになるでしょう。

18
Alex Chiang

ファーストラン:

composer config --list --global          //this will get the composer home path.
[home] /root/.composer                   //it's my composer home path.

そして、config.jsonを編集して、次のようにします。

{
  "config": {
    "github-protocols": [
      "https"
    ]
  },
  "repositories": {
    "packagist.org": {
      "type": "composer",
      "url": "https://packagist.org"
    }
  }
}

これにより、packagist接続が強制的にhttpsになります。また、プロジェクトでcomposer.jsonを設定することもできます。これはlaravelサンプルは次のようになります。

{
  "name": "laravel/laravel",
  "description": "The Laravel Framework.",
  "keywords": [
    "framework",
    "laravel"
  ],
  "license": "MIT",
  "type": "project",
  "require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*"
  },
  "config": {
    "preferred-install": "dist"
  },
  "repositories": {
    "packagist.org": {
      "type": "composer",
      "url": "https://packagist.org"
    }
  }
}

更新

以前Composerv1.2.3packagistのリポジトリキーは"packagist"でした。v1.2.3"packagist.org"に変更されました(commit e38ebef を参照)。

49
Alex Chiang

composerデフォルトのリポジトリURLを変更するだけです:

composer config -g repo.packagist composer https://packagist.org
composer config -g github-protocols https ssh

Httpsのみが使用するpackagistリポジトリを変更または設定します。

これにより、ローカルのcomposer.jsonファイルの問題も修正されます。 composer.jsonファイルをローカルまたはグローバルに変更する必要はありません。

13
macbert

私は同じ問題を抱えていたので、グーグル検索でここに来ました。

ローカルマシンとDockerマシンの両方でcomposerコマンドを実行します。実行中に各マシンでさまざまなエラーが発生しましたcomposer install with Composer Content-Length Mismatch

私は私のcomposer.json推奨されているファイル、それから私は、MacBookが無線LAN接続を失ったことに気付きました。さらに、私は旅行中に貧弱なネットワークにいます。また、composer=はローカルマシンで古くなっていたため、ドッカーを使用していたはずですVMとにかくコマンドを発行します。ワークスペースコンテナは1年間更新されていませんでした。

私はWiFi接続を取り戻し、アップグレードしましたcomposerローカルマシンでcomposerインストールは問題なく実行されました。同様に。

1
Iannazzi

Windowsマシンにlaravel=をインストール中に同じ問題が発生しました。次のコマンドを実行するためにgit bashを使用していました。

composer globalには「laravel/installer =〜1.1」が必要です

私は通常のコマンドプロンプトに切り替えてから、エラーなく動作しました。

0

私は同じ問題を抱えていました、私は2つのことをしました

最初に更新された作曲家、1.4から1.7に更新

次に、インターネット接続を高速に変更します。

0
sradha

Zlib(1g)をアップグレードするだけで同じ問題を解決しました[deb]

(より正確には、trusty/14.04からxenial/16.04まで、どちらももちろんLTSです;-)

0
Val Libre

私はそれが古いものであることを知っていますが、今日最初にこの問題に直面しました。

ここでの答えが部分的に助けになるかどうかはわかりませんが、とにかく同じエラーが発生し続けます。

違いは(ただし、偶然かもしれませんが)さらなる試行が部分的に成功しているように見えることです:-既にダウンロードされたJSONがキャッシュから取得されます(キャッシュを今すぐクリアしないこと)-以前に失敗したもののいくつか成功してダウンロードされたもの-その他はまだ失敗しています

私が試み続ければ、最終的にはすべてのJSONファイルをダウンロードできると思います。

問題は、Composerが完全なファイルをダウンロードできないことです(実際には非常に大きいです)。それは私の側からのネットワークの問題ではないと思います:できる限り参照してください、それはいつものようにうまく動作します。

私が理解していないのは、昨日から変更されたもので、Composer=はそのように動作します。Composer、PHPまたは他のものを更新しませんでした。

また、最終的にComposerこれらの巨大なファイルをすべてダウンロードできるようになったとしても、初めてキャッシュをクリアすると、同じ問題に再び直面する可能性が高くなります。

少なくとも私の場合、問題は他の場所にあるのだろうか、私が見つけた答えはすべてここにあり、誰もが問題を解決しているようです:これらのJSONファイルのエラーとクイックダウンロードはもうありません(これは私の場合ではありません) 。

0

Githubソースに基づいたいくつかの同じ問題がありました

composer self-update --snapshot

これにより、これが生成される場合があります。

enter image description here

しかし、その後、自動的に進行してダウンロードします

0
Sofia Mallari