Урок 23. Установка программ из deb пакетов

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

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

Теперь представим, что мы скачали файл (пакет) для установки Skype. Выглядит файл так:

Скачанные из интернета пакет deb для программы Skype

Заглянем во внутрь этого файла с помощью команды less

Содержимое пакета deb

Как видно файл содержит информацию о зависимых пакетах и состоит из других файлов и каталогов. 

Так как же установить программы из таких пакетных файлов? 

Перейдем в каталог, где храниться наш файл. В нашем случае это Загрузки/ . И запустим команду dpkg -i пакет

Установка deb пакета

Опция -i (--install) означает установку.

Программа установлена и готова к использованию. 

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

В Linux для этого существуют специальные каталоги: 

/usr/bin/ - исполняемые файлы

/usr/sbin/ - исполняемые файлы для запуска администратором

/usr/lib/ - библиотеки

/usr/etc/ - конфигурационные файлы 

Именно в эти каталоги и устанавливаются файлы пакета, то есть они распределяются по этим каталогам в процессе установки. 

Но как Linux знает какой файл в какой каталог скопировать? 

При сборке пакета разработчик уже указывает относительный путь для каждого файла. Взгляни еще раз на содержимое пакета Skype:

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

Каждый файл содержит относительный путь. При установке Linux руководствуется указанными путями. Чтобы убедиться в этом проверим куда Linux установил программу с помощью dpkg -L пакет

Проверка каталогов, куда была установлена программа

Опция -L (--listfiles) указывает в каком каталоге установлен пакет. Получился большой список, но его можно сократить. 

which skype  - покажет где находится исполняемый (бинарный) файл:

Отображение каталога, в котором установлен исполняемый файла

whereis skype - показывает все каталоги, в которых присутствуют файлы Skype:

каталоги, в которых присутствуют файлы Skype

Теперь не нужно указывать название пакета. Достаточно указать название программы. 

А можно указать свой путь для установки? 

Для готового пакета уже нельзя. Но можно собрать собственный пакет и там прописать собственные пути для файлов, но эта тема для отдельного разговора. 

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

То есть dpkg проверит наличие нужных пакетов в системе и, если их нет, прекратит установку. 

И как же быть в такой ситуации? 

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

А как удалить ненужную программу? 

С помощью команды dpkg -r пакет

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

Опция -r (--remove) удаляет программу. 

При таком способе удаления могут остаться файлы конфигурации программы и другие остаточные файлы, поэтому, если хотитн удалить абсолютно все файлы, связанные с данной программой то примените команду dpkg -P пакет 

Опция -P (--purge) удаляет все файлы программы. 

 

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

dpkg -i пакет - установка локального deb пакета

dpkg -L пакет - список установленных файлов пакета

dpkg -r пакет - удаление пакета

dpkg -P пакет - удаление всех файлов пакета, включая и файлы настройки