Содержание
Обновление ПО дистрибутивов Линукс
Suse,OpenSuse
Консольная программа zypper, используемая в [Open]Suse, позволяет сокращать свои команды. Удобно: refresh - ref, update - up, install - in, search - se и т.д.
Обновить список ПО из подключенных репозиториев:
zypper ref
Обновить ПО, имеющего в репозиториях новые версии:
zypper up
Поиск пакета
zypper se имя_пакета
Установка
zypper in имя_пакета
Удаление
zypper rm имя_пакета
Debian,Ubuntu
Обновить список ПО из репозиториев
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
yum update
yum list available
yum search available
yum install
yum remove
dnf - почти прозрачно заменяет yum в свежих версиях RHEL,Centos
Дебиан, хренебиан - какая разница
PackageKit
В дистрибутивах с PackageKit(Suse,Ubuntu и др.) можно использовать утилиту pkcon. 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