Как заблокировать установку файла deb в результате зависимости?

988
Pridkett

Я использую последнюю версию Ubuntu 09.10 (syphyllitic sphinx или что-то еще, чёрт возьми, кодовое имя), и я пытаюсь выяснить, как заблокировать установку пакета в результате зависимости. Для этого примера, допустим, я бы хотел, чтобы он bcникогда не устанавливался, хотя ubuntu-desktopи требует этого. Есть ли простой способ сделать это так, что когда я делаю обновление и появляется новая версия, ubuntu-desktopон никогда больше не попытается установить bc?

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

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

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

5 ответов на вопрос

2
CarlF

Проверьте пакет «эквиваленты». Вы можете подделать пакет, который претендует на то, чтобы предложить любой реальный пакет, который вам нужен.

1
Iain

Эта страница из вики Ubuntu должна исправить вашу проблему. В нем объясняется, как создать новый метапакет без удаленного приложения.

Сказав это, я просто жил без метапакета ubuntu-desktop.

1
flying sheep

я не знаю, работает ли он для обязательных требований, но он помог мне заблокировать рекомендуемый пакет ttf-mscorefonts-installerпри установке / обновлении wine.

Я подумал, что этот пакет существует только для того, чтобы интернет выглядел дерьмово, чтобы молодые хакеры Linux не представляли угрозу для MS.


поместите следующее в свой /etc/apt/preferences:

Package: i-am-a-package-containing-junk Pin: version * Pin-Priority: -1 

the Pin-Priority: -1говорит, что совпадающие версии соответствующих пакетов никогда не должны устанавливаться, в то время как остальные соответствуют каждой версии пакета i-am-a-package-containing-junk, эффективно предотвращая его установку.

0
sleske

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

На самом деле, даже принудительное удаление зависимости ( dpkg -r --force-depends <package>) приведет к тому, что aptitude& friends перестанет работать, пока вы не исправите ущерб. Поэтому я боюсь, что вы спрашиваете, это невозможно, по крайней мере, не с помощью простой команды.

Самый простой способ сделать это, вероятно, создать пустой пакет с большим номером версии, но даже он может сломаться при изменении зависимостей пакета.

Не могли бы вы объяснить, что вы пытаетесь сделать? Тогда, может быть, мы можем помочь.

0
Journeyman Geek

в этом конкретном случае ... не используйте метапакет - вероятно, есть пакет 'core', и вы можете установить поверх него то, что вам нужно - у меня была такая же проблема с xorg, так как я не вижу смысла устанавливать Драйверы nvidia на ноутбуке на базе графики Intel - так что я установил xorg-intel, а не xorg-core.

К сожалению, это набор программного обеспечения для работы, который проверяет, установлен ли метапакет. Если метапакет не установлен, происходят плохие вещи, и он звонит домой и т. Д. Pridkett 14 лет назад 0

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