====== Обновление ПО дистрибутивов Линукс ======
===== Suse,OpenSuse =====
[[https://linuxcommandlibrary.com/man/zypper.html|man zypper]]
Консольная программа zypper, используемая в [Open]Suse, позволяет сокращать свои команды. Удобно: refresh - ref, update - up, install - in, search - se и т.д.
Обновить список ПО из подключенных репозиториев:
zypper ref
Обновить ПО, имеющего в репозиториях новые версии:
zypper up
Поиск пакета
zypper se имя_пакета
Установка
zypper in имя_пакета
Удаление
zypper rm имя_пакета
===== Debian,Ubuntu =====
[[https://manpages.ubuntu.com/manpages/xenial/man8/apt.8.html|man apt]], [[https://www.opennet.ru/man.shtml?category=8&topic=dpkg|man dpkg]]
Обновить список ПО из репозиториев
apt update
Вывести список пакетов, для которых доступно обновление
apt list --upgradable
Обновить
apt upgrade
Обновить конкретные пакеты, а не все
apt install --reinstall <список пакетов>
Поиск
apt search имя_пакета
Установка
apt install имя_пакета
Удаление
apt remove имя_пакета
Удаление с очисткой данных программы
apt purge имя_пакета
Удалить локально установленные пакеты (не из репозиториев. иногда такие остаются после апгрейда ОС)
apt list --installed|grep local|awk -F '/' '{print $1}'|xargs
apt remove $(apt list --installed|grep local|awk -F '/' '{print $1}'|xargs)
Удаление "хвостов" (конфигов, дополнительных данных) от удаленных пакетов.
apt purge $(dpkg -l | grep '^rc' | awk '{print $2}')
dpkg -l | grep "^rc" | awk '{print $2}' | sudo xargs dpkg -P
Поиск уязвимых пакетов для последующего обновления (через apt install)
debsecan --suite bullseye --format packages --only-fixed
Если установлен lsb_release, то можно так:
debsecan --suite $(lsb_release -cs) --format packages --only-fixed
Получение списка установленных пакетов с информацией о репозитории откуда он установлен
dpkg -l | grep "ii" | awk '{print $2}' | xargs -n 1 -IX sh -c "apt policy X 2>/dev/null | tr '\n' ' ';printf '\n'" | tee all_packages.txt
Определить к какому установленому пакету принадлежит файл
dpkg-query -S путь/к/файлу
Вывести список файлов в установленном пакете
dpkg -L package_name
==== Решение проблем ====
Ошибка: "NO_PUBKEY 648ACFD622F3D138"
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
Предупреждение "Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details."
apt-key --keyring /etc/apt/trusted.gpg list
#Ищем id ключа (напр. 91E7EE5E)
apt-key export 91E7EE5E | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/repo_name.gpg
Так тоже работает
cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d
См. также [[https://devicetests.com/solving-apt-key-deprecated-warning]]
===== RHEL,Centos =====
[[https://www.opennet.ru/man.shtml?category=8&topic=yum|man yum]]
yum update
yum list available
yum search available
yum install
yum remove
dnf - почти прозрачно заменяет yum в свежих версиях RHEL,Centos
===== Дебиан, хренебиан - какая разница =====
==== PackageKit ====
В дистрибутивах с PackageKit(Suse,Ubuntu и др.) можно использовать утилиту pkcon. [[https://manpages.ubuntu.com/manpages/trusty/man1/pkcon.1.html|man pkcon]]
pkcon refresh
pkcon update
pkcon search
pkcon install
pkcon remove
==== yum/apt ====
В [Open]Suse можно установить apt, в Ubuntu/Debian можно установить yum
===== Дополнительные репозитории дебиан =====
==== Postgresql ====
[[https://wiki.postgresql.org/wiki/Apt]]
sudo apt install curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc
Create /etc/apt/sources.list.d/pgdg.list. The distributions are called codename-pgdg. In the example, replace bookworm with the actual distribution you are using. File contents:
deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main
(You may determine the codename of your distribution by running lsb_release -c). For a script version of the above file creation, presuming you are using a supported release:
sudo sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Finally, update the package lists, and start installing packages:
sudo apt update
sudo apt install postgresql-15
==== Репозитории HP Enterpise ====
[[hard:hpe_repository|]]
==== Репозитории MySQL ====
[[https://dev.mysql.com/downloads/]]
{{tag>linux}}