Подтвердить что ты не робот

Несоответствие длины контента композитора

Когда-то, когда я запускаю обновление для композитора для обновления проекта laravel, может возникнуть исключение несоответствия длины содержимого. Наконец, я понимаю, что это ужасный брандмауэр в Китае: DNS был отравлен. Итак, если вы такой, как я, может быть следующим, чтобы исправить это.

4b9b3361

Ответ 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

это может привести к такому:

enter image description here

но после этого он автоматически продолжит и загрузит

Ответ 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 (что не является моим случаем),