При настройке репозиториев на артифактори есть проблема с их подключением в Альте, а именно при выполнении команды: sudo apt-get update получаем ошибку: E: Failed to fetch http://artifactory-ng.infowatch.ru:8081/artifactory/rpm-altlinux-p10-push_stream-test-local/x86_64/base/release The http server sent an invalid reply header E: Some index files failed to download. They have been ignored, or old ones used instead. Проблема заключается в том, что артифактори отдаёт < HTTP/1.1 200 а apt-get ждёт < HTTP/1.1 200 OK Проблема именно в 'OK'(точнее в сообщении которого нет), вот код который это проверяет https://git.altlinux.org/gears/a/apt.git?p=apt.git;a=blob;f=methods/http.cc;h=e285f167fb7fd8976853fb2a233ce412bbb3ddce;hb=39b08d81d1d8aef81e68a288fdcea9951808183c#l537 Может не учитывать Code, зачем он при определении версии HTTP? клиент ДОЛЖЕН игнорировать reason-phrase https://www.rfc-editor.org/rfc/rfc7230#section-3.1.2 The reason-phrase element exists for the sole purpose of providing a textual description associated with the numeric status code, mostly out of deference to earlier Internet application protocols that were more frequently used with interactive text clients. A client SHOULD ignore the reason-phrase content.
Чуть выше в этом же стандарте написано вот так: The first line of a response message is the status-line, consisting of the protocol version, a space (SP), the status code, another space, a possibly empty textual phrase describing the status code, and ending with CRLF. Это значит пробел не опциональный, а опциональна только фраза после него. Получается, apt соблюдает стандарт, а сервер *не* соблюдает. Мне кажется, что вот такой способ и описание более правильные: https://salsa.debian.org/apt-team/apt/-/commit/de2b1358926d293c85277e1d9a58ac94915470ec
apt-0.5.15lorg2-alt87 -> sisyphus: Fri Mar 15 2024 Andrey Cherepanov <cas@altlinux> 0.5.15lorg2-alt87 - Ignore check reason-phrase element in HTTP header (ALT #49694).