Wie können Sie apt mitteilen, dass Abhängigkeiten manuell aufgelöst werden?

6359
DevSolar

Nehmen wir an, es gibt eine Software, die ich nicht installieren möchte apt, sondern manuell. (TeXLive, weil ich die aptVersion 2011 verwenden möchte und nur die Version 2009 hat.)

Angenommen, es gibt eine andere Software, die ich installieren möchte apt, die jedoch von der ersten Software abhängt . (Vim LaTeXSuite, da die manuelle Installation für die systemweite Verwendung schwierig ist.)

Standardmäßig apt"sieht" die erste Software nicht und es wird eine Menge nicht benötigter und unerwünschter Programme (z. B. TeXLive 2009) installiert, nur um die Abhängigkeits-Metadaten zu erfüllen.

Wie kann ich entweder:

  • Sagen Sie, aptdass ein gegebenes Paket (zB texlive) ist für alle praktischen Zwecke installiert ist, und dass sie nicht als Abhängigkeit von einem anderen Paket installiert werden soll?

  • Bitte geben Sie aptein gegebenes Paket (zB Installation vim-latexsuite), ohne sich um ihre Abhängigkeiten?

Ich habe durch verschiedenen gesiebte apt-related manpages und kam leer, und fand auch diese Frage auf dieser Seite, aber das Gefühl, dass es hat ein weniger hackish Weg, dies zu tun, nicht wahr?

(Aus meiner Gentoo mal, ich erinnere mich emerge --injectund /etc/portage/package.provides, und bin auf der Suche grundsätzlich für die aptÄquivalente.)

14
TeX Live 2011 wurde kürzlich zu Debian Sid hinzugefügt, so dass es früher oder später auch zu Mint propagiert werden sollte (aber Ubuntu 12.04 "verfehlt", also nicht früher als Ende Oktober mit Ubuntu 12.10). Wenn Sie wirklich abenteuerlustig sind, könnten Sie vielleicht die Pakete von Debian Sid beziehen, aber da es sich in diesem Fall um * viele * Pakete handelt, ist dies wahrscheinlich keine gute Lösung. Es gibt eine PPA unter https://launchpad.net/~texlive-backports/+archive/ppa setup (siehe [diesen Fehlerbericht in Ubuntu]) (https://bugs.launchpad.net/ubuntu/+source/texlive) -base / + bug / 712521)), die Sie möglicherweise auch in Mint verwenden können. Daniel Andersson vor 12 Jahren 0
Ich hatte ein ähnliches Problem, das hier beschrieben wurde: [Ignorieren bestimmter Abhängigkeiten mit Eignung? - Fragen Sie Ubuntu] (http://askubuntu.com/questions/408696/ignoring-specific-unmet-dependencies-with-aptitude); Außerdem gibt es hier eine nette Erklärung: [Wie kann ich ein Paket installieren, ohne dessen Abhängigkeiten zu installieren? - Ask Ubuntu] (http://askubuntu.com/questions/55244/how-can-i-install-a-package-without-installing-its-dependencies/55248/55248) sdaau vor 10 Jahren 0
Drei Jahre später wurde kein Kommentar abgegeben ... Möchten Sie das erklären? DevSolar vor 9 Jahren 0
@DevSolar: Scheint so, als hätte jemand die Frage seriell herabgestuft und beide Antworten drei Jahre danach beantwortet, ohne zu klären, warum. Am besten nur mit den Schultern zucken und weiterziehen, denke ich :-). Daniel Andersson vor 9 Jahren 0

3 Antworten auf die Frage

12
Daniel Andersson

Sie sollten das equivsPaket verwenden, um Metapakete zu generieren, die diese Abhängigkeiten bereitstellen, und dpkgdiese Pakete anschließend zu installieren.

Das Installieren equivsund Lesen der Dokumentation sollte ausreichen, aber dieses Handbuch für Ubuntu ist recht umfangreich und sollte auch für andere APT-Systeme gelten.


Wenn Sie der Meinung sind, dass ein Paket ohne die angegebene Abhängigkeit installiert werden kann, sollten Sie einen Fehler für das Paket einreichen und den Fall erläutern, in dem die Abhängigkeit nicht erforderlich ist.

