Wie kann man apt mitteilen, dass Abhängigkeiten manuell aufgelöst werden?

14

Angenommen, 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 habe.)

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

Standardmäßig wird aptdie erste Software nicht "gesehen" und es werden viele nicht benötigte und unerwünschte Dateien (z. B. TeXLive 2009) installiert, um die Abhängigkeitsmetadaten 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?

  • Sagen Sie apt, dass Sie ein bestimmtes Paket (z. B. vim-latexsuite) installieren sollen, ohne sich um die Abhängigkeiten zu kümmern?

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-Zeit erinnere ich mich an emerge --injectund /etc/portage/package.providesund suche im Grunde nach den aptÄquivalenten.)

DevSolar
quelle
TeX Live 2011 wurde kürzlich zu Debian Sid hinzugefügt, so dass es früher oder später auch zu Mint weitergegeben werden sollte (Ubuntu 12.04 hat es jedoch "verpasst", 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 nehmen, aber da es sich in diesem Fall um viele Pakete handelt, ist es wahrscheinlich keine gute Lösung. Es gibt eine PPA bei launchpad.net/~texlive-backports/+archive/ppa einrichten (siehe diesen Fehlerbericht in Ubuntu ) , dass Sie vielleicht in Mint auch nutzen können.
Daniel Andersson
Drei Jahre später wurde kein Kommentar abgegeben ... Möchten Sie das bitte erklären?
DevSolar
@ DevSolar: Scheint, als hätte jemand die Frage seriell herabgestuft und beide Antworten drei Jahre später, ohne zu klären, warum. Am besten einfach mit den Schultern zucken und weitermachen, denke ich :-).
Daniel Andersson

Antworten:

13

Sie sollten das equivsPaket verwenden, um Metapakete zu generieren, die diese Abhängigkeiten bereitstellen, und dann dpkgzum Installieren dieser Pakete verwenden.

Das Installieren equivsund Lesen der Dokumentation sollte ausreichen, aber dieses Handbuch für Ubuntu ist ziemlich 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 gegen das Paket einreichen und den Fall erläutern, in dem die Abhängigkeit nicht benötigt wird.

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 , da die Upstream - TeX Live auf Debian installieren Die Distributionsversion hinkt oft stark hinterher (aus dem Grund, dass das Paket ein solches Biest ist, dass es oft nicht ohne wesentliche Arbeit verpackt werden kann, was meistens von einer oder wenigen Personen getan wird, die behaupten, sie hätten Leben neben Debian) equivsTrick wird oft mit TeX Live verwendet (wow, dieser Satz ist außer Kontrolle geraten :-)).


Ergänzung : Für detailliertere Anweisungen für diejenigen, die TeXLive außerhalb des Paketsystems installieren möchten, sind diese Anweisungen in TeX.SX umfangreicher und werden höchstwahrscheinlich weiterhin aktualisiert. Sie enthalten auch ausführlichere Anweisungen zum equivsSchritt.

Daniel Andersson
quelle
Ich weiß nicht, wie es dazu kam, aber Linux Mint macht texlive zu einer "harten" Abhängigkeit ... werde das equivsPaket testen .
DevSolar
equivshat super funktioniert. Ich habe die Version 9999 von erstellt texlive-base-bin, das ursprüngliche "Dummy" -Paket mit demselben Namen (bereitgestellt von texlive-binaries) überschrieben und vim-latexsuiteproblemlos installiert .
DevSolar
1

Sie können das --nodepsFlag auf dpkg verwenden, das das Paket ohne Abhängigkeiten installieren soll.

   --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

Geselle Geek
quelle
Äh ... nicht so etwas? (Zumindest nicht auf der Linux Mint 12-Box, die ich hier habe.)
DevSolar
1
hm, ich scheine einen Fehler gemacht zu haben - es ist für dpkg, nicht apt-get - bearbeitete meine Antwort, um dies widerzuspiegeln
Geselle Geek
Das ist etwas, das mich bei den Debian-Derivaten bis zum Äußersten verwirrt: Die Vielzahl der Paketmanager-Schnittstellen. Ich gehe davon aus, dass es beim Mischen keine Stolpersteine ​​gibt. Oder müsste ich mich an einen von ihnen halten?
DevSolar
alles basiert auf dpkg, im Wesentlichen sind apt und aptitude Frontends, und es gibt Frontends für apt und aptitude. dpkg wird normalerweise verwendet, wenn Sie Pakete aus einer .deb-Datei installieren möchten. Ich bleibe meistens bei apt-get und dpkg. Das Mischen der "Standard" -Paketmanager mit Debian-Geschmack sollte normalerweise einigermaßen sicher sein
Journeyman Geek
Das macht Ihre Antwort zu meiner bevorzugten Lösung für mein eigentliches Problem, da nichts von vim-latexsuite abhängt. Diese Lösung markiert "texlive" jedoch nicht als vorhanden , sondern verhindert lediglich, dass vim-latexsuite danach fragt. Daher passt Daniels Antwort besser zum Titel der Frage. Das Häkchen geht an ihn, ein dickes Lob geht an dich. ;-)
DevSolar
1

Das Folgende entfernt die Abhängigkeit aus einer .deb-Datei, in diesem Fall die libperl5.20-Abhängigkeit von freeradius:

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 die Abhängigkeit zu kennen.

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
A.Badger
quelle