Установка и удаление программ из консоли

В разных дистрибутивах Linux предусмотрены специальные менеджеры для установки приложений. Пользоваться ими удобно. К тому же, часто в них можно почитать описание программ, иногда посмотреть скриншоты и, совсем иногда, даже почитать комментарии пользователей. Но в этих менеджерах бывают не все программы или старые версии программ. В таких случаях без консоли не обойтись.

Репозитории

Это хранилища, откуда программы могут скачиваться и устанавливаться автоматически. У каждого дистрибутива Linux по умолчанию уже подключены один или несколько официальных репозиториев. Устанавливать оттуда программы — это самый правильный способ.

Если вы давно ничего не устанавливали или не обновляли из репозиториев, то сперва надо обновить их данные. Следующей командой обновляются данные всех подключенных к системе репозиториев:

sudo apt update

Установка программы:

sudo apt install название_программы

Например установка Libre Office:

sudo apt install libreoffice

Можно за один раз установить сразу несколько программ, просто перечислив их через пробел:

sudo apt install mc htop nginx

Устанавливаются новейшие версии программ, из тех, что доступны в подключенных репозиториях.

Через некоторое время в репозиториях могут появляться новые версии программ. Чтобы обновить только нужные программы используется команда:

sudo apt upgrade название_программы

Чтобы обновить все программы в вашей системе:

sudo apt upgrade

Сторонние репозитории

Как уже сказал, по умолчанию к дистрибутиву подключены лишь официальные репозитории. Они хороши тем, что включенные в них программы протестированы с дистрибутивом. Репозитории могут быть разными для разных версий дистрибутива, чтобы обеспечить совместимость одного с другим и на уровне версий.

Из сказанного должно быть понятно, что подключать к системе сторонние репозитории следует осторожнее, убедившись, что там содержится программа или программы именно для вашего дистрибутива. Ещё, осторожность не помешает и в смысле безопасности. Старайтесь подключать только официальные репозитории разработчиков программ, те, которым вы доверяете.

Подключать репозитории к системе можно разными способами. Обычно, как это делать, написано на официальных сайтах программ. Но, есть нюансы.

Пример подключения PPA-репозитория:

sudo add-apt-repository ppa:phoerious/keepassxc

Выполнив такую команду мы получаем информацию об указанном репозитории и запрос — продолжить или отменить его подключение.

Синтаксис команды:

sudo add-apt-repository ppa:никнейм_владельца_репозитория/название_репозитория

Если в процессе выполнения команды вернулась ошибка:

sudo: add-apt-repository: команда не найдена

Значит в системе нет нужных компонентов для выполнения команды, их установка:

sudo apt install software-properties-common

Теперь команда подключения PPA-репозитория выполнится без проблем.

Обычно репозиторий подключается и оставляется в системе. Сейчас он нужен для установки программы, а потом пригодится для её обновления. Но, бывает, что программа больше не нужна, вы её удалили, а следовательно можно удалить и подключение репозитория.

Пример удаления подключения того же самого PPA-репозитория:

sudo add-apt-repository --remove ppa:phoerious/keepassxc

PPA-репозитории были придуманы для удобства поддержки и развития свободных проектов. Как видно из примеров, подключать и отключать такие репозитории очень просто. При подключении сразу автоматически импортируются и соответствующие удостоверяющие ключи. В основе лежит проект Launchpad, по ссылке можно искать репозитории нужных программ.

Репозиторий не зарегистрированный на этом проекте можно подключить к системе лишь вручную.

Для этого требуется:

  1. прописать адрес репозитория;
  2. импортировать для него ключ.

Пример, как Яндекс предлагает добавить в систему репозиторий своего облачного Диска:

echo "deb http://repo.yandex.ru/yandex-disk/deb/ stable main" >> /etc/apt/sources.list.d/yandex.list

По сути, эта команда печатает часть строки (заключенную в кавычках) в указанный следом файл. Такого файла нет по умолчанию, поэтому он создаётся. Создаётся в системной директории, куда право писать имеет лишь администратор. Поэтому надо выполнять эту команду под root-ом.

sudo вначале команды тут не поможет. Можно поступить так:

sudo su
команда
exit

Т.е. перешли в режим root, выполнили команду, вышли.

Пример импорта ключа для репозитория того же Яндекс.Диска:

wget -O YANDEX-DISK-KEY.GPG http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG
sudo apt-key add YANDEX-DISK-KEY.GPG

Т.е. вначале скачали файл ключа, потом импортировали его в систему.

Скаченный файл ключа после импорта можно удалить.

Конечно, после того, как любой новый репозиторий был подключен к системе, требуется выполнить обновление данных. А после уже можно приступать к установке оттуда программ. Команды обновления всех подключенных репозиториев и установки программ смотрите выше.

Ошибки репозиториев

При попытке обновления информации с репозиториев можно получить подобную ошибку:

N: Пропускается получение настроенного файла «main/binary-i386/Packages», так как репозиторий «http://repo.manticoresearch.com/repository/manticoresearch_focal focal InRelease» не поддерживает архитектуру «i386»

Репозиторий не поддерживает архитектуру i386. В источниках соответствующая строка:

deb http://repo.manticoresearch.com/repository/manticoresearch_focal focal main

Так можно объявить, что источник поддерживает только архитектуру amd64:

deb [arch=amd64] http://repo.manticoresearch.com/repository/manticoresearch_focal focal main

Установка .deb

Часто на официальных сайтах программ вместо инструкций по установке под Linux предлагают просто скачать установочный файл. Для Debian/Ubuntu — это файл с расширением .deb. Установить его можно так:

sudo dpkg -i имя_файла.deb

Обычно на этом всё заканчивается. После завершения процесса установки программой можно пользоваться. Но, иногда бывает, что в процессе установки возникают ошибки такого типа:

dpkg: зависимости пакетов не позволяют настроить пакет brackets:
 brackets зависит от libgcrypt11 (>= 1.4.5), однако:
  Пакет libgcrypt11 не установлен.

dpkg: ошибка при обработке пакета brackets (--install):
 проблемы зависимостей — оставляем не настроенным

Т.е. программа для своей работы требует дополнительный пакет, которого не оказалось в системе. Обычно зависимости программ от дополнительно необходимых пакетов разруливаются автоматически, — когда чего-то нет, то оно скачивается и устанавливается. Но в отдельных случаях это сделать не удаётся, и тогда возникает подобная ошибка.

Решением может быть команда:

sudo apt -f install

Она автоматически пытается исправлять установленные программы, в частности пытается решить проблемы, возникшие при их установке. Если это сделать не получается, то неработающие программы она предлагает удалить.

Ручное решение проблемы — это самостоятельная установка требуемых для программы пакетов. Скорее всего потребуется подключать дополнительные репозитории, т.к. в подключенных системе автоматически не удалось найти требуемое. Совсем в крайнем случае — это скачивание и установка вручную откуда-то нужных дополнительно пакетов. Стоит воспользоваться поиском по интернету, скорее всего вы не первый, у кого возникла эта проблема. Всегда есть шансы найти готовое решение.

Удаление программ

Для этого есть два варианта. Первый — удаляет программу подчистую, в том числе удаляет созданные для неё конфигурационные файлы:

sudo apt purge название_программы

Второй — удаляет только саму программу:

sudo apt remove название_программы

Если конфигурационные файлы не представляют для вас ценности. Если вы не делали каких-то особых настроек, которые вам могут пригодится в будущем, то используйте первый вариант. Причём делайте это сразу. Если удалить программу вторым способом, а потом попытаться сделать это первым, то ничего не получится, ведь программы уже не будет в системе, соответственно вы получите ошибку.

Чистка

Для поддержания чистоты в системе есть команда:

sudo apt autoremove

Она анализирует установленные программы, их зависимости, системные файлы и т.д. Если оказывается, что какие-то из них в системе уже не используются, то она предлагает их удалить.

Такое вполне часто возникает. Например, была одна версия программы, потом вы её обновили. Так уж сложилось, что разные версии этой программы имеют разные зависимости, разные пакеты. Соответственно, всё, что требовалось для старой версии программы теперь лежит в системе без дела. Это можно смело удалять. Иногда бывает, что это высвобождает довольно много места на диске.

Выбор версии

Бывает, что для установки доступно несколько версий одного и того же пакета. Особенно если мы до этого добавляли новые источники.

Посмотреть информацию о пакете:

apt show имя_пакета

Выводится версия, связанные пакеты, размер, описание.

В случае доступности нескольких версий для запрошенного пакета будет сообщение:

N: Есть 1 дополнительная запись. Используйте «-a» для просмотра.

Ну и соответственно просмотр, например, для nodejs:

apt show -a nodejs

Среди прочей информации будут показаны версии, например:

...
Package: nodejs
Version: 18.13.0+dfsg1-1
Priority: optional
...
Package: nodejs
Version: 14.21.3-deb-1nodesource1
Priority: optional
...

Более приоритетной обычно является новая версия, если не сделаны специальные настройки. При обычной установке пакета именно она и ставится. Но можно запустить установку, конкретно указав нужную версию:

sudo apt install название_пакета=версия_пакета

Например:

sudo apt install nodejs=14.21.3-deb-1nodesource1

Фиксация пакетов

Иногда нужно, чтобы какой-то пакет не обновлялся в системе. Например, мы выбрали для установки версию пакета не самую последнюю, и если её не зафиксировать, то система при общей установке обновлений будет пытаться его обновить.

Фиксация пакета:

sudo apt-mark hold nodejs

Просмотр зафиксированных пакетов:

apt-mark showhold

Отмена фиксации пакета:

sudo apt-mark unhold nodejs

Комментарии