Ich möchte bestimmte Pakete von der Installation ausschließen apt-get
, dh ein Metapaket ohne die Liste bestimmter Pakete installieren, vorzugsweise mit einem Aufruf von apt-get
.
In der LTS-Befehlszeile von Ubuntu 14.04 installiere ich beispielsweise die MATE-Desktopumgebung. In 14.04 ist LTS MATE kein offizielles Aroma, daher füge ich ein PPA hinzu:
sudo apt-get install software-properties-common # need them for 'apt-add-repository'
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
sudo apt-get update
dann installieren:
sudo apt-get install xorg mate-core --no-install-recommends
Auch ohne die empfohlenen Extras, mate-core
installiert 3 Terminal - Emulatoren: xterm
, uxterm
und mate-terminal
, letztere richtige Schriftarten fehlen , während in dieser Minimalkonfiguration installiert.
Angenommen, ich entscheide, dass 3 Terminalprogramme zu viele sind und ich möchte xorg
und mate-core
ohne xterm
und installieren mate-terminal
. ich könnte
sudo apt-get install xorg mate-core --no-install-recommends
sudo apt-get purge xterm mate-terminal
Aber ist es möglich, dies auf einmal zu tun? Gibt es eine Syntax wie
sudo apt-get install xorg mate-core --without xterm mate-terminal
quelle
xterm
und entfernen könnenmate-terminal
? In 15.04mate-terminal
ist eine harte Abhängigkeit vonmate-desktop-environment-core
, was eine harte Abhängigkeit von istmate-core
, und ich nehme an , dass die PPAmate-terminal
nicht bereitstelltx-terminal-emulator
(was das Paket in 15.04 tut).XTerm
und vielleichtUXTerm
(ich bin nicht sicher, welcher Paketname für letzteres ist)sudo apt-get install xorg mate-core --without xterm mate-terminal
aptitude
(oder einen grafischen Paketmanager) verwenden, können Sie (de) auswählen, welche Pakete installiert werden sollen, und wenn eines zu einer unterbrochenen Abhängigkeit führt, wird (normalerweise) eine Erklärung gegeben.Antworten:
So paaren-Kern hängt auf
mate-desktop-environment-core
dem wiederum hängt aufmate-terminal
. Eine Abhängigkeit kann nicht leicht gebrochen werden. Weder unterstütztapt-get
nochaptitude
eine--without
oder--exclude
Option und das "Halten" der Pakete hilft nicht:Sicher, man kann
dpkg --force-depends
damit ein Paket installieren, aber das ist vielleicht nicht das, was Sie wollen.Eine Möglichkeit wäre, die
Depends:
Flagge mit einem Dummy-Paket zu füllen :Jetzt
mate-core
sollte in der Lage sein, ohne zu installierenmate-terminal
. Wiederholen Sie diesen Vorgang, damit andere Pakete ausgeschlossen werden.Zugegeben, das ist eine ziemliche Anstrengung und eine
--without
Option wäre schön. Vielleicht kann ein Wunschliste-Fehler geöffnet werden, um solche Funktionen in Zukunft bereitzustellen, aber ich bezweifle irgendwie, dass dies implementiert wird.Eine realistischere Option wäre jedoch, beim PPA-Eigentümer eine Petition einzureichen , um ein weiteres Metapaket für MATE mit weniger
Depends
Paketen bereitzustellen .quelle
Wenn Sie
aptitude
einen grafischen Paketmanager (Synaptic usw.) verwenden, können Sie die Auswahl der zu installierenden Pakete aufheben, solange dies kein Abhängigkeitsproblem verursacht.Im Fall von
aptitude
vor der Installation eines Pakets (in der grafischen Ansicht) wird angezeigt, warum ein abhängiges Paket installiert wird. In meinem Fall verwende ich KDE und habe daher keine MATE-Pakete. Wenn ich sage, dass es installiert werden sollmate-core
, erhalte ich Folgendes:Beachten Sie, dass dies
mate-core
als manuell installiert markiert ist und viele andere Pakete installiert werden. Für dasmate-terminal
Paket unten steht "mate-desktop-environment-core
[Universum] hängt ab vonmate-terminal
(> = 1.0.0)". Gehen Sie zum Eintrag fürmate-desktop-environment-core
,"
mate-core
[Universum] hängt ab vonmate-desktop-environment-core
(> = 1.8.0 + 9)". Aus diesem Grundmate-terminal
wird installiert.Wenn stattdessen ein empfohlenes Paket installiert wird (und nicht etwas, das von einem anderen Paket abhängig ist),
aptitude
werden Sie darauf hingewiesen, und Sie können festlegen, dass dieses Paket nicht ohne fehlerhafte Abhängigkeiten installiert werden soll. Beispielsweise:quelle
Eine andere Methode
Laden Sie das Hauptpaket herunter, das vom anderen abhängt. Extrahieren Sie das Paket, entfernen Sie die unerwünschten Abhängigkeiten und packen Sie es neu. Öffnen Sie nun das neue Paket mit dem gdebi-Paketinstallationsprogramm . Es werden neue Abhängigkeiten für Sie installiert.
quelle
Es gibt eine spezielle
apt
Syntax für Szenarien wie folgt aus : einen Bindestrich (Minuszeichen) zu einem Paket angehängt wird entfernen / es nicht installieren, so dass die am nächsten zu Ihremsudo apt-get install xorg mate-core --without xterm mate-terminal
heißtsudo apt-get install xorg mate-core xterm- mate-terminal-
(spotted auf /ubuntu//a/1011439/182923 )In diesem Fall hilft es nicht, da Sie darauf stoßen werden
aber es scheint die Antwort auf Ihre spezifische Frage zu sein. Also als Referenz dieser Cross-Post.
quelle