Wahrscheinlich wird so gut wie jeder Linux-User, der jemals etwas mit Debian oder Ubuntu zu tun gehabt habt, mit Kommandos wie apt-cache search foo
oder apt-get install bar
zur Suche in den Paketquellen, beziehungsweise zur Installation von Paketen aus dem Terminal heraus, in Berührung gekommen sein. Da werde ich kaum jemandem etwas Neues erzählen. Doch diese Kommandos sind eigentlich gar nicht mehr aktuell, zumindest seit Debian 8 „Jessie“ beziehungsweise Ubuntu 14.04 „Trusty Tahr“ (und natürlich auch bei von dieses Distributionen abgeleiteten Derivaten wie etwa Linux Mint), da es seit der Version 1.0 von apt ein eigenes Binary namens apt
gibt, das viele apt-Kommandos in einem einzigen Programm vereint. Aber keine Angst, apt-get
und Co. werden uns vermutlich noch lange begleiten.
Aus apt-get, apt-cache und Co. wird apt
Die Änderung erscheint im Changelog von apt bei der Version 1.0 recht unscheinbar mit dem Text „install apt binary“. Diese Version des Programms hat es dann auch in die Paketquellen von Debian 8 und Ubuntu 14.04 geschafft, seitdem könnt ihr beim Paketmanagement im Terminal ein bisschen Tipparbeit sparen, zudem von einer ein wenig aufpolierten Optik profitieren. Großartig umgewöhnen müsst ihr euch zudem auch nicht, die Syntax der Kommandos blieb mehr oder weniger komplett erhalten. Zum Einstieg solltet ihr euch daher am besten einmal schnell die Hilfe von apt
ansehen, diese ruft ihr logischerweise mit der Option --help
auf.
$ apt --help apt 1.0.10.2ubuntu1 für amd64, kompiliert am Oct 5 2015 15:55:05 Aufruf: apt [Optionen] Befehl Befehlszeilen-Schnittstelle (CLI) für apt. Basis-Befehle: list - Pakete basierend auf dem Paketnamen auflisten search - Paketbeschreibungen durchsuchen show - Paketdetails anzeigen update - Liste verfügbarer Pakete aktualisieren install - Pakete installieren remove - Pakete entfernen upgrade - das System durch Installation/Aktualisierung der Pakete hochrüsten full-upgrade - das System durch Entfernung/Installation/Aktualisierung der Pakete vollständig hochrüsten edit-sources - die Datei für die Paketquellen bearbeiten
Das Kommando apt
kennt also die Basis-Befehle list
, search
, show
, update
, install
, remove
, upgrade
, full-upgrade
und edit-sources
. Fast alle dieser Kommandos sollten den Kommandozeilenjokeys unter euch eigentlich bekannt vorkommen. Einzig full-upgrade
und edit-sources
unterscheiden sich von den bisher gewohnten Kommandos — die Namensgebung lässt allerdings wohl kaum eine Überraschung erwarten. Daher sollte es eigentlich klar sein, wie der Hase in Zukunft läuft: Mit apt update
aktualisiert ihr die Paketquellen, mit apt install foo
installiert ihr Pakete, mit apt search foo
durchsucht ihr die Paketquellen und mit apt upgrade
spielt ihr die anstehenden Updates ein. Natürlich funktioniert vieles davon nur mit Root-Rechten, also setzt bei zum Beispiel apt install
noch ein sudo
vor das Kommando — oder wechselt zuvor in den Root-Account.
Nur noch apt für die Paketverwaltung
Alles in allem lassen sich die Kommandos in meinen Augen ein wenig besser erfassen. Besonders der Schritt von apt-get dist-upgrade
zu apt full-upgrade
macht in meinen Augen Sinn, da Einsteiger bei dist-upgrade
oft an ein „Distributions-Upgrade“ dachten und meinten, dass dabei ein Umstieg auf die nächste Version der Distribution erfolgt. Jetzt wird eher klar, dass lediglich neue Abhängigkeiten aufgelöst und diese installiert werden. Zudem gibt es jetzt bei Operationen wie apt install foo
oder apt remove bar
ein wenig Farbe sowie einen Fortschrittsbalken bei Operationen auf der Festplatte zu sehen. Deutlich besser gelöst ist in meinen Augen auch die Suche mit apt search foo bar
und die Anzeige von apt list --upgradable
mit einer Übersicht über die aktualisierbaren Paketen. Praktisch ist auch mit apt edit-sources
die /etc/apt/sources.list
in einen Editor zu öffnen und direkt zu bearbeiten.
Wundert euch also nicht, wenn euch immer mal wieder ein apt
ohne ein -get
oder -cache
über den Weg läuft. Der Autor dieses Beitrags ist dann nur auf einem aktuellen Stand und nicht vergesslich. Selbstverständlich könnt ihr auf euren Systemen weiterhin zu apt-get
und Co. greifen, ähnlich wie es vor der Systemd-Umstellung auch bei der Diensteverwaltung mit den Kommandos sudo /etc/init.d/foobar restart
und sudo service foobar restart
möglich war. Die folgende Tabelle zeigt euch noch einmal die wichtigsten Apt-Befehle vor und nach der Änderung im Vergleich. Wie schon angesprochen, sind die Unterschiede nicht wirklich riesig.
Vergleich zwischen apt-get und Co. und apt
Ab Debian 8/Ubuntu 14.04 | Bis Debian 7/Ubuntu 13.10 | |
Paketquellen aktualisieren | apt update |
apt-get update |
Paketquellen durchsuchen | apt search foo bar |
apt-cache search foo bar |
Pakete installieren | apt install foo bar |
apt-get install foo bar |
Pakete deinstallieren | apt remove foo bar |
apt-get remove foo bar |
System aktualisieren | apt upgrade |
apt-get upgrade |
System aktualisieren und neue Abhängigkeiten auflösen | apt full-upgrade |
apt-get dist-upgrade |
Details zu einem Paket ansehen | apt show foo |
apt-cache show foo |
Paketquellen bearbeiten | apt edit-sources |
nano /etc/apt/sources.list |
Danke, wieder etwas sinnvolles gelernt. Die Integration von apt-file würde ich noch gerne sehen.
In der Tabelle ist die Zuordnung upgrade, dist-upgrade und full-upgrade durcheinander gekommen.
Danke für den Hinweis, ist korrigiert.
Angemerkt sollte vielleicht noch werden, dass
full-upgrade
auch Pakete entfernt, falls nur dadurch ein Konflikt aufgelöst werden kann. Einupgrade
macht das nicht.full-upgrade entspricht auch dem bei aptitude gebräuchlichen Kommando für dist-upgrade
Hatte mich auch unter Ubuntu gewundert das mir dort der Befehl zum Entfernen von Paketen mit apt autoremove angezeigt wurde.
Danke.
Das ist wirklich schon lange so. Nutze ich auch so schon seit der Änderung. Ist aber leider irgendwie an vielen vorbei gegangen.
Es sollte allerdings beachtet werden, dass die Entwickler keine Garantie für die Abwärtskompatibilität des Befehls apt geben. In Skripts sollte daher weiterhin auf apt-get, apt-cache usw. zurückgegriffen werden. (Siehe Manpage)
Ich nutze schon seit Jahren kein apt-get mehr, sondern aptitude, von dem wohl die ganzen Optionen auch für apt übernommen wurde. Bei „apt search“ ist die Darstellung etwas schöner – wobei ich mich frage wie Du zu deiner Darstellung in mehreren Zeilen kommst.
Dafür ist die Suche bei aptitude viel mächtiger und kanna uch in den Beschreibungen suchen:
Gruß Tom
Hallo,
Wie man sieht unterscheiden sich bei LMDE 2 mit der apt-Version: 1.0.9.8.2 die Basis-Befehle von denen in Ubuntu mit Version 1.0.10.2ubuntu1.
Zunächst sind es erheblich mehr Basis-Befehle, und außerdem als markanteste Unterschiede:
*
dist-upgrade
anstattfull-upgrade
*
sources
anstattedit-sources
Sollte es also zwischen den minimalen Versionen 1.0.9.8.2 und 1.0.10.2 zu solch relativ gravierenden Änderungen gekommen sein, oder könnte es vllt. auch am distributionsspezifischen Kompilieren von apt liegen?
Noch eine Frage zu „This apt has Super Cow Powers“: Was ist damit gemeint („Super Cow Powers“)?
Abschließend noch eine Frage zur Kommentarfunktion selbst: Was bedeutet denn das Kästchen „Antworten auf diesen Kommentar“? Dass „Antworten auf diesen Kommentar“ zugelassen werden? Klingt für mich am plausibelsten. Oder aber dass man sich selber antwortet? Unlogisch. Auf jeden Fall wäre aber eine Ergänzung der Funktions-Beschreibung anzuraten, beispielsweise „Antworten auf diesen Kommentar zulassen“, falls meine Vermutung zuztrifft.
Danke im Voraus auf die Antworten!
Die Super-Kuh Kräfte gehen zurück auf einen alten Running-Gag, bei dem sich Entwickler im IRC mit „moo“ begrüßt haben. Das hatte eine Reihe von Kuh-Witzen zur Folge, zum Beispiel ebendieser Hinweis im Help-Text, und später dann dazu die Option im Terminal: „apt-get moo“…
Hallo Christoph,
wie bekommst Du den bash-Prompt mit den zwei Farben hin? Wäre nett wenn Du den Eintrag aus Deiner .bashrc hier posten könntest!
Danke und Gruß,
Mike
Hi Mike, das Ganze nennt ich Powerline. Grüße, Christoph.
Danke, schau ich mir mal an! Gruß, Mike
Danke für diese Informationen!
Da arbeitet man seit Jahren mit Linux, und lernt immer noch dazu. 🙂
fuzzy-bar zeigt den „Fortschritt“ an. Gibt also Benutzer-Rückmeldung) Fände ich auch noch erwähnenswert. Denke immer vollert Freude an den bootscreen bei Knopix „ganz früher“. Da musste man nix verstecken und hat eine eigene Identität bewahrt ganz im Sinne von FOSS. Fortschrittsanzeigen sind wichtig um den Benutzer „miteinzubeziehen“ Zudecken ist einfach nur ROTZ (absolut persönliche Meinung).
Eigenartigerweise ist:
apt-cache search $PAKET
Schneller als:
apt search $PAKET
Das gleiche gilt für:
apt-cache show $PAKET
Frag mich nicht warum…
Deswegen verwende ich es auf langsamen Maschinen nach wie vor.
Hallo Zusammen,
Ich nutze ein RasPi mit Raspbian.
Es funktionieren tatsächlich beide Versionen, aber mit einem Unterschied.
ergibt die gewohnte Ausgabe, hält aber 13 Aktualisierungen zurück, bietet sie also zur Installation nicht an sondern nennt nur deren Vorhandensein.
würde von den 13 Paketen 12 aktualisieren wollen.
Warum machen zwei eigentlich gleiche Befehle daß so anders?
Habt Ihr eine Idee?
Lg, Woody
Wie bekomme ich mit APT nur sicherheitsupdates installiert? Ich habe das bisher mit aptitude folgend gelöst: aptitude safe-upgrade -t $(lsb_release -sc)-security