Я пытаюсь установить пакет, который был удален из моей версии 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 , кажется, подтверждает, что это, на самом деле, хороший способ добавления пакетов предыдущих выпусков.
Если есть способ получше, я обязательно хотел бы знать.
Нет идеального способа, каждый случай имеет свои ограничения. Лично я сначала выберу более быстрый и простой вариант.
Проверьте документацию вышестоящего проекта, запросы на слияние, исправления и систему отслеживания ошибок, чтобы узнать, сообщил ли кто-нибудь об этом и решил ли он. Затем решите
Поиск PPA, если он есть.
Попробуйте его пакет, добавив репозиторий более ранней версии. Следуя аналогичному методу, который вы упомянули и объяснили в моем ответе здесь . Несколько правил для легкой и чистой роли назад.
Возможны такие проблемы, как конфликт с установленными по умолчанию пакетами, и попробуйте удалить несколько пакетов. Это часто происходит с пакетами :i386
с несколькими архитектурами, такими как wine
. Просмотрите список пакетов во время установки, он может даже удалить рабочий стол и оставить вас с загрузкой из командной строки.
Установить из исходников
Обновите пакет или переупакуйте его и загрузите в PPA, если вы опытный пользователь.
Вот трюк, который иногда работает: скопируйте этот пакет в свой собственный PPA и попросите его собрать его для вашего текущего дистрибутива.