Инструменты пользователя

Инструменты сайта


how-to:apt

Apt

Показать доступные версии пакета (на примере docker-ce):

apt-cache madison docker-ce

Установить определённую версию пакета (на примере docker-ce):

sudo apt-get install docker-ce=<VERSION_STRING>

proxy

Добавить прокси сервер для работы apt, на примере proxy.domain.com:3128 без аутентификации:

echo Acquire::http::Proxy \"http://proxy.domain.com:3128\"\; | sudo tee /etc/apt/apt.conf.d/proxy

Добавление PPA репозиториев через прокси, на примере proxy.domain.com:3128 без аутентификации и репозитории ppa:ondrej/php:

export http_proxy=http://proxy.domain.com:3128
export https_proxy=http://proxy.domain.com:3128
sudo -E add-apt-repository ppa:ondrej/php

Автообновление

Для отключения автообновления приводим /etc/apt/apt.conf.d/20auto-upgrades к виду:

APT::Periodic::Unattended-Upgrade "0";

или меняем значения одной командой:

sudo sed '/Upgrade/s/1/0/g' -i /etc/apt/apt.conf.d/20auto-upgrades

Опции

/etc/apt/apt.conf.d/

  • APT::Periodic::Enable: включить/отключить обновление, 1 – вкл, 0 – выкл
  • APT::Periodic::Update-Package-Lists: как часто выполнять apt update в днях, 0 – отключить вообще
  • APT::Periodic::Download-Upgradeable-Packages: как часто выполнять apt-get upgrade –download-only
  • APT::Periodic::Unattended-Upgrade: как часто выполнять apt upgrade
  • APT::Periodic::AutocleanInterval: как часто выполнять apt-get autoclean
  • APT::Periodic::Verbose: отправить сообщения на почту и их детализация:
      0 – отключить вообще
      1 – весь прогресс upgrade
      2 – весь прогресс upgrade + stdout прогармм
      3 – то же, плюс трассировка

https://rtfm.co.ua/debian-avtomaticheskie-obnovleniya-s-pomoshhyu-unattended-upgrades-i-otpravka-pochty-cherez-aws-ses/

Ошибки

NO_PUBKEY

Пример ошибки:

W: GPG error: https://ppa.launchpadcontent.net/dotnet/backports/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 2125B164E8E5D3FA
E: The repository 'https://ppa.launchpadcontent.net/dotnet/backports/ubuntu jammy InRelease' is not signed.

Решение:

apt-key

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 45A3F127159BE9E5017811C62125B164E8E5D3FA
apt-key export 45A3F127159BE9E5017811C62125B164E8E5D3FA | gpg --dearmour -o /etc/apt/trusted.gpg.d/dotnet.gpg

Автоматически добавить отсутствующий ключ:

KEY=$(apt-get update 2>&1 | grep -o '[0-9A-Z]\{16\}$' | sort | uniq) && apt-key adv --recv-keys --keyserver keyserver.ubuntu.com ${KEY} && apt-key export 45A3F127159BE9E5017811C62125B164E8E5D3FA | gpg --dearmour -o /etc/apt/trusted.gpg.d/${KEY}.gpg

gpg

gpg --keyserver hkp://keyserver.ubuntu.com:80 --no-default-keyring --keyring /etc/apt/trusted.gpg.d/dotnet.gpg --recv-keys 45A3F127159BE9E5017811C62125B164E8E5D3FA

Key is stored in legacy trusted.gpg keyring

Решение (пример для Skype):

apt-key list
 
pub   rsa2048 2016-06-22 [SC]
      D404 0146 BE39 7250 9FD5  7FC7 1F30 45A5 DF75 87C3
uid         [ неизвестно ] Skype Linux Client Repository <se-um@microsoft.com>
sub   rsa2048 2016-06-22 [E]
apt-key export DF7587C3 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/skype.gpg

https://askubuntu.com/questions/1407632/key-is-stored-in-legacy-trusted-gpg-keyring-etc-apt-trusted-gpg

gpg: keyserver receive failed: No dirmngr

Пример ошибки:

gpg: failed to create temporary file '/root/.gnupg/.#lk0x00005b74ab704330.dda6d56baf41.2264': No such file or directory
gpg: connecting dirmngr at '/root/.gnupg/S.dirmngr' failed: No such file or directory
gpg: keyserver receive failed: No dirmngr

Решение

apt install dirmngr
how-to/apt.txt · Последнее изменение: 127.0.0.1