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

Pakete mit apt und apt-get installieren.
Pakete mit apt und apt-get installieren.
In den Paketquellen mit apt und apt-cache suchen.
In den Paketquellen mit apt und apt-cache suchen.
Aktualisierbare Pakete mit apt und apt-get auflisten.
Aktualisierbare Pakete mit apt und apt-get auflisten.
Details zu einem Paket mit apt und apt-cache anzeigen.
Details zu einem Paket mit apt und apt-cache anzeigen.

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

19 Kommentare

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

  2. Hatte mich auch unter Ubuntu gewundert das mir dort der Befehl zum Entfernen von Paketen mit apt autoremove angezeigt wurde.
    Danke.

  3. Das ist wirklich schon lange so. Nutze ich auch so schon seit der Änderung. Ist aber leider irgendwie an vielen vorbei gegangen.

  4. 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)

  5. 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:

    # > apt search "~d dansguardian" | wc -l
    74454
    
    # > aptitude search "~d dansguardian"
    i   dansguardian                                                        - Filterung von Webinhalten                                                     
    p   dansguardian:i386                                                   - Filterung von Webinhalten                                                     
    p   libdansguardian-perl                                                - Simple module for administer dansguardian's control files
    

    Gruß Tom

  6. $ cat /etc/lsb-release
    DISTRIB_ID=LinuxMint
    DISTRIB_RELEASE=2
    DISTRIB_CODENAME=betsy
    DISTRIB_DESCRIPTION="LMDE 2 Betsy"
    
    $ apt show apt
    Paket: apt
    Essentiell: ja
    Zustand: Installiert
    Automatisch installiert: nein
    Version: 1.0.9.8.2
    (...)
    
    $ apt --help
    apt
    Usage: apt command [options]
           apt help command [options]
    
    Commands:
      add-repository   - Add entries to apt sources.list
      autoclean        - Erase old downloaded archive files
      autoremove       - Remove automatically all unused packages
      build            - Build binary or source packages from sources
      build-dep        - Configure build-dependencies for source packages
      changelog        - View a package's changelog
      check            - Verify that there are no broken dependencies
      clean            - Erase downloaded archive files
      contains         - List packages containing a file
      content          - List files contained in a package
      deb              - Install a .deb package
      depends          - Show raw dependency information for a package
      dist-upgrade     - Perform an upgrade, possibly installing and removing packages
      download         - Download the .deb file for a package
      dselect-upgrade  - Follow dselect selections
      held             - List all held packages
      help             - Show help for a command
      hold             - Hold a package
      install          - Install/upgrade packages
      policy           - Show policy settings
      purge            - Remove packages and their configuration files
      recommends       - List missing recommended packages for a particular package
      rdepends         - Show reverse dependency information for a package
      reinstall        - Download and (possibly) reinstall a currently installed package
      remove           - Remove packages
      search           - Search for a package by name and/or expression
      show             - Display detailed information about a package
      source           - Download source archives
      sources          - Edit /etc/apt/sources.list with nano
      unhold           - Unhold a package
      update           - Download lists of new/upgradable packages
      upgrade          - Perform a safe upgrade
      version          - Show the installed version of a package
    
    This apt has Super Cow Powers
    

    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 anstatt full-upgrade
    * sources anstatt edit-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“…

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

  8. 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).

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

  10. Hallo Zusammen,

    Ich nutze ein RasPi mit Raspbian.

    Es funktionieren tatsächlich beide Versionen, aber mit einem Unterschied.

    sudo apt-get upgrade

    ergibt die gewohnte Ausgabe, hält aber 13 Aktualisierungen zurück, bietet sie also zur Installation nicht an sondern nennt nur deren Vorhandensein.

    sudo apt upgrade

    würde von den 13 Paketen 12 aktualisieren wollen.

    Warum machen zwei eigentlich gleiche Befehle daß so anders?

    Habt Ihr eine Idee?

    Lg, Woody

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

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein