Ubuntu и все другие дистрибутивы Debian Linux предлагают полный набор систем управления пакетами, который обеспечивает доступ к организованной базе данных, содержащей более 6000 пакетов. Управление пакетами облегчает задачу установки, настройки, обновления и удаления пакетов. Он также решает проблемы, связанные с зависимостями, путем включения функций разрешения зависимостей.
Управление пакетами Debian предлагает несколько инструментов, включая dpkg, Advanced Packaging Tool (APT) и утилиту aptitude для выполнения задач управления пакетами. В этом руководстве каждый из этих инструментов управления Debian используется для описания:
- Как устанавливать, удалять, переустанавливать и обновлять пакеты Debian?
- Как найти файлы или библиотеки неустановленных пакетов?
- Как получить метаданные пакета или сведения о версии и содержимом при удалении пакета?
Фон
В самых ранних системах Linux пакеты устанавливались или добавлялись путем получения исходного кода из построенного проекта. Затем пользователи скомпилировали исходный код в исполняемые двоичные файлы, включая справочные страницы, библиотеки и файлы конфигурации, чтобы создать необходимую программу. Пользователь может найти программы, уже скомпилированные кем-то, чтобы добавить в систему лучший сценарий.
Скомпилированная программа представляла собой tarball: один файл, содержащий несколько файлов, собранных для удобного распространения. Другими словами, после установки из архива файлы распространяются по системе Linux в различных соответствующих папках и подкаталогах, таких как/etc.,/Bin,/var,/usr/share/man и т. д.
Несмотря на то, что создать tarball-файл легко, у него есть некоторые проблемы, такие как:
- Отслеживание необходимых зависимостей
- Пользователь не осведомлен о файлах конфигурации и документации, находящихся в системе. Это еще больше усложняет процесс удаления программного обеспечения.
- Тарболлы не содержат метаданных программного обеспечения, что затрудняет исправление ошибок и обновление до новой версии.
Чтобы решить эти проблемы, Linux представила сложную систему управления пакетами, разделив все дистрибутивы Linux на один из двух основных форматов упаковки, известных как DEB и RPM. Статья посвящена системе управления пакетами на основе Debian, используемой Debian, и производным от дистрибутива Debian, таким как Ubuntu, Linux Mint и т. д.
Прежде чем перейти к демонстрации различных задач управления пакетами, давайте сначала объясним, что такое файл пакета Debian и чем все описанные выше менеджеры пакетов Debian отличаются друг от друга.
Файл .deb
Файл с расширением .deb содержит содержимое программного пакета Debian. Файл Deb также состоит из двух файлов Tar, которые составляют исполняемые файлы, библиотеки и другие файлы.
Общий синтаксис любого файла пакета Debian следующий:
<package-name>_<version>.<revision>-<debian_codename>_<architecture>.deb
Например, apache_1.3.31-6_i386.deb указывает базовое имя программного обеспечения apache. 1.3.31-6 – это номер версии, присвоенный упаковщиком. Наконец, i386 подразумевает, что пакет скомпилирован для архитектуры Intel x86.
Кроме того, любой файл с расширением .deb загружается с помощью команды dpkg и представляет собой полное имя файла. При этом только имя пакета apache относится к первой части файла .deb.
Менеджеры пакетов Debian
DPM состоит из нескольких уровней, так как верхний уровень состоит из команд из семейства инструментов apt, а нижний уровень – из dpkg и связанных инструментов.
dpkg
dpkg – это менеджер пакетов Debian, который устанавливает, удаляет и настраивает пакеты с расширением .deb. Он просто загружает содержимое пакета DEB в систему и уведомляет о необходимых зависимостях. Но он не устанавливает и не настраивает пакеты .deb из-за отсутствия зависимостей, так как у него нет доступа к репозиториям.
APT
APT – это мощный инструмент командной строки, который управляет установкой и настройкой пакетов deb. Он также управляет и загружает необходимые зависимости для предоставления последней версии программного обеспечения. Он работает как интерфейс для dpkg: после перечисления всех зависимостей и загрузки из репозитория.
Следовательно, APT автоматизирует проблему в dpkg. Далее он сравнивает зависимости и информирует пользователей о том, что тот не используется каким-либо пакетом, который пользователь может удалить.
Расположение пакета
Установка пакета из любого программного центра Debian или утилит командной строки ( apt/apt-get ) происходит путем загрузки пакетов из одного или нескольких репозиториев. Репозиторий Debian или APT – это сервер или локальный каталог, содержащий файлы пакетов и их метаданные, доступные для чтения инструментами APT.
Следовательно, во всех дистрибутивах на основе Debian система управления пакетами APT поддерживает репозитории внутри основного файла конфигурации /etc/apt/sources.list. Поэтому всякий раз, когда пользователь выполняет команду для установки пакета, команда apt/apt-get просматривает /etc/apt/sources.list или /etc/apt/sources.list.d в поисках URL-адресов репозитория.
Затем он загружает желаемое программное обеспечение для установки. Source.list файл дополнительно содержит дополнительную информацию о репозиториях для установки программного обеспечения. Пользователь может вручную добавлять новые репозитории в каталог /etc/apt/sources.list.d без редактирования основного файла конфигурации. Однако имена новых файлов репозитория должны соответствовать формату /etc/apt/source.list.cat содержимое файла /etc/apt/sources.list:
ubuntu@andreyex:~$ sudo cat /etc/apt/sources.list | less
Общий синтаксис для каждого включенного репозитория следующий:
deb http://repo.tld/ubuntu distro component deb-src http://us.archive.ubuntu.com/ubuntu/ saucy-updates universe
- deb: представляет архив deb. Это может быть deb, подразумевающий пакет .deb, или репозиторий deb-src, содержащий исходный код пакета.
- http://repo.tld/ubuntu: URL-адрес репозитория
- distro: кодовое название дистрибутива
- component: это категории репозитория. Например, репозитории Ubuntu по умолчанию имеют четыре категории: основная, ограниченная, мультивселенная и вселенная.
APT и другие инструменты используют локальную базу данных для определения установленных пакетов. Чтобы поддерживать локальную базу данных, синхронизируйте информацию с репозиториями, перечисленными в sources.list, с помощью команды apt-get update. Следовательно, необходимо выполнять обновление локальной базы данных перед каждой установкой или обновлением пакета.
Способности
Aptitude – это текстовый интерфейс на основе меню для функций управления пакетами dpkg и Advanced Packaging Tool. Он лучше всего подходит для среды без графического интерфейса, которая упрощает выполнение пользовательских задач. Он использует библиотеки apt-get и предоставляет больше преимуществ за счет интерактивного пользовательского интерфейса.
Установка пакета Debian
При установке Linux автоматически устанавливается набор пакетов, которые пользователь может дополнительно настроить в соответствии с использованием системы, то есть настольного компьютера, сервера или рабочей станции. Иногда пользователю также требуется установить новые пакеты. Обсудим установку пакетов в отношении рассмотренных выше менеджеров пакетов.
Установка через APT-GET
Используйте команду apt-get install, чтобы установить пакет со списком дополнительных пакетов. На приведенном ниже снимке экрана показан список зависимостей и подсказки для продолжения.
ubuntu@andreyex:~$ sudo apt-get install tmux
После загрузки инструмент командной строки также распаковывает пакет libutempter0_1.1.6-3_amd64.deb.
Preparing to unpack .../libutempter0_1.1.6-3_amd64.deb ... Unpacking libutempter0:amd64 (1.1.6-3) ...
Флаг -s вместо установки определяет только, зависит ли пакет от других пакетов.
ubuntu@andreyex:~$ sudo apt-get install -s tmux ..<SNIP>... The following additional packages will be installed: libutempter0 ..<SNIP>...
Установка через dpkg
Если вам нужно загрузить файл .deb со всеми зависимостями, без apt-get. Используйте следующую команду, чтобы установить его через dpkg.
ubuntu@andreyex:~$ sudo dpkg -i <packagename>.deb
Установка через Aptitude
Запустите aptitude через терминал с привилегиями sudo.
ubuntu@andreyex:~$ sudo aptitude
Используйте комбинацию клавиш Ctrl + T, чтобы войти в главное меню способностей. Но перед этим с помощью клавиш со стрелками войдите в подменю раздела «Неустановленные пакеты» aptitude. Он показывает несколько подменю, выберите сеть и прокрутите вниз до его подменю, чтобы выбрать главное, чтобы отобразить все приложения. Выберите желаемое приложение и нажмите Enter, чтобы увидеть все сведения о пакете.
Отметьте приложение для установки, нажав клавишу «+» и нажав клавишу «g», чтобы начать установку. Во время установки aptitude будет в консольном режиме; после этого он возвращается к пользовательскому интерфейсу с отображением полного описания пакета.
Удаление пакета Debian
В этом разделе подробно рассматривается процесс удаления пакета Debian. Давайте обсудим процесс удаления пакета через каждый менеджер пакетов.
Удаление пакета через APT
Параметр remove команды apt-get удаляет только все данные пакета.
ubuntu@andreyex:~$ sudo apt-get remove tmux
То есть все файлы конфигурации остались позади. Следовательно, если команда запускается случайно, введите команду установки для удаленного пакета, чтобы восстановить его работу. Чтобы удалить все файлы конфигурации, также используйте опцию очистки.
ubuntu@andreyex:~$ sudo apt-get purge tmux
Кроме того, вывод на скриншоте выше показывает, что ненужные зависимости не удаляются. Для этого за нас работает опция –auto-remove.
ubuntu@andreyex:~$ sudo apt-get --auto-remove tmux
Объедините параметры очистки и –auto-remove, чтобы полностью удалить все данные и файлы вместе с ненужными зависимостями.
ubuntu@andreyex:~$ sudo apt-get purge --auto-remove tmux
Удаление пакетов через dpkg
Процесс удаления пакета в dpkg практически аналогичен. Используйте dpkg -r, чтобы удалить данные пакета, и dpkg -P, чтобы полностью удалить пакет. Сначала укажите пакет, чтобы убедиться, что он правильно установлен в системе.
ubuntu@andreyex:~$ dpkg -l | grep tmux ubuntu@andreyex:~$ sudo dpkg -r tmux ubuntu@andreyex:~$ sudo dpkg -P tmux
Кроме того, dpkg позволяет принудительно удалять файлы в сценарии обновления дистрибутива, который требует от пользователя удаления или удаления пакета. Но иногда опция удаления не работает из-за неудовлетворенных зависимостей пакета или неполной установки. Для этого dpkg предлагает принудительное удаление пакета:
ubuntu@andreyex:~$ sudo dpkg --force-all --remove tmux
Удаление пакетов через Aptitude
Удаление с помощью aptitude так же просто, как и установка. Прокрутите вниз и выберите «Установленные пакеты», чтобы просмотреть все установленные программы. Выберите net>main и выберите программу, нажав клавишу «-». Нажмите «g», чтобы удалить выбранный пакет.
Обновление пакета Debian
Чтобы обновить один пакет, используйте команду apt-get с параметром установки. Он также обновляет дополнительные пакеты или зависимости. Однако необходимо убедиться, что локальные базы данных отражают последние обновления:
ubuntu@andreyex:~$ sudo apt-get update ubuntu@andreyex:~$ sudo apt-get install vim
Вместо того, чтобы обновлять пакеты по отдельности, лучше обновить все приложения в системе следующим образом:
ubuntu@andreyex:~$ sudo apt-get update ubuntu@andreyex:~$ sudo apt-get upgrade
Поиск информации об удаленном пакете Debian
Все инструменты управления пакетами осведомлены о доступных пакетах, которые может потребоваться установить пользователю. Apt-cache – одна из таких команд, которая поддерживает репозиторий, содержащий информацию о пакетах из исходного списка. Это позволяет пользователю получать информацию о пакетах в кеше apt.
Например, чтобы установить пакет, относящийся к программе чата, не зная имени пакета, пользователь может использовать следующую команду:
ubuntu@andreyex:~$ sudo apt-cache search chat
Приведенная выше команда вернет список пакетов, доступных для приложения чата.
Точно так же доступно множество инструментов для поиска пакетов из уже доступного списка пакетов. Пользователи могут найти много подробностей об установленном пакете вместе с ними, но не о неустановленном, например о файлах внутри неустановленного пакета. Для этого используйте опцию -d с командой apt-get, так как она только загружает пакет.
ubuntu@andreyex:~$ sudo apt-get install -d python3
Загруженный файл пакета находится в каталоге / var/cache/apt/archives/. Теперь используйте команду dpkg с параметром –info для отображения сведений о пакете или параметром –contents для отображения файлов пакета.
ubuntu@andreyex:~$ dpkg --info /var/cache/apt/archives/nmap_7.60-1ubuntu5_amd64.deb|less ubuntu@andreyex:~$ dpkg --contents /var/cache/apt/archives/nmap_7.60-1ubuntu5_amd64.deb|less
Поиск информации об установленных пакетах Debian
Инструмент dpkg использует множество файлов, доступных в каталоге /var/lib/dpkg. Один из них – файл /var/lib/dpkg/status, содержащий информацию о статусе пакета. Использование команды dpkg с параметром -s отображает состояние пакетов в системе.
ubuntu@andreyex:~$ sudo dpkg -s vim
dpkg также позволяет пользователям Linux находить сведения о конкретном пакете и файле, принадлежащем определенному пакету. Параметр dpkg tool -L перечисляет все файлы и каталоги интересующего пакета. Все, что требуется dpkg, – это имя пакета, но когда доступно несколько версий приложения, требуется более подробное имя, содержащее сведения о версии.
ubuntu@andreyex:~$ dpkg -L vim
Чтобы найти пакет, содержащий определенный файл, используйте флаг -S. Например, используйте следующую команду, чтобы выяснить, какой пакет содержит файл/usr/bin/apt-get.
ubuntu@andreyex:~$ dpkg -S /usr/bin/apt-get
Наконец, мы можем найти детали или назначение конкретного пакета следующим образом:
ubuntu@andreyex:~$ dpkg -p vim
Заключение
В статье содержится подробное описание управления пакетами Debian. В нем обсуждаются различные способы установки, удаления, обновления или обновления пакетов. Мы также узнали, как узнать статус пакета и многие другие подробности об удаленных пакетах Debian. Эта статья представляет собой универсальное руководство, охватывающее все аспекты управления пакетами в Ubuntu или любом дистрибутиве Debian. Спасибо, что зашли так далеко; вы можете разместить свои запросы в разделе комментариев ниже.