====== Менеджеры пакетов ======
# настройка варианта
update-alternatives --config java
# перечень
update-java-alternatives --list
# добавление нового варианта (последние цифры не сильно важны)
update-alternatives --install /usr/bin/java java /usr/lib/jvm/bellsoft-java17/bin/java 333
# тут какая то инфа
update-alternatives --display java
# расположение jvm
/usr/lib/jvm/
===== apt =====
* **install** - установка
* **remove** - удаление
* **purge** - полностью удалит пакет и все конфиги
* **autoremove** - тоже очистка ненужного
* **show** - информация о пакете
* **reinstall** - переустановить пакет
* **list** - список установленных пакетов
* **download (source)** - скачать пакет (исходный код пакета) в текущую директорию
==== Репозитории ====
:!: Репозитории
# Добавить репозиторий
add-apt-repository "deb https://target-site stable main"
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list
# или просто в файле **/etc/apt/sources.list**
# Импорт gpg-ключей
# Актуальный вариант
curl -s | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/<новое-имя>.gpg --import
# Затем
sudo chmod 644 /etc/apt/trusted.gpg.d/<новое-имя>.gpg
# Старый вариант (может потребоваться установка gnupg2)
wget -q -O - https://target-site/gpg.key | apt-key add -
**Main** – свободное ПО, официально поддерживаемое компанией Canonical\\
**Restricted** – проприетарное ПО (в основном — драйверы устройств), официально поддерживаемое компанией Canonical\\
**Universe** – свободное ПО, официально не поддерживаемое компанией Canonical (но поддерживаемое сообществом пользователей)\\
**Multiverse** – проприетарное ПО, не поддерживаемое компанией Canonical\\
# Ubuntu example
deb http://ru.archive.ubuntu.com/ubuntu/ focal main universe multiverse
deb-src http://ru.archive.ubuntu.com/ubuntu/ focal main universe multiverse
===== dnf (yum) =====
* **-qi** - получить информацию об установленном пакете
* **-qip** - посмотреть файлы документации определенного пакета
* **-qpR** - Проверить зависимости rpm пакета перед установкой
* **-ivh** - установка
* **-e** - удаление (--nodeps)
dnf autoremove - авточистка
dnf info - инфо о пакете
dnf search [-C] - поиск пакетов (отказ от обновления метаданных)
dnf list [installed/available] - перечень пакетов
dnf repolist - перечень репозиториев
dnf clean all - очистка метаданных
dnf update/upgrade - обновление пакетов
dnf makecache - пересоздать кеш пакетов заново
dnf remove/erase httpd
dnf -v repolist
dnf list installed | cat -n
# Распаковать пакет
sudo rpm2cpio ha_wrapper-1.0.0-20.noarch.rpm | cpio -idmv
===== snap =====
# Установка
snap install --classic(?) --stable(канал)
snap info
# Вроде установить версию в режиме разработки чтобы не обновлялась автоматом
snap refresh --devmode --channel 2022.3/stable intellij-idea-community
# Доступные обнвления
snap refresh --list
# Обновить пакет
snap refresh opera
# Удалить пакет
snap revert opera
# Список пакетов (версий пакета)
snap list
snap list --all opera
# Внесенные изменения в систему
snap changes
# Создать снимок
snap save
# Список снимков
snap saved
snap saved --id=2
# Проверить целостность снимка
snap check-snapshot 2
# Восстановить снимок
snap restore 2
# Удалить снимок
snap forget 2
===== dpkg =====
* **-i имя_файла** - установка указанного deb пакета
* **-s пакет** - информация о пакете, статус установки, версия, зависимости и т.д.
* **--list** - все установленные пакеты
* **--configure -a** - очистка от ненужного
При установке **deb** пакета, в случае отсутствующих зависимостей, можно выполнить команду **# apt-get install -f**, которая установит все зависимости, после повторить установку **# dpkg -i file-name.deb**.\\
Так же, можно скопировать deb-файл в папку **/var/cache/apt/archives/** и установить как обычную программу **# apt install file-name**