apt
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| apt [2025-09-17 19:25:18] – [APT Einstellungen] david | apt [2026-04-21 20:05:14] (aktuell) – david | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Apt ====== | ||
| + | |||
| + | siehe: [[linux_paketmanager# | ||
| + | |||
| + | |||
| + | ===== APT Einstellungen ===== | ||
| + | |||
| + | Im folgenden werden **backports** die gleiche Priorität wie den jeweiligen dazugehörigen Repositories zugewiesen (Priorität '' | ||
| + | Allerdings ist dies nicht immer erwünscht, da **backports** nicht im gleichen Maße getestet werden wie die regulären Repositories. | ||
| + | |||
| + | * automatisch aus **stable** installieren (Priorität '' | ||
| + | * niemals automatisch aus **testing** installieren (Priorität '' | ||
| + | * niemals automatisch aus **unstable** installieren (Priorität '' | ||
| + | |||
| + | <code bash / | ||
| + | # stable | ||
| + | Package: * | ||
| + | Pin: release n=trixie, o=Debian | ||
| + | Pin-Priority: | ||
| + | |||
| + | Package: * | ||
| + | Pin: release n=trixie-security, | ||
| + | Pin-Priority: | ||
| + | |||
| + | Package: * | ||
| + | Pin: release n=trixie-updates, | ||
| + | Pin-Priority: | ||
| + | |||
| + | # stable-backports | ||
| + | Package: * | ||
| + | Pin: release n=trixie-backports, | ||
| + | Pin-Priority: | ||
| + | |||
| + | # stable-backports: | ||
| + | Package: linux-headers-* linux-image-* | ||
| + | Pin: release n=trixie-backports, | ||
| + | Pin-Priority: | ||
| + | |||
| + | # testing | ||
| + | Package: * | ||
| + | Pin: release n=forky, o=Debian | ||
| + | Pin-Priority: | ||
| + | |||
| + | Package: * | ||
| + | Pin: release n=forky-security, | ||
| + | Pin-Priority: | ||
| + | |||
| + | Package: * | ||
| + | Pin: release n=forky-updates, | ||
| + | Pin-Priority: | ||
| + | |||
| + | # testing-backports | ||
| + | Package: * | ||
| + | Pin: release n=forky-backports, | ||
| + | Pin-Priority: | ||
| + | |||
| + | # unstable | ||
| + | Package: * | ||
| + | Pin: release n=sid, o=Debian | ||
| + | Pin-Priority: | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== APT Quellen ===== | ||
| + | |||
| + | * siehe | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | * seit debian 13 ist das deb822 format standard (siehe '' | ||
| + | * die alte datei ''/ | ||
| + | * seit debian 12 gibt es die neue komponente '' | ||
| + | * dadurch wird folgende konfiguration erleichtert: | ||
| + | |||
| + | <code bash / | ||
| + | # stable | ||
| + | Enabled: yes | ||
| + | Types: deb | ||
| + | URIs: https:// | ||
| + | Suites: trixie trixie-updates trixie-backports | ||
| + | Components: main contrib non-free non-free-firmware | ||
| + | Signed-By: / | ||
| + | |||
| + | Enabled: yes | ||
| + | Types: deb | ||
| + | URIs: https:// | ||
| + | Suites: trixie-security | ||
| + | Components: main contrib non-free non-free-firmware | ||
| + | Signed-By: / | ||
| + | |||
| + | # testing | ||
| + | Enabled: no | ||
| + | Types: deb | ||
| + | URIs: https:// | ||
| + | Suites: forky forky-updates forky-backports | ||
| + | Components: main contrib non-free non-free-firmware | ||
| + | Signed-By: / | ||
| + | |||
| + | Enabled: no | ||
| + | Types: deb | ||
| + | URIs: https:// | ||
| + | Suites: forky-security | ||
| + | Components: main contrib non-free non-free-firmware | ||
| + | Signed-By: / | ||
| + | |||
| + | # unstable | ||
| + | Enabled: no | ||
| + | Types: deb | ||
| + | URIs: https:// | ||
| + | Suites: sid | ||
| + | Components: main contrib non-free non-free-firmware | ||
| + | Signed-By: / | ||
| + | </ | ||
| + | |||
| + | falls der debian archiv keyring nicht aktuell oder kaputt ist: | ||
| + | |||
| + | <code bash> | ||
| + | # debian archive keyring installieren | ||
| + | apt upgrade debian-archive-keyring | ||
| + | |||
| + | # alternative: | ||
| + | apt reinstall -o Dpkg:: | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Upgrade ===== | ||
| + | |||
| + | tags für suche: apt-get, apt, aptitude, update, upgrade, dist-upgrade, | ||
| + | |||
| + | ==== Skript ==== | ||
| + | |||
| + | Dieses Skript in den PATH legen (z.B. ''/ | ||
| + | |||
| + | <code bash upgrade.sh> | ||
| + | #!/bin/bash | ||
| + | |||
| + | # | ||
| + | # | ||
| + | # totsicheres Update | ||
| + | # es sollte alle gängigen Probleme, durch mehrmahligen Aufruf, beheben | ||
| + | # | ||
| + | # | ||
| + | |||
| + | time ( | ||
| + | #apt -y purge plymouth | ||
| + | locale-gen ; | ||
| + | rm -fr / | ||
| + | apt-get -y autoclean ; | ||
| + | apt-get -y autoremove ; | ||
| + | apt -y autoclean ; | ||
| + | apt -y autoremove ; | ||
| + | dpkg --configure -a ; | ||
| + | apt-get -y dist-upgrade ; | ||
| + | apt-get -y autoclean ; | ||
| + | apt-get -y autoremove ; | ||
| + | apt -y autoclean ; | ||
| + | apt -y autoremove ; | ||
| + | |||
| + | apt install linux-headers-generic linux-image-generic ; | ||
| + | apt autoremove | ||
| + | apt -y update && apt -y full-upgrade | ||
| + | |||
| + | #apt -y install ubuntu-drivers-common alsa-utils | ||
| + | # | ||
| + | ) && echo OK | ||
| + | |||
| + | dpkg --configure -a | ||
| + | # | ||
| + | #fwupdmgr get-upgrades | ||
| + | |||
| + | apt -y purge $(dpkg -l | sed " | ||
| + | apt -y purge $(dpkg -l | sed " | ||
| + | dpkg -l | awk '/ | ||
| + | lsb_release -a | ||
| + | uname -a | ||
| + | cat / | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Alternatives Skript ==== | ||
| + | |||
| + | Dieses Skript in den PATH legen (z.B. '' | ||
| + | * aktuellste version: [[https:// | ||
| + | * __supported__: | ||
| + | * __not supported__: | ||
| + | * ohne sudo aufrufen, weil sudo am anfang des skripts aufgerufen wird (wenn user in der richtigen gruppe ist und nicht root ist) | ||
| + | * bevorzugt als sudoer aufrufen (nicht als root) wegen flatpak usw., funktioniert aber auch als root oder nicht sudoer, code blöcke werden je nachdem dann übersprungen | ||
| + | * sudo credential cache wird während der skript ausführung frisch gehalten, d.h. man muss nur 1x am anfang das passwort eingeben, egal wie lange das update braucht | ||
| + | |||
| + | <code bash up.sh> | ||
| + | # | ||
| + | |||
| + | set -o nounset | ||
| + | set -o pipefail | ||
| + | |||
| + | has_sudo=false | ||
| + | is_root=false | ||
| + | sudo="" | ||
| + | |||
| + | if test " | ||
| + | then | ||
| + | is_root=true | ||
| + | fi | ||
| + | |||
| + | if test " | ||
| + | then | ||
| + | has_sudo=true | ||
| + | sudo -v | ||
| + | |||
| + | while true | ||
| + | do | ||
| + | sleep 60 | ||
| + | sudo -nv | ||
| + | kill -0 " | ||
| + | done > /dev/null 2>&1 & | ||
| + | fi | ||
| + | |||
| + | if test " | ||
| + | then | ||
| + | sudo=" | ||
| + | fi | ||
| + | |||
| + | # apt | ||
| + | if command -v apt > /dev/null 2>&1 && { test " | ||
| + | then | ||
| + | kernel=(linux-headers-generic linux-image-generic) | ||
| + | if apt-cache show raspberrypi-bootloader > /dev/null 2>&1 | ||
| + | then | ||
| + | kernel=(raspberrypi-bootloader raspberrypi-kernel raspberrypi-kernel-headers) | ||
| + | fi | ||
| + | |||
| + | time { | ||
| + | ${sudo} locale-gen && | ||
| + | ${sudo} dpkg --configure -a && | ||
| + | ${sudo} apt-get update && | ||
| + | ${sudo} apt-get autoclean && | ||
| + | ${sudo} apt-get autoremove && | ||
| + | ${sudo} apt-get install " | ||
| + | ${sudo} apt-get dist-upgrade && | ||
| + | ${sudo} apt-get autoremove && | ||
| + | ${sudo} dpkg --configure -a | ||
| + | } | ||
| + | exit_code=" | ||
| + | |||
| + | reboot_required="" | ||
| + | if test -e / | ||
| + | then | ||
| + | reboot_required=" | ||
| + | fi | ||
| + | |||
| + | if test " | ||
| + | then | ||
| + | printf "\nAPT SUCCEEDED%s\n\n" | ||
| + | else | ||
| + | printf "\nAPT FAILED%s\n\n" | ||
| + | fi | ||
| + | fi | ||
| + | |||
| + | # brew | ||
| + | if command -v brew > /dev/null 2>&1 && test " | ||
| + | then | ||
| + | brew update && brew upgrade && brew upgrade --cask --greedy | ||
| + | printf " | ||
| + | fi | ||
| + | |||
| + | # dnf | ||
| + | if command -v dnf > /dev/null 2>&1 && { test " | ||
| + | then | ||
| + | time { | ||
| + | ${sudo} dnf --refresh upgrade && | ||
| + | ${sudo} dnf autoremove | ||
| + | } | ||
| + | exit_code=" | ||
| + | |||
| + | reboot_required="" | ||
| + | if ! ${sudo} dnf needs-restarting -r > /dev/null 2>&1 | ||
| + | then | ||
| + | reboot_required=" | ||
| + | fi | ||
| + | |||
| + | if test " | ||
| + | then | ||
| + | printf "\nDNF SUCCEEDED%s\n\n" | ||
| + | else | ||
| + | printf "\nDNF FAILED%s\n\n" | ||
| + | fi | ||
| + | fi | ||
| + | |||
| + | # flatpak | ||
| + | if command -v flatpak > /dev/null 2>&1 | ||
| + | then | ||
| + | flatpak update | ||
| + | printf " | ||
| + | fi | ||
| + | |||
| + | if test " | ||
| + | then | ||
| + | ${sudo} flatpak update | ||
| + | printf " | ||
| + | fi | ||
| + | |||
| + | # pipx | ||
| + | if command -v pipx > /dev/null 2>&1 | ||
| + | then | ||
| + | pipx upgrade-all | ||
| + | printf " | ||
| + | fi | ||
| + | |||
| + | if test " | ||
| + | then | ||
| + | ${sudo} pipx upgrade-all | ||
| + | printf " | ||
| + | fi | ||
| + | </ | ||
| + | |||
