Допустим, есть программное обеспечение, через которое я не хочу устанавливать apt
, но вручную. (TeXLive, потому что я хочу использовать выпуск 2011 года и apt
имеет только версию 2009 года.)
Допустим, есть еще одна программа, через которую я бы хотел установить apt
, которая, однако, зависит от первой программы. (Vim LaTeXSuite, так как неудобно устанавливать вручную для общесистемного использования.)
По умолчанию, apt
он не «видит» первое программное обеспечение и приступает к установке множества ненужных и нежелательных программ (например, TeXLive 2009) только для удовлетворения метаданных зависимостей.
Как я могу либо:
Скажите ,
apt
что данный пакет (напримерtexlive
) будет установлен для всех практических целей, и что она не должно быть установлена в зависимости от какого - то другого пакета?Скажите
apt
установить данный пакет (напримерvim-latexsuite
), не заботясь о его зависимостях?
Я apt
пролистал различные связанные страницы и вышел пустым, а также нашел этот вопрос на этом сайте, но чувствую, что должен быть менее хакерский способ сделать это, не так ли?
(Из моих времен Gentoo я помню emerge --inject
и /etc/portage/package.provides
, и в основном ищу apt
эквиваленты.)
источник
Ответы:
Вам следует использовать
equivs
пакет для генерации метапакетов, которые предоставляют эти зависимости, а затем использоватьdpkg
для установки этих пакетов.Установка
equivs
и чтение его документации должно быть достаточно, но это руководство для Ubuntu довольно обширен и должны применяться к другим APT систем.Кроме того, если вы чувствуете, что пакет должен быть в состоянии установить без указанной зависимости, вы должны сообщить об ошибке в пакет, объяснив случай, когда зависимость не нужна.
В этом случае ,
texlive-base-bin
кажется, только «Рекомендуется», а не «Зависимость», по крайней мере, в базовом дистрибутиве Debian (вероятно, отчасти потому, чтоtexlive
это такой огромный пакет), а потому, что распространенную установку исходной версии TeX Live на Debian, так как дистрибутивная версия часто сильно отстает (по той причине, что пакет является таким чудовищным, что его часто невозможно упаковать без существенной работы, которая в основном выполняется одним или несколькими лицами, которые утверждают, что они живут рядом с Debian),equivs
трюк часто используется с TeX Live (вау, это предложение вышло из-под контроля :-)).Дополнение : Для получения более подробных инструкций для тех, кто хочет установить TeXLive вне системы пакета, эти инструкции для TeX.SX являются более обширными и, скорее всего, будут продолжать обновляться. Они также включают более четкие инструкции относительно
equivs
шага.источник
equivs
пакет.equivs
работал отлично. Я создал версию 9999texlive-base-bin
, перезаписав исходный «фиктивный» пакет с тем же именем (предоставленныйtexlive-binaries
), и установилvim-latexsuite
без проблем.Вы можете использовать
--nodeps
флаг dpkg, который должен установить пакет без каких-либо зависимостей.Есть очень похожий вопрос о Serverfault, на который стоит обратить внимание.
источник
Следующее удалит зависимость из файла .deb, в этом случае удалит зависимость libperl5.20 от freeradius:
Это позволяет вам установить пакет, не зная, что зависимость существует.
Если вы устанавливаете определенные версии пакетов вручную, вы можете также отказаться
apt-get upgrade
от обновления пакета в будущем:источник