{"id":1647,"date":"2023-09-09T15:28:18","date_gmt":"2023-09-09T13:28:18","guid":{"rendered":"https:\/\/linux-bibel.at\/?p=1647"},"modified":"2023-09-09T15:28:19","modified_gmt":"2023-09-09T13:28:19","slug":"topgrade-das-komplette-linux-system-mit-allen-paketmanagern-aktualisieren-ein-befehl","status":"publish","type":"post","link":"https:\/\/linux-bibel.at\/index.php\/2023\/09\/09\/topgrade-das-komplette-linux-system-mit-allen-paketmanagern-aktualisieren-ein-befehl\/","title":{"rendered":"Topgrade &#8211; das komplette Linux-System mit allen Paketmanagern aktualisieren &#8211; ein Befehl"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Wenn man die Beitr\u00e4ge auf der Linux Bibel schon l\u00e4nger verfolgt oder sich auch \u00e4ltere ein wenig ansieht &#8211; wir k\u00f6nnen unter Linux aus vielen unterschiedlichen Quellen installieren:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>APT &#8211; der Paketmanager von auf Debian basierenden Linux-Distributionen<\/li>\n\n\n\n<li>Flatpak &#8211; ein Paketmanager von Red Hat \/ Fedora<\/li>\n\n\n\n<li>Snap &#8211; ein Paketmanager von Canonical \/ Ubuntu<\/li>\n\n\n\n<li>Python Package Repository &#8211; Python-Software<\/li>\n\n\n\n<li>Cargo &#8211; das Rust-Repository<\/li>\n\n\n\n<li>Appimages &#8211; ausf\u00fchrbare Pakete<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Und nein, wir sprechen hier nicht von den Paketmanagern unterschiedlicher Linux-Distributionen &#8211; dies war gerade einmal Debian und darauf basierenden Distributionen wie Ubuntu. Die ersten drei genannten lassen sich \u00fcber grafische Paketmanager wie Discover (<em>KDE Plasma<\/em>) oder Ubuntu-Software mit einem Schlag aktualisieren &#8211; am\u00a0Terminal\u00a0m\u00fcsste man aber schon drei Befehle extra starten, die letzten drei gilt es sowieso extra zu aktualisieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W\u00e4re es nicht interessant, alle Software mit einem Schlag zu aktualisieren? Ich habe gerade&nbsp;<a href=\"https:\/\/github.com\/r-darwish\/topgrade\" target=\"_blank\" rel=\"noreferrer noopener\">Topgrade &#8211; GitHub<\/a>&nbsp;gefunden, diese Software soll genau dies k\u00f6nnen &#8211; und diese sehen wir uns jetzt etwas n\u00e4her an.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Topgrade installieren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Unter auf Debian basierenden Linux-Distributionen schaffen wir erst einmal die Voraussetzungen &#8211; \u00fcber die\u00a0Paket-Verwaltung\u00a0installieren wir die Pakete &#8222;<strong>cargo libssl-dev pkg-config<\/strong>&#8222;. Etwa gleich als\u00a0Administrator\u00a0am Terminal mit dem Befehl:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install cargo libssl-dev pkg-config<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt k\u00f6nnen wir Topgrade am Terminal als normaler Benutzer installieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cargo install topgrade<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>cargo install cargo-update<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Installation dauert ein wenig &#8211; die Software wird automatisch aus dem Quellcode in eine funktionierende Software \u00fcbersetzt:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-1024x576.jpg\" alt=\"\" class=\"wp-image-1648\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-1024x576.jpg 1024w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-300x169.jpg 300w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-768x432.jpg 768w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-1536x864.jpg 1536w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Topgrade nutzen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wie im Beitrag zu Cargo beschrieben, m\u00fcssen wir den Pfad zum Cargo-Verzeichnis erst in die &#8222;<strong>.bashrc<\/strong>&#8220; (<em>oder f\u00fcr Zsh in die &#8222;<strong>.zshrc<\/strong>&#8222;<\/em>) eintragen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo 'export PATH=$PATH:\/home\/BENUTZERNAME\/.cargo\/bin' &gt;&gt; \/home\/BENUTZERNAME\/.bashrc<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Oder f\u00fcr die ZSH:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo 'export PATH=$PATH:\/home\/BENUTZERNAME\/.cargo\/bin' &gt;&gt; \/home\/BENUTZERNAME\/.zshrc<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nach einem Neustart des Terminals k\u00f6nnen wir Topgrade am Terminal als normaler Benutzer mit dem Befehl:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>topgrade<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">starten:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-1-1024x576.jpg\" alt=\"\" class=\"wp-image-1649\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-1-1024x576.jpg 1024w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-1-300x169.jpg 300w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-1-768x432.jpg 768w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-1-1536x864.jpg 1536w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-1.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wir erhalten die Ausgabe:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2015\u2015 00:05:21 - System update \u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\ndoas: doas is not enabled, \/etc\/doas.conf: No such file or directory\n\nRetry? (y)es\/(N)o\/(s)hell\/(q)uit<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Und best\u00e4tigen mit &#8222;<strong><kbd>Eingabe<\/kbd><\/strong>&#8222;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-2-1024x576.jpg\" alt=\"\" class=\"wp-image-1650\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-2-1024x576.jpg 1024w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-2-300x169.jpg 300w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-2-768x432.jpg 768w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-2-1536x864.jpg 1536w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-2.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die Software zeigt uns Aktualisierungen und bietet an, diese zu installieren &#8211; hierzu geh\u00f6ren auch Firmware-Updates:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anschlie\u00dfend erhalten Sie eine ausf\u00fchrliche Meldung &#8211; etwa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2015\u2015 00:09:43 - Summary \u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\nSystem update: FAILED\nconfig-update: OK\noh-my-zsh: OK\ncargo: OK\nFlatpak: OK\nsnap: FAILED\nFirmware upgrades: OK<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Unter manchen Meldungen zeigt sich die Ausgabe:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>doas: doas is not enabled, \/etc\/doas.conf: No such file or directory<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ebenso die Meldungen am Ende:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>System update: FAILED\nsnap: FAILED<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr diese Aufgaben ben\u00f6tigt auch die Software nat\u00fcrlich administrative Rechte &#8211; hierzu installiert man sich \u00fcber die Paket-Verwaltung das Paket &#8222;<strong>doas<\/strong>&#8220; und erstellt mit administrativen Rechten am Terminal die Datei &#8222;<em>\/etc\/doas<\/em>&#8222;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/doas<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Datei bef\u00fcllt man anschlie\u00dfend mit den Benutzern, die den Befehl ausf\u00fchren d\u00fcrfen &#8211; etwa f\u00fcr die Benutzer &#8222;<strong>robert<\/strong>&#8220; und &#8222;<strong>katarina<\/strong>&#8220; (<em>pro Benutzer eine Zeile<\/em>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>permit robert as root\npermit katarina as root<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Datei wird mit\u00a0<strong><kbd>Strg+o<\/kbd><\/strong>\u00a0gespeichert, mit\u00a0<strong><kbd>Eingabe<\/kbd><\/strong>\u00a0wird best\u00e4tigt und mit\u00a0<strong><kbd>Strg+x<\/kbd><\/strong>\u00a0der Editor geschlossen. Jetzt funktionieren auch Updates mit root-Rechten (<em>der jeweilige Benutzer muss nur mit seinem Passwort best\u00e4tigen<\/em>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2015\u2015 00:09:48 - Summary \u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\u2015\nSystem update: OK\nconfig-update: OK\noh-my-zsh: OK\ncargo: OK\nFlatpak: OK\nsnap: OK\nFirmware upgrades: OK<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Software sucht sich also tats\u00e4chlich alle installierten Paketmanager &#8211; ich habe letztendlich das Python-Repo aktiviert (<em>einfach das Paket &#8222;<strong>python3-pip<\/strong>&#8220; installiert<\/em>) &#8211; dann kommt auch die Meldung:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip3: OK<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bis auf Appimages kommt die Software also mit allen Paketmanagern klar. Jetzt k\u00f6nnen wir die Software nat\u00fcrlich auch noch anpassen &#8211; der Software also zeigen, mit welchen Paketmanagern sie zusammenarbeiten soll. Nehmen wir beispielsweise\u00a0<strong>Flatpak<\/strong>\u00a0(<em><strong>flatpak<\/strong><\/em>) und\u00a0<strong>APT<\/strong>\u00a0(<em><strong>system<\/strong><\/em>) &#8211; &#8222;system&#8220; k\u00f6nnte jetzt auch der Paketmanager von openSUSE oder Arch Linux sein. F\u00fcr die aktuelle Sitzung:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>topgrade --disable flatpak system<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Und dauerhaft speichern:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>topgrade --edit-config<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Hier arbeiten wir standardm\u00e4\u00dfig mit\u00a0Vim\u00a0&#8211; au\u00dfer Sie haben die\u00a0<strong>.bashrc<\/strong>\u00a0\/\u00a0<strong>.zshrc<\/strong>\u00a0mit einem anderen Editor angepasst:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export EDITOR='\/usr\/bin\/nano'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-4-1024x576.jpg\" alt=\"\" class=\"wp-image-1651\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-4-1024x576.jpg 1024w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-4-300x169.jpg 300w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-4-768x432.jpg 768w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-4-1536x864.jpg 1536w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/topgrade-4.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Hier passen Sie die jeweiligen Paketmanager an &#8211; um etwa Flatpak und Snap zu deaktivieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>disable = &#91;\"flatpak\", \"snap\"]<\/code><\/pre>\n<div class=\"pld-like-dislike-wrap pld-custom\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir\" data-post-id=\"1647\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Hoch.png\" alt=\"Gef\u00e4llt mir\" \/>\r\n            <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">1    <\/span>\r\n<\/div><div class=\"pld-dislike-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-dislike-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir nicht\" data-post-id=\"1647\" data-trigger-type=\"dislike\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Runter.png\" alt=\"Gef\u00e4llt mir nicht\" \/>\r\n            <\/a>\r\n    <span class=\"pld-dislike-count-wrap pld-count-wrap\"><\/span>\r\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Wenn man die Beitr\u00e4ge auf der Linux Bibel schon l\u00e4nger verfolgt oder sich auch \u00e4ltere ein wenig ansieht &#8211; wir k\u00f6nnen unter Linux aus vielen unterschiedlichen Quellen installieren: Und nein, wir sprechen hier nicht von den Paketmanagern unterschiedlicher Linux-Distributionen &#8211; dies war gerade einmal Debian und darauf basierenden Distributionen wie Ubuntu. Die ersten drei genannten [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1650,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[64,17,4],"tags":[12,7,65,15,6],"class_list":["post-1647","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-verwalten","category-system","category-terminal","tag-kommandozeile","tag-shell","tag-software-verwalten","tag-system","tag-terminal"],"_links":{"self":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/1647","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/comments?post=1647"}],"version-history":[{"count":1,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/1647\/revisions"}],"predecessor-version":[{"id":1652,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/1647\/revisions\/1652"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media\/1650"}],"wp:attachment":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media?parent=1647"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/categories?post=1647"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/tags?post=1647"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}