Когда-то, когда я запускаю обновление для композитора для обновления проекта laravel, может возникнуть исключение несоответствия длины содержимого. Наконец, я понимаю, что это ужасный брандмауэр в Китае: DNS был отравлен. Итак, если вы такой, как я, может быть следующим, чтобы исправить это.
Несоответствие длины контента композитора
Ответ 1
Первый забег:
composer config --list --global //this will get the composer home path.
[home] /root/.composer //it my composer home path.
А затем отредактируйте config.json, сделайте так:
{
"config": {
"github-protocols": [
"https"
]
},
"repositories": {
"packagist.org": {
"type": "composer",
"url": "https://packagist.org"
}
}
}
Это создаст соединение через пакет 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"
}
}
}
Обновить
До Composer v1.2.3 ключ хранилища для packagist был "packagist"
. В версии 1.2.3 он был изменен на "packagist.org"
(см. Commit e38ebef).
Ответ 2
Просто измените URL репо по умолчанию для композитора:
composer config -g repo.packagist composer https://packagist.org
composer config -g github-protocols https ssh
Он изменяет или устанавливает репозиторий Packagist, который будет использоваться только https.
Это также устраняет любые проблемы с локальными файлами composer.json. Нет необходимости возиться с файлом composer.json локально или глобально.
Ответ 3
У меня была такая же проблема, поэтому я пришел сюда, хотя и искал Google.
Я запускаю команды композитора как на моем локальном компьютере, так и на докерной машине. Я получил множество ошибок на каждой машине при запуске установки композитора, включая Composer Content-Length Mismatch
.
Я начал общаться с моим файлом composer.json
, как рекомендовано, тогда я понял, что macbook потерял его соединение с Wi-Fi, как будто он любит делать. Кроме того, я нахожусь в плохой сети, поскольку я путешествую. Я также был предупрежден, что мой композитор устарел на моей локальной машине, и я должен был использовать мою докерную VM для выдачи команд в любом случае. Контейнер рабочей области докеры не обновлялся в течение года.
Я получил wifi-соединение назад, обновленный композитор на моей локальной машине и установке композитора прошел нормально. Я предполагаю, что я обновляю конфигурацию докеров, и она там тоже будет работать.
Ответ 4
У меня была такая же проблема при установке laravel на моем компьютере с Windows, я использовал git bash для запуска следующей команды.
композитор global требует "laravel/installer = ~ 1.1"
Я переключился на обычное командное приглашение, после чего он работал без ошибок.
Ответ 5
Были те же проблемы, основанные на источнике Github, вы также можете использовать
composer self-update --snapshot
это может привести к такому:
но после этого он автоматически продолжит и загрузит
Ответ 6
У меня была та же проблема, я сделал две вещи
первый обновленный композитор, это было 1.4 обновлено до 1.7
во-вторых, измените интернет-соединение на высокую скорость.
Ответ 7
Решил ту же проблему, просто обновив zlib (1g) [deb]
(точнее, от trusty/14.04 до xenial/16.04, оба, конечно, LTS ;-)
Ответ 8
Иногда Вам также следует сменить интернет-провайдера.
Ответ 9
Я знаю, что старый, но я столкнулся с этой проблемой впервые сегодня.
Я не уверен, что ответ здесь частично помогает или нет, но я все равно получаю те же ошибки.
Разница (хотя, опять же, это может быть просто совпадением) заключается в том, что дальнейшие попытки кажутся частично успешными: - уже загруженный JSON извлекается из кеша (я не смею сейчас очищать кеш) - некоторые из ранее неудачных попыток одни загружаются с успехом - другие по-прежнему не работают
Я полагаю, что если я продолжу пытаться, мне в итоге удастся загрузить все файлы JSON.
Понятно, что проблема в том, что Composer не может загрузить полный файл (который действительно довольно большой). Я не думаю, что это проблема сети с моей стороны: насколько я вижу, она работает просто отлично, как и всегда.
Что я не понимаю, так это то, что со вчерашнего дня изменилось поведение Composer: я не обновлял Composer, PHP или другие вещи.
Кроме того, даже если предположить, что мне в конечном итоге удастся разрешить Composer загрузить все эти огромные файлы, при первой очистке кэша я, скорее всего, снова столкнусь с той же проблемой.
Интересно, если, по крайней мере, в моем случае, проблема в другом месте, потому что все ответы, которые я мог найти, указывают здесь, и все, кажется, решают проблему: больше нет ошибок и быстрых загрузок этих файлов JSON (что не является моим случаем),