いつかcomposer=プロジェクトをアップグレードするためにupdate laravel=プロジェクトを実行すると、コンテンツ長の不一致の例外が発生する可能性があります。中国のファイアウォール:DNSが汚染されていたので、もしあなたが私のような人なら、それを修正するために次のようになるでしょう。
ファーストラン:
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 を参照)。
composerデフォルトのリポジトリURLを変更するだけです:
composer config -g repo.packagist composer https://packagist.org
composer config -g github-protocols https ssh
Httpsのみが使用するpackagistリポジトリを変更または設定します。
これにより、ローカルのcomposer.jsonファイルの問題も修正されます。 composer.jsonファイルをローカルまたはグローバルに変更する必要はありません。
私は同じ問題を抱えていたので、グーグル検索でここに来ました。
ローカルマシンとDockerマシンの両方でcomposerコマンドを実行します。実行中に各マシンでさまざまなエラーが発生しましたcomposer install with Composer Content-Length Mismatch
。
私は私のcomposer.json
推奨されているファイル、それから私は、MacBookが無線LAN接続を失ったことに気付きました。さらに、私は旅行中に貧弱なネットワークにいます。また、composer=はローカルマシンで古くなっていたため、ドッカーを使用していたはずですVMとにかくコマンドを発行します。ワークスペースコンテナは1年間更新されていませんでした。
私はWiFi接続を取り戻し、アップグレードしましたcomposerローカルマシンでcomposerインストールは問題なく実行されました。同様に。
Windowsマシンにlaravel=をインストール中に同じ問題が発生しました。次のコマンドを実行するためにgit bashを使用していました。
composer globalには「laravel/installer =〜1.1」が必要です
私は通常のコマンドプロンプトに切り替えてから、エラーなく動作しました。
私は同じ問題を抱えていました、私は2つのことをしました
最初に更新された作曲家、1.4から1.7に更新
次に、インターネット接続を高速に変更します。
Zlib(1g)をアップグレードするだけで同じ問題を解決しました[deb]
(より正確には、trusty/14.04からxenial/16.04まで、どちらももちろんLTSです;-)
私はそれが古いものであることを知っていますが、今日最初にこの問題に直面しました。
ここでの答えが部分的に助けになるかどうかはわかりませんが、とにかく同じエラーが発生し続けます。
違いは(ただし、偶然かもしれませんが)さらなる試行が部分的に成功しているように見えることです:-既にダウンロードされたJSONがキャッシュから取得されます(キャッシュを今すぐクリアしないこと)-以前に失敗したもののいくつか成功してダウンロードされたもの-その他はまだ失敗しています
私が試み続ければ、最終的にはすべてのJSONファイルをダウンロードできると思います。
問題は、Composerが完全なファイルをダウンロードできないことです(実際には非常に大きいです)。それは私の側からのネットワークの問題ではないと思います:できる限り参照してください、それはいつものようにうまく動作します。
私が理解していないのは、昨日から変更されたもので、Composer=はそのように動作します。Composer、PHPまたは他のものを更新しませんでした。
また、最終的にComposerこれらの巨大なファイルをすべてダウンロードできるようになったとしても、初めてキャッシュをクリアすると、同じ問題に再び直面する可能性が高くなります。
少なくとも私の場合、問題は他の場所にあるのだろうか、私が見つけた答えはすべてここにあり、誰もが問題を解決しているようです:これらのJSONファイルのエラーとクイックダウンロードはもうありません(これは私の場合ではありません) 。