Benutzer-Werkzeuge

Webseiten-Werkzeuge


apt

Dies ist eine alte Version des Dokuments!


Apt

APT Einstellungen

Im folgenden werden backports die gleiche Priorität wie den jeweiligen dazugehörigen Repositories zugewiesen (Priorität 500, ist standardmäßig 100), um relativ sicher neuere Paketversionen zur Verfügung zu haben. 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 500)
  • niemals automatisch aus testing installieren (Priorität -1)
  • niemals automatisch aus unstable installieren (Priorität -1)
/etc/apt/preferences.d/debian.pref
# stable
Package: *
Pin: release n=trixie, o=Debian
Pin-Priority: 500
 
Package: *
Pin: release n=trixie-security, o=Debian
Pin-Priority: 500
 
Package: *
Pin: release n=trixie-updates, o=Debian
Pin-Priority: 500
 
# stable-backports
Package: *
Pin: release n=trixie-backports, o=Debian Backports
Pin-Priority: 500
 
# stable-backports: kernel
Package: linux-headers-* linux-image-*
Pin: release n=trixie-backports, o=Debian Backports
Pin-Priority: 100
 
# testing
Package: *
Pin: release n=forky, o=Debian
Pin-Priority: -1
 
Package: *
Pin: release n=forky-security, o=Debian
Pin-Priority: -1
 
Package: *
Pin: release n=forky-updates, o=Debian
Pin-Priority: -1
 
# testing-backports
Package: *
Pin: release n=forky-backports, o=Debian Backports
Pin-Priority: -1
 
# unstable
Package: *
Pin: release n=sid, o=Debian
Pin-Priority: -1

APT Quellen

  • seit debian 13 ist das deb822 format standard (siehe man deb822), die standard datei für apt quellen ist nun /etc/apt/sources.list.d/debian.sources
    • die alte datei /etc/apt/sources.list sollte gelöscht werden um konflikte zu vermeiden
  • seit debian 12 gibt es die neue komponente non-free-firmware, sie wurde von non-free abgespalten und enthält nicht freie firmware pakete
    • dadurch wird folgende konfiguration erleichtert: Components: main non-free-firmware (möglichst wenig non-free pakete, aber gleichzeitig kritische firmware pakete)
/etc/apt/sources.list.d/debian.sources
# stable
Enabled: yes
Types: deb
URIs: https://deb.debian.org/debian
Suites: trixie trixie-updates trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
 
Enabled: yes
Types: deb
URIs: https://deb.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
 
# testing
Enabled: no
Types: deb
URIs: https://deb.debian.org/debian
Suites: forky forky-updates forky-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
 
Enabled: no
Types: deb
URIs: https://deb.debian.org/debian-security
Suites: forky-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
 
# unstable
Enabled: no
Types: deb
URIs: https://deb.debian.org/debian
Suites: sid
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

falls der debian archiv keyring nicht aktuell oder kaputt ist:

# debian archive keyring installieren
apt upgrade debian-archive-keyring
 
# alternative: debian archive keyring neuinstallieren und dabei originale keys wiederherstellen (z.b. falls ausversehen gelöscht/verändert)
apt reinstall -o Dpkg::Options::="--force-confmiss,confnew" debian-archive-keyring

Upgrade

tags für suche: apt-get, apt, aptitude, update, upgrade, dist-upgrade, full-upgrade, autoremove

Skript

Dieses Skript in den PATH legen (z.B. /usr/local/sbin/upgrade.sh oder /root/.local/bin/upgrade.sh) und dann als root mit upgrade.sh aufrufen

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 /var/lib/apt/lists/partial/* ;
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
#ubuntu-drivers install
) && echo OK
 
dpkg --configure -a
#ubuntu-drivers devices
#fwupdmgr get-upgrades
 
apt -y purge $(dpkg -l | sed "s/^ic[ ]*//;s/ .*//" | grep -E ^linux-)
apt -y purge $(dpkg -l | sed "s/^rc[ ]*//;s/ .*//" | grep -E ^linux-)
dpkg -l | awk '/linux-/{print $1,$2}'
lsb_release -a
uname -a
cat /var/run/reboot-required

Alternatives Skript

Dieses Skript in den PATH legen (z.B. ~/.local/bin/up.sh) und dann mit up.sh aufrufen

  • supported: apt (debian), brew (linux/macos), dnf (fedora), flatpak (linux) und pipx (linux/macos)
  • not supported: doas (sudo alternative)
  • 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
up.sh
#!/usr/bin/env bash
 
set -o nounset
set -o pipefail
 
has_sudo=false
is_root=false
sudo=""
 
if test "${EUID}" -eq 0
then
	is_root=true
fi
 
if test "${is_root}" = false && command -v sudo > /dev/null 2>&1 && id -nG "${USER}" | grep -Eqw 'admin|sudo|wheel'
then
	has_sudo=true
	sudo -v
 
	while true
	do
		sleep 60
		sudo -nv
		kill -0 "$$" || exit
	done > /dev/null 2>&1 &
fi
 
if test "${has_sudo}" = true
then
	sudo="sudo -H"
fi
 
# apt
if command -v apt > /dev/null 2>&1 && { test "${has_sudo}" = true || test "${is_root}" = true; }
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 "${kernel[@]}" &&
		${sudo} apt-get dist-upgrade &&
		${sudo} apt-get autoremove &&
		${sudo} dpkg --configure -a
	}
	exit_code="${?}"
 
	reboot_required=""
	if test -e /run/reboot-required || test -e /run/reboot-required.pkgs
	then
		reboot_required=" -> REBOOT REQUIRED"
	fi
 
	if test "${exit_code}" -eq 0
	then
		printf "\nAPT SUCCEEDED%s\n\n" "${reboot_required}"
	else
		printf "\nAPT FAILED%s\n\n" "${reboot_required}"
	fi
fi
 
# brew
if command -v brew > /dev/null 2>&1 && test "${is_root}" = false
then
	brew update && brew upgrade && brew upgrade --cask --greedy
	printf "\n"
fi
 
# dnf
if command -v dnf > /dev/null 2>&1 && { test "${has_sudo}" = true || test "${is_root}" = true; }
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=" -> REBOOT REQUIRED"
	fi
 
	if test "${exit_code}" -eq 0
	then
		printf "\nDNF SUCCEEDED%s\n\n" "${reboot_required}"
	else
		printf "\nDNF FAILED%s\n\n" "${reboot_required}"
	fi
fi
 
# flatpak
if command -v flatpak > /dev/null 2>&1
then
	flatpak update
	printf "\n"
fi
 
if test "${has_sudo}" = true && ${sudo} bash -c 'command -v flatpak > /dev/null 2>&1'
then
	${sudo} flatpak update
	printf "\n"
fi
 
# pipx
if command -v pipx > /dev/null 2>&1
then
	pipx upgrade-all
	printf "\n"
fi
 
if test "${has_sudo}" = true && ${sudo} bash -c 'command -v pipx > /dev/null 2>&1'
then
	${sudo} pipx upgrade-all
	printf "\n"
fi
/home/http/wiki/data/attic/apt.1776801739.txt · Zuletzt geändert: von david