Wie kann ich verhindern, dass eine Deb-Datei als Ergebnis einer Abhängigkeit installiert wird?

1141
Pridkett

Ich verwende die neueste Version von Ubuntu 09.10 (syphyllitische Sphinx oder was auch immer der Codename ist) und versuche herauszufinden, wie ein Paket als Folge einer Abhängigkeit von der Installation blockiert wird. Nehmen wir für dieses Beispiel an, ich möchte, dass es so bcist, dass es niemals installiert wird, obwohl dies ubuntu-desktopbehauptet wird. Gibt es eine einfache Möglichkeit, dies zu tun, wenn ich ein Update mache und es eine neue Version gibt ubuntu-desktop, die nie wieder zu installieren versucht bc?

Ich denke, dass dies mit einigen benutzerdefinierten Dummy-Paketen und dpkg-divertoder einer solchen Magie möglich ist, aber ich kann einfach keine guten Dokumente finden, wie man das macht.

Mir ist auch bewusst, dass so etwas zu einem Riss in der Raumzeit führen kann, aber ich bin bereit, damit umzugehen.

3
Ich würde gerne antworten, aber ich kann NICHT für räumliche Stoffrisse verantwortlich sein. Es tut mir so leid, aber ich muss an die Kinder denken. Chris_K vor 14 Jahren 3

5 Antworten auf die Frage

2
CarlF

Schauen Sie sich das "equivs" -Paket an. Sie können ein Paket fälschen, das vorgibt zu bieten, was auch immer das eigentliche Paket ist, das Sie installieren.

1
Iain

Diese Seite aus dem Ubuntu-Wiki sollte Ihr Problem beheben. Es wird erläutert, wie ein neues Metapaket ohne die deinstallierte Anwendung erstellt wird.

Davon abgesehen habe ich einfach ohne das Metapaket von Ubuntu-Desktop gelebt.

1
flying sheep

i don’t know if it works for mandatory requirements, but it did a good job for me blocking the recommended package ttf-mscorefonts-installer when installing/upgrading wine.

i figured this package just exists to make the internet look crappy in order to keep young linux hackers from posing a threat to MS there.


put the following into your /etc/apt/preferences:

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

the Pin-Priority: -1 says that the matched versions of the matched packages should never be installed, while the rest matches every version of the package i-am-a-package-containing-junk, effectively preventing its installation.

0
sleske

Mir ist keine einfache Möglichkeit bekannt, dies zu tun, und ich bezweifle, dass es eine gibt. Abhängigkeiten gibt es aus einem bestimmten Grund, und die Werkzeuge bieten kaum Unterstützung, um sie zu ignorieren.

Selbst wenn Sie eine Abhängigkeit ( dpkg -r --force-depends <package>) zwangsweise deinstallieren ( ), führen aptitude& Freunde dazu, nicht mehr zu funktionieren, bis Sie den Schaden behoben haben. Ich fürchte also, was Sie fragen, ist nicht möglich, zumindest nicht mit einem einfachen Befehl.

Der einfachste Weg, dies zu erreichen, besteht wahrscheinlich darin, ein leeres Paket mit einer hohen Versionsnummer zu erstellen, aber auch das kann brechen, wenn sich die Paketabhängigkeiten ändern.

Könntest du erklären, was du versuchst? Dann können wir vielleicht helfen.

0
Journeyman Geek

In diesem speziellen Fall ... verwenden Sie das Metapaket nicht - es gibt wahrscheinlich ein 'Kernpaket', und Sie können das installieren, was Sie benötigen -, ich hatte das gleiche Problem mit Xorg, da ich nicht den Sinn der Installation eines nvidia-treiber auf einem grafikbasierten laptop von Intel, also habe ich xorg-intel statt xorg-core installiert.

Leider handelt es sich um eine Software-Suite für die Arbeit, die überprüft, ob das Metapaket installiert ist. Wenn das Metapaket nicht installiert ist, passieren schlechte Dinge und es wird zu Hause angerufen usw. Pridkett vor 14 Jahren 0