Будучи первопроходцем и используя ежедневные сборки 11.04, я иногда сталкиваюсь с ситуацией, когда некоторым пакетам требуются более ранние версии пакетов, чем те, которые я установил. Обычно более новые (но отказанные) версии необходимых пакетов предоставляют все функциональные возможности своих старых версий.
Если я использую dpkg -i --force-depends-version
для установки зависимых пакетов, все работает нормально, я никогда не видел проблем.
Вместо того, чтобы вручную загружать и устанавливать каждый пакет, могу ли я просто заставить систему притворяться, что установлена конкретная версия пакета, когда есть более новая? Или есть --force-depends-version
эквивалент ключа для apt-get
?
Вы можете использовать пакет equivs
, чтобы создать фиктивный пакет для подделки устанавливаемого пакета. Некоторые инструкции здесь.
Несмотря на то, что ответ уже принят, встраивание принятого лучше передает процесс:
Существует пакет Debian под названием Equivs
, который может создавать фиктивные пакеты. Установите его, запустив sudo apt-get install -y Equivs
После установки вы создаете "контрольный" файл шаблона, используя следующую команду: Equivs-control postfix
(замените postfix
на имя вашего пакета). В моем случае я мог бы использовать другое имя пакета, например postfix-custom
или что-то еще, но мой собственный пакет выполнен или Предоставляет
установочную зависимость postfix
(снова заменяя postfix
для любого пакета, который вы хотите.
После создания файла управления шаблоном я обычно удаляю многие закомментированные операторы (операторы, начинающиеся с #
). Я предпочитаю оставить именно Обеспечивает:
утверждение, в котором я могу сказать, что мой пакет предоставляет возможности, предлагаемые другим пакетом, который я пытаюсь подделать, например Обеспечивает: postfix
сообщает механизму разрешения зависимостей Debian / Ubuntu, что мой пакет - с любым именем - предоставляет те же возможности, что и целевой пакет, опять же postfix
или что-то еще. Это позволяет мне называть свой пакет независимо от целевого пакета, чтобы избежать путаницы. Erlang Factory делает это со своими вещами, например esl-erlang
предоставляет erlang
.
Наконец, после создания файла управления шаблоном вы используете Equivs-build
для создания поддельного пакета, например Equivs-build /path/to/generated/control/file[1160833 visible.
Сборка пакета занимает несколько секунд, а затем вы можете запустить sudo dpkg -i my_package_name * .deb
Для опытных пользователей: если ваш файл управления шаблоном имеет строку зависимости Requires:
, вы можете использовать такой инструмент, как gdebi
, чтобы установить свой пакет, а также различные пакеты, которые он объявляется как зависимости.