DEBIAN_CODENAME="$( grep "VERSION_CODENAME" "/etc/os-release" | cut --delimiter "=" --fields "2" )" apt_clean() { apt-get \ clean } apt_conf_write() { printf "\ Acquire::AllowInsecureRepositories False; Acquire::AllowWeakRepositories False; Acquire::AllowDowngradeToInsecureRepositories False; Acquire::Check-Valid-Until True; APT::Install-Recommends False; APT::Install-Suggests False; APT::Get::Show-Versions True; Dir::Etc::SourceParts \"\"; Dpkg::Progress True; " >"/etc/apt/apt.conf.d/apt.conf" } apt_install_backports() { apt_install_target "${DEBIAN_CODENAME}-backports" "${@}" } apt_install_release() { apt_install_target "${DEBIAN_CODENAME}" "${@}" } apt_install_target() { local target="${1}" shift local package for package in "${@}"; do log_info log_info "${package} ← ${target}" apt-get \ install \ --assume-yes \ --target-release "${target}" \ "${package}" apt_clean done } apt_sources_write() { printf "%s" "\ deb https://deb.debian.org/debian \ ${DEBIAN_CODENAME} main non-free-firmware contrib non-free deb https://deb.debian.org/debian \ ${DEBIAN_CODENAME}-backports main non-free-firmware contrib non-free deb https://deb.debian.org/debian \ ${DEBIAN_CODENAME}-updates main non-free-firmware contrib non-free deb https://deb.debian.org/debian-security \ ${DEBIAN_CODENAME}-security main non-free-firmware contrib non-free " >"/etc/apt/sources.list" } apt_update() { apt-get \ update } apt_upgrade() { apt-get \ upgrade \ --assume-yes apt_clean } debian_disable_frontend() { export DEBIAN_FRONTEND="noninteractive" }