Schlagwort: apt

  • APT 2.3.12 – Paketmanager wird restriktiver

    Yes, do as I say

    Julian Andres Klode, Entwickler bei Debian und Ubuntu hat gestern APT 2.3.12 freigegeben und damit auf ein in den letzten Tagen viral gegangenes YouTube der Plattform »Linus Tech Tips mit dem provokativen Titel «Linux hates me« reagiert. Es geht darin um eine Wette, in der die beiden Protagonisten Windows 11 für einen Monat durch Linux ersetzen.

    Alle Warnungen in den Wind geschlagen

    Ab Minute 10 versucht einer der Protagonisten, der sich Pop!_OS von System76 ausgesucht hatte, dort Steam zu installieren. Durch einen Fehler in der Paketierung der Distribution erschien eine Warnung, die Installation von Steam sei nicht möglich, da dabei essenzielle Pakete entfernt würden.

    APT schlug vor, um Steam trotzdem zu installieren, müsse die Phrase Yes, do as I say eingetippt werden. Gesagt – getan: Um aus der Perspektive von umsteigewilligen Windows-Usern die Fallstricke von Linux aufzuzeigen, folgt der Protagonist, der auch noch Linus heißt, dem Vorschlag, tippte die Phrase ein und zerstörte wegen der entfernten essenziellen Paketen die Installation.

    Fehler in der Steam-Paketierung

    Dazu ist erstens zu sagen: Die Schuld liegt hier zunächst in der fehlerhaften Paketierung von Steam durch System76. Die Entwickler haben den Fehler schnell behoben, die Produktion des Videos überschnitt sich mit dem Bugfix.

    https://twitter.com/jeremy_soller/status/1453008808314351628

    Reagieren User wirklich so?

    Dass sich Linus über die eindeutige Warnung inklusive der Liste der zu entfernenden Pakete hinwegsetzt und das System schrottet, soll wohl suggerieren, dass sich viele Anwender so verhalten würden. Ob das stimmt, vermag ich nicht zu beurteilen, allerdings wird es für jeden, der es so macht, einen Lerneffekt haben, der ihn entweder zu intensiverem Lesen und Beachten von Warnungen veranlasst oder gleich zu Windows zurückführt. Dass sich Linus dann im Video über den Hard-Reset seines Systems so echauffiert ist natürlich lächerlich, nachdem er dem System die Existenzgrundlage für die Desktop-Umngebung entzogen hat.

    Apt unschuldig?

    Dass APT ein solches Übergehen einer Warnmeldung zulässt, mag jeder beurteilen wie er mag. Ich denke, es gehört zu einem freien Betriebssystem wie Linux mit dazu, dass, wer weiß, was er tut, dies auch tun können muss. Immerhin muss man eine Phrase eintippen und nicht einfach eine Bestätigung anklicken. Wer nicht weiß, was er tut und dennoch fortfährt, ist selbst schuld.

    Obwohl APT hier meiner Meinung nach die wenigste Schuld trifft, haben die Debian-Entwickler reagiert und eine Änderung der Entwickler von Pop!_OS übernommen und die Phrase zum Übergehen der Warnung versteckt. An deren Stelle taucht nun die Meldung This operation is not permitted because it will break the systemauf. Um dennoch auf eigene Verantwortung die Phrase zum Übergehen anzeigen zu lassen, bedarf es einer Anpassung der Konfiguration.

    Wie seht ihr hier die Verantwortung der Beteiligten? Soll APT dem User die Freiheit lassen, sein System zu zerstören? Ist Linus zu doof für Linux?

  • Effektive Paketsuche mit APT

    Effektive Paketsuche mit APT

    Wer unter Debian lieber auf der Kommandozeile zu Hause ist als in der bunten Welt der GUIs, der wird seine Aufgaben der Paketverwaltung vermutlich mittels APT, Aptitude und DPKG erledigen. Was macht ihr, wenn ihr unter Debian ein Paket installieren wollt, aber den genauen Paketnamen nicht (mehr) wisst? Ich nutze dann apt search. Alternativ kann man auch apt-cache search nutzen, dass sich lediglich in der Formatierung der Ausgabe unterscheidet und eine sicherere Verwendung in Scripten gewährleistet als apt search.

    Um effektiv nach Paketen suchen zu können, sind die vorhandenen Befehle ohne zusätzliche Parameter aber meist nicht besonders zielführend.

    Ohne Eingrenzung untauglich

    Wer schon einmal eine Suche nach

    apt search git

    gestartet hat, wird sich gewundert haben, dass er viele Treffer erhält, die vermeintlich nichts mit dem Suchbegriff zu tun haben. Das liegt daran, dass der Suchbegriff nicht weiter eingegrenzt wurde. Es werden Pakete gefunden, die den String git im Namen haben (also z. B. auch digital) oder bei denen git in der Paketbeschreibung vorkommt. Sucht man etwa mit diesem Befehl, so erhält man fast 10.000 Treffer

    ft@blue:~$ apt search git | wc -l
    9608

    Zur Eingrenzung können reguläre Ausdrücke (Regex) zum Einsatz kommen. So sorgt

    apt search ^git$

    dafür, dass ein Paket gesucht wird, das mit g beginnt, mit einem i fortfährt und mit einem t endet. Das begrenzt die Suche auf genau diesen Suchbegriff. Möchte man aber auch zusammengesetzte Paketnamen wie etwa qgit oder libnoggit-java finden, so empfiehlt sich

    apt search --names-only git | less

    oder verkürzt

    apt search -n git | less

    um alle Vorkommen zu finden, die git im Namen haben. Damit reduziert sich die Zahl der Treffer immerhin um die Hälfte im Vergleich zur Suche ohne -n auf ~ 5.000. Zur besseren Übersicht wurde hier der Pager less genutzt.

    Wenn wir uns nicht genau an den Paketnamen erinnern, können auch zwei Suchbegriffe kombiniert werden. Schauen wir einmal, was das mit und ohne -n bewirkt:

    ft@blue:~$ apt search lint rpm
    Sortierung… Fertig
    Volltextsuche… Fertig
    cmake-fedora/unstable,testing 2.7.2-1 all
      Set of scripts and cmake modules that simplify the release process
    
    debaux/unstable,testing 0.1.12-1.1 all
      Debian-Hilfsprogramme
    
    rpmlint/unstable 1.11-0.2 all
      RPM package checker

    Und nun mit -n:

    ft@blue:~$ apt search -n lint rpm
    Sortierung… Fertig
    Volltextsuche… Fertig
    rpmlint/unstable 1.11-0.2 all
      RPM package checker

    Ist der Name gänzlich entfallen, aber eine Kategorie bekannt, so können wir auch danach suchen:

    apt search metasearch engine
    Sortierung… Fertig
    Volltextsuche… Fertig
    python3-searx/unstable,testing 0.18.0+dfsg1-1 all
      Privacy-respecting metasearch engine - library package
    
    searx/unstable,testing 0.18.0+dfsg1-1 all
      Privacy-respecting metasearch engine

    Wenn ihr wissen wollt, ob die Fundstelle auch dem gesuchten Paket entspricht, so hilft euch die Ausgabe der Paketbeschreibung mit apt show [Paketname] weiter.

    Nur am Rande

    Ein Dauerbrenner in Debian-Foren und Chats ist die Diskussion, ob apt oder aptitude das bessere Werkzeug als Frontend für DPKG ist, denn aptitude bietet sogar eine mächtigere Suche. Die Frage stellt sich für mich so allerdings nicht, da ich über die Jahre festgestellt habe, dass aptitude bei Upgrades in Debian Stable gut funktioniert, während es bei schnell wechselnden Paketbeständen oft klüger ist als es sein sollte und apt oft besser mit der Auflösung komplizierter Upgrade-Situationen klarkommt als aptitude. Letzteres nutze ich nur, wenn ich komplexe Abfragen tätigen muss. So listet etwa der Befehl

    aptitude search '?narrow(?installed, !?archive(stable))'

    nur Pakete auf, die aus einem anderen Zweig als Stable installiert wurden.