In diesem Fall, texlive-base-binscheint nur zu sein „empfohlen“ und nicht eine „Abhängigkeit“ in der Basis Debian - Distribution mindestens (wahrscheinlich teil da texlivesolch ein enormes Paket ist), sondern weil es üblich ist, stromaufwärts TeX Live auf der Debian zu installieren, da die Die Distributionsversion bleibt oft weit zurück (aus dem Grund, dass das Paket so ein Biest ist, dass es oft nicht ohne erheblichen Aufwand verpackt werden kann, was meistens von einer oder wenigen Personen erledigt wird, die behaupten, neben Debian Leben zu haben) equivsTrick wird oft mit TeX Live verwendet (wow, dieser Satz ist aus dem Ruder gelaufen :-)).


Zusatz : Für detailliertere Anweisungen für diejenigen, die TeXLive außerhalb des Paketsystems installieren möchten, sind diese Anweisungen auf TeX.SX umfangreicher und werden höchstwahrscheinlich weiterhin aktualisiert. Sie enthalten auch explizitere Anweisungen in Bezug auf den equivsSchritt.

Ich weiß nicht, wie das zustande kam, aber Linux Mint macht texlive zu einer "harten" Abhängigkeit ... Ich werde das `equivs`-Paket ausprobieren. DevSolar vor 12 Jahren 0
`equivs` hat super funktioniert. Ich erstellte die Version 9999 von `texlive-base-bin`, überschrieb das ursprüngliche" Dummy "-Paket mit demselben Namen (bereitgestellt von 'texlive-binaries') und installierte` vim-latexsuite` ohne Probleme. DevSolar vor 12 Jahren 0
1
Journeyman Geek

Sie können das --nodepsFlag für dpkg verwenden, das das Paket ohne Abhängigkeiten installieren sollte.

 --ignore-depends=package,... Ignore dependency-checking for specified packages (actu- ally, checking is performed, but only warnings about con- flicts are given, nothing else) 

Es gibt eine sehr ähnliche Frage zu Serverfault, die ebenfalls einen Blick wert ist

Äh ... nichts dergleichen? (Zumindest nicht auf der Linux Mint 12 Box, die ich hier habe.) DevSolar vor 12 Jahren 0
hm, ich scheine einen Fehler gemacht zu haben - es war für dpkg, nicht für apt-get - und bearbeitete meine Antwort, um dies zu reflektieren Journeyman Geek vor 12 Jahren 1
Das verwirrt mich mit den Debian-Derivaten: Die Vielzahl der Paketmanager-Schnittstellen. Ich gehe davon aus, dass beim Mischen keine Stürze auftreten? Oder müsste ich bei einem von ihnen bleiben? DevSolar vor 12 Jahren 0
alles basiert auf dpkg, im Wesentlichen sind Apt und Aptitude Frontends dazu, und es gibt Frontends für Aptitude und Aptitude. dpkg wird normalerweise verwendet, wenn Sie Pakete aus einer .deb-Datei installieren möchten. Ich neige dazu, mich bei apt-get und dpkg zu halten. Das Mischen der "Standard" -Paketmanager von Debian sollte normalerweise einigermaßen sicher sein Journeyman Geek vor 12 Jahren 0
Das macht Ihre Antwort zu meiner bevorzugten Lösung für mein * aktuelles * Problem, da nichts von vim-latexsuite abhängt. Diese Lösung kennzeichnet "texlive" jedoch nicht als * anwesend *, sondern verhindert, dass vim-latexsuite danach fragt. Daher passt Daniels Antwort besser zum Titel der Frage. Häkchen geht zu ihm, Kudos zu dir. ;-) DevSolar vor 12 Jahren 0
0
A.Badger

Im Folgenden wird die Abhängigkeit aus einer .deb-Datei entfernt. In diesem Fall wird die libperl5.20-Abhängigkeit von Freeradius entfernt:

dpkg-deb -x freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius dpkg-deb -e freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb freeradius/DEBIAN sed -i -e 's/, libperl5.20 (>= 5.20.2)//g' freeradius/DEBIAN/control dpkg-deb -b freeradius freeradius_2.2.5+dfsg-0.2+deb8u1_amd64.deb 

Auf diese Weise können Sie das Paket installieren, ohne dass die Abhängigkeit bekannt ist.

Wenn Sie bestimmte Versionen von Paketen manuell installieren, möchten Sie möglicherweise auch apt-get upgradein Zukunft die Aktualisierung des Pakets beenden :

apt-mark hold freeradius