LINUX.ORG.RU

Пересобрать пакеты под устаревшую систему - debian 8 (jessie)

 , ,


0

1

Всем привет!

Решил перенести свои старые проекты на новый сервер. Используется старая версия php 5.4, но завернутая в докер-контейнер. Хочу пересобрать образ, но не получается: пакеты не ставятся.

Вот минимальный Dockerfile:

FROM php:5.4-fpm
RUN apt-get update
RUN apt-get install -y libjpeg-dev libpng++-dev libfreetype6-dev

На apt-get update ругается так:

W: GPG error: http://security.debian.org jessie/updates InRelease: The following signatures were invalid: KEYEXPIRED 1668892417 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AA8E81B4331F7F50
W: GPG error: http://httpredir.debian.org jessie-updates InRelease: The following signatures were invalid: KEYEXPIRED 1668891673
W: GPG error: http://httpredir.debian.org jessie Release: The following signatures were invalid: KEYEXPIRED 1668891673

А на вторую команду так:

WARNING: The following packages cannot be authenticated!
  zlib1g libpng12-0 libfreetype6 zlib1g-dev libpng12-dev libfreetype6-dev libjpeg62-turbo libjpeg62-turbo-dev libjpeg-dev
  libpng++-dev
E: There are problems and -y was used without --force-yes

Если использовать --force-yes, пакеты ставятся. Но это неправильно.

Я понимаю, почему подпись просрочена, а репо переехал.

Вот тут советуют поправить sources.list и поставить Acquire::Check-Valid-Until "false";.

Но это не работает. Да и тоже неправильно - репо снова переедет или его прикончат окончательно.

Поэтому вопрос такой: где найти сорцы пакетов libjpeg-dev libpng++-dev libfreetype6-dev, какую версию среди них выбрать и как все это дело собрать? Может быть найти один какой-то Makefile от Debian где эту информацию вытащить?

OS: Debian GNU/Linux 8 (jessie)

PS. Сделать из работающего контейнера образ, и использовать уже его - не предлагать.


Попробуй [check-valid-until=no] заменить на [trusted=yes]. Это помогает, если репозиторий вообще не подписан – возможно и с истёкшим ключём поможет (но точно я не помню).

apt_install_lrzsz ★★★
()

Вот тут советуют поправить sources.list и поставить Acquire::Check-Valid-Until «false»;.

Но это не работает. Да и тоже неправильно - репо снова переедет или его прикончат окончательно.

Репу в любом случае прикончат. Делай зеркало, пока живо, если у тебя всё настолько плохо.

PS. Сделать из работающего контейнера образ, и использовать уже его - не предлагать.

А это твой единственный путь. Ещё есть путь не сидеть на протухшем, но ты отрицаешь это. 2-3 года отставания ещё можно как-то понять, но 8 лет - нет.

Ну и минимально нормальный путь - сбандлить всё сразу, избавившись от внешних зависимостей. Это также отрицается тобой.

jsforever
()
Ответ на: комментарий от jsforever

Ещё есть путь не сидеть на протухшем, но ты отрицаешь это

Это старые сайты. Прибить жалко. Возиться с переписыванием на новую пыху - не буду.

сбандлить всё сразу, избавившись от внешних зависимостей. Это также отрицается тобой.

Нет, не отрицается. Я спрашиваю - как сделать? Что прописать себе в Dockerfile, чтобы нужные пакеты собирались? Что-то похожее:

git clone ...
cd lib...
make
make install
nodejs
() автор топика
Ответ на: комментарий от koxoho4192

Спасибо, но нет. Вопрос общий - как найти сорцы пакета под конкретную версию дисра. Где-то же это прописано. И более частный - сделать это для нужных мне трех.

nodejs
() автор топика
Ответ на: комментарий от nodejs

Это старые сайты. Прибить жалко. Возиться с переписыванием на новую пыху - не буду.

Это в целом понятно. Я не имел дело с пхп, но есть какие-то серьёзные проблемы собрать старый пхп под новую систему? С либами та же история. Где взять - хоть с той же старой репы(срц там есть, если не прибили ещё), хоть с апстрима(https://github.com/libjpeg-turbo/libjpeg-turbo - это либжпег) - откуда угодно. Ну и да, варианты с минимальными усилиями уже были озвучены - образ либо локальное зеркало репы.

Нет, не отрицается. Я спрашиваю - как сделать? Что прописать себе в Dockerfile, чтобы нужные пакеты собирались? Что-то похожее:

Что прописать ты можешь узнать из того же гита(https://github.com/libjpeg-turbo/libjpeg-turbo/blob/main/BUILDING.md - либжпег). git clone только в докер не прописывай, а то потом опять отвалиться как и apt-get install.

jsforever
()

До середины 2025 года для Jessie есть ELTS здесь: https://www.freexian.com/lts/extended/docs/debian-8-support/ и с инструкцией: https://www.freexian.com/lts/extended/docs/how-to-use-extended-lts/

Там же есть ссылка на полный репозиторий, подписанный фриксианцами (просят много оттуда не качать). Наверное до 2025 года будет работать.

А если он тебе нужен вечно, и неважно что без поддержки, то сделай зеркало и переподпиши своей собственной подписью.

TeopeTuK ★★★★★
()
Ответ на: комментарий от jsforever

Репу в любом случае прикончат

Debian? Ни в коем случае. У них огромнейший архив абсолютно всего за всё существование проекта. Сам позавчера ставил Wheezy: за исключением просроченных ключей - абсолютно все пакеты присутствуют.

token_polyak ★★★★★
()
Ответ на: комментарий от token_polyak

Отдельные пакеты не подписаны. В файле Release содержатся хеши всяких вспомогательных файлов типа main/binary-amd64/Packages, а уже в этом файле информация об отдельных пакетах с их хешами.

TeopeTuK ★★★★★
()
Ответ на: комментарий от token_polyak

Так логично всё, с файлов берутся хеши помещаются в другой файл, он то и подписывается. Хеши «гарантируют» что файл именно тот информация о котором записана в packages.tar.gz, а подпись последнего гарантирует что никто ничего не подпихнул, а если подпихнёт то всё отвалится.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от jsforever

Хотя именно в данном случае оно может иметь какой-то смысл. Там, что-то древнее, что ещё можно использовать, но никакой зависимости от этого нет и можно просто выкинуть.

Но в целом такой подход не работает.

jsforever
()
Ответ на: комментарий от FireFighter

А зачем пересобирать образ если он у тебя уже есть и работает? Просто перенеси его на новый сервер.

Тот образ, который есть, не подходит. Причина - ненужный пользователь. Это была ошибка дизайна, и вот почему не хочется его перетаскивать as is.

Вот как это исправить в образе:

RUN usermod -u 2000 www-data && \
    groupmod -g 2000 www-data

PS. 2000 - также был добавлен как новый пользователь на хост

PPS. Я отказался от установки в образ графических библиотек, они не особенно нужны. Просто очень странно - прошло не так много, конкретно 3 года. А чтобы пересобрать образ, который раньше собирался без проблем, нужно собирать консилиум и рыться в архивах. Жесть какая-то

nodejs
() автор топика
Последнее исправление: nodejs (всего исправлений: 2)