«Правильный» способ установки пакетов из предыдущего выпуска

Я пытаюсь установить пакет, который был удален из моей версии Ubuntu (17.10 ). В частности, я пытаюсь установить libpng12-dev , который является зависимостью от другой программы, которую я пытаюсь установить, очень похоже на то, что задается в этом вопросе .

Как обсуждалось в этом вопросе, я могу довольно легко установить пакет вручную, но использование диспетчера пакетов является предпочтительным способом установки пакетов, с чем я согласен.

Я попытался адаптировать ответ ffmurray и объединить его с инструкциями на help.ubuntu.com , придумав следующее:

sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/ xenial main"

Однако apt-get update дает мне эту ошибку:

Репозиторий http: //mirrors.kernel.org / ubuntu / pool / main / libp / libpng xenial Release 'не имеет файла выпуска.

Я не уверен, что случилось, и может ли что-то подобное вообще сработать.


Вопрос

Есть ли правильный способ установки пакетов из предыдущих выпусков Ubuntu, подобных этому, с помощью apt (или других менеджеров пакетов)? Я понимаю, что при этом возникают подозрения о совместимости и стабильности, но мне все равно нужен полу-чистый способ сделать это.

Обратите внимание, что я ищу общий ответ для пакетов предыдущих выпусков, а не только для libpng.


Частичное решение при написании этого вопроса

На странице пакета libpng12-dev в разделе «ссылки для libpng12-dev», подраздел «загрузить исходный код» есть ссылка на описание пакета . Подозревая, я удалил имя файла из адреса ссылки , что позволило мне просмотреть архив и выяснить несколько соглашений.

Оказывается, я чрезмерно указывал URL-адрес сайта, и мне нужна была только часть URL-адреса http: //site.domain/ubuntu/ . Остальная часть решается путем предоставления имени выпуска Ubuntu (xenial), категории (main) и пакета в apt-get (libpng12-dev).

Так что вместо этого я должен был сделать:

sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/ xenial main"
sudo apt-get update
sudo apt-get install libpng12-dev

Бежал безупречно!


Я не уверен, насколько это хакерское решение. Мне кажется, что сборка / установка из исходного кода - более надежный способ работы со старыми пакетами, но я не уверен, правда ли это, и как это сделать.

Теперь, когда я кое-что понимаю, на что смотрю, этот ответ относительно PPA , кажется, подтверждает, что это, на самом деле, хороший способ добавления пакетов предыдущих выпусков.

Если есть способ получше, я обязательно хотел бы знать.

5
задан 12 February 2018 в 18:44

1 ответ

Нет идеального способа, каждый случай имеет свои ограничения. Лично я сначала выберу более быстрый и простой вариант.

  1. Проверьте документацию вышестоящего проекта, запросы на слияние, исправления и систему отслеживания ошибок, чтобы узнать, сообщил ли кто-нибудь об этом и решил ли он. Затем решите

  2. Поиск PPA, если он есть.

  3. Попробуйте его пакет, добавив репозиторий более ранней версии. Следуя аналогичному методу, который вы упомянули и объяснили в моем ответе здесь . Несколько правил для легкой и чистой роли назад.

    • Протестируйте на нерабочей машине (VirtualBox, ...)
    • Также добавьте репозитории *-update и *-security.
    • Ведьте журнал изменений (новые установленные пакеты и удаленные).
    • Удалите эти репозитории сразу после завершения установки.
    • Имейте в виду, что это похоже на PPA со старыми пакетами, которые могут привести к неудовлетворенным зависимостям в будущем.

    Возможны такие проблемы, как конфликт с установленными по умолчанию пакетами, и попробуйте удалить несколько пакетов. Это часто происходит с пакетами :i386 с несколькими архитектурами, такими как wine. Просмотрите список пакетов во время установки, он может даже удалить рабочий стол и оставить вас с загрузкой из командной строки.

  4. Установить из исходников

  5. Обновите пакет или переупакуйте его и загрузите в PPA, если вы опытный пользователь.

    Вот трюк, который иногда работает: скопируйте этот пакет в свой собственный PPA и попросите его собрать его для вашего текущего дистрибутива.

1
ответ дан 24 October 2020 в 13:18

Другие вопросы по тегам:

Похожие вопросы: