Урок 22. Установка программ из репозиториев для Debian

 

Способы установки 

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

Существуют 3 способа установки: 

    • Ручная установка готовых программных пакетов, скачанных с различных сайтов
    • Установка с централизованного хранилища программ - магазина приложений
    • Ручная установка из исходников (в данном курсе не рассмотрена)

Так как существует большое количество дистрибутивов Linux, то не все их программы взаимно совместимы. Например, на Debian/Ubuntu системах устанавливаются программы с расширением .deb, на Red Hat/CentOS - с расширением .rpm. 

Рассмотрим установку программ на каждой из рассмотренных систем. 

Установка программ всегда производится с правами root (в Ubuntu установку проводят через команду sudo, так как root отключен).

 

Установка из репозиториев 

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

В Windows такие файлы имеют расширение .exe, в системах Debian - расширение .deb. Подобные установочные файлы (вне зависимости от расширения) во всех дистрибутивах Linux называются пакетами. 

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

Очень много таких пакетов хранится в специальных хранилищах - репозиториях (магазин приложений). Любой пользователь сможет без труда скачать и установить необходимую программу/пакет. В репозитории постоянно добавляются новые пакеты и обновляются старые. 

Каждый дистрибутив имеет специальную программу - Менеджер пакетов. С помощью данной программы можно скачать и установить любую программу (если она имеется в репозитории). При этом менеджер пакетов сам отследит необходимые взаимосвязи пакетов и установить дополнительные пакеты без участия пользователя.Кроме того он будет сам отслеживать любые изменения в репозитории и при необходимости установит обновления для уже установленных программ. То есть такая программа создавалась для максимального удобства даже менее опытного пользователя. 

И как же называется такая программа? 

Для Debian существует несколько подобных программ: apt-get, apt, aptitude.

Опции у всех этих команд одинаковы. apt-get является устаревшим вариантом, однако все еще используется во многих системах. apt и aptitude новые программы с улучшенным функционалом. 

Для примера попробуем установить программу VLC плеер: apt install пакет

Процесс установки программы vlc

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

Чтобы установить программу достаточно знать ее название, Если вы не уверены в названии и не хотите устанавливать то, что не хотите, мо можно воспользоваться поиском. Например, попробуем найти сетевой сканер nmap: apt search искомое_слово

Поиск программы по ключевому слову

Из данного списка уже можно выбрать и установить требуемую программу. Кроме того, можно посмотреть и дополнительную информацию об этом пакете с помощью show 

apt show пакет

Отображение пакета nmap

 

А как удалить программу? 

Также просто, как и установить. Измените install на remove: 

apt remove пакет 

или 

apt purge пакет - для удаления и файлов настроек программы:

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

Как видно в выводе команды программа VLC имела зависимости и от других пакетов. Так как эти дополнительные пакеты были установлены для работы пакета VLC, то при удалении основного пакета, дополнительные пакеты уже не нужны (во всяком случае в моей системе) и программа apt предлагает их удалить с помощью команды apt autoremove

А могут дополнительные пакеты использоваться и другими программи? 

Конечно. Например, общими могут быть и некоторые библиотеки.  

А может получиться так, что программа apt удалит некоторые общие пакеты? 

Нет, это исключено.  

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

apt update

получение списка обновлений

А затем уже провести и сам апгрейд: 

apt upgrade

Процесс обновления программ

Опции команды apt интуитивно понятны и легко запомнить: 

apt --help

Вывод справки команды apt

Программа apt очень удобна в применении и при возникновении проблемы может сообщить как ее устранить. 

 

Добавление репозиториев

Несомненно программы apt и aptitude очень просты и в то же время оказывают пользователю неоценимую помощь. Но как же они находят все эти репозитории и хранилища для поиска и скачивания программ? 

Все очень просто. Список всех доступных репозиториев находится в файле /etc/apt/sources.list или в каталоге /etc/apt/sources.list.d (зависит от дистрибутива):

Отображение списка доступных репозиториев в файле

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

При запуске команды apt всегда проверяется сначала первая запись, а потом уже вторая и так далее. То есть приоритет всегда у тех ссылок, которые стоят в начале файла. 

Если хотите добавить новый репозиторий, то просто вставьте нужную ссылку в файл либо можно это сделать командой: 

apt-add-repository “deb http://ссылка_на_репозиторий” 

После добавления нового репозитория необходимо обновить систему, так как новое хранилище может содержать более свежие версии ПО (ведь именно для этого мы и добавили его): apt update && apt upgrade 

И почти наверняка получите такую ошибку: 

Ошибка при отсутствии публичного ключа

Это своего рода защита ОС. Так как таким способом можно установить довольно вредоносный и опасный репозиторий, с которого вместо полезных программ установите вирус либо другое опасное ПО. 

Поэтому нам необходимо проверить сам ключ на официальном сервере ключей и если он присутствует на сервере установим этот ключ в систему: 

apt-key adv  --keyserver keyserver.ubuntu.com  --recv-keys ключ 

keyserver.ubuntu.com является официальным сервером Ubuntu, однако существуют и другие серверы. Если ключ подлинный, то получим такой результат:

Успешное добавление ключа репозитория

Если нет, то такой:

Неправильный ключ репозитория Linux

После того, как ключ успешно добавлен можно обновлять систему. 

А где хранятся все ключи? 

Ключи хранятся в бинарном файле /etc/apt/trusted.gpg. Чтобы увидеть все  ключи выполните команду apt-key list

Отображение списка хранимых ключей репозиториев

 

Список команд

Подведем краткие итоги по командам: 

apt install пакет - установка пакета из репозитория

apt search искомое_слово - поиск пакета в репозитории

apt show пакет - отображение информации о пакете

apt remove пакет - удаление пакета из системы

apt purge пакет - удаление пакета, включая и его конфигурационные файлы

apt autoremove - удаление ненужных пакетов после того, как был удален основной пакет, использовавший эти пакеты

apt update - обновление внутренней базы данных, чтобы знать какие пакеты требуют обновления

apt upgrade - после выполнения предыдущей команды обновляет все программы в системе

apt-get -f install - восстанавливает дерево зависимостей пакетов 

/etc/apt/sources.list  - файл, содержащий список репозиторий 

/etc/apt/sources.list.d  - каталог файлов с репозиториями 

apt-add-repository “deb http://http. ………” - добавление нового репозитория

apt-key adv  --keyserver keyserver.ubuntu.com  --recv-keys ключ - добавление нового ключа репозитория