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

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

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

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

5 ответов

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

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

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

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

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


вставьте следующее в свой /etc/apt/preferences:

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

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

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

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

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

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

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

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