Упражнение 14: Пакетное управление: Debian пакетный менеджер aptitude
Теперь пришло время получить некоторые священные знания, чтобы добавить новые программы в Linux-систему. Программы в Linux называются пакетами и обычно устанавливаются из сетевых репозиториев с помощью инструмента, называемого пакетным менеджером.
Пакетный менеджер — это программа, которая позволяет устанавливать другие программы. Многие программы зависят от других программ, например, программы с графическим интерфейсом обычно требуют программу, которая знает, как рисовать эти окна. Пакетный менеджер знает об этих зависимостях, и когда вы просите его установить определённую программу, он установит все необходимые программы, которые нужны для работы запрошенной программы. Менеджер пакетов Debian называется aptitude.
Сетевой репозиторий — это сайт, содержащий множество пакетов, доступных для установки в любое время.
Вот типичное описание процесса установки программы:
Сейчас самое время узнать о расположении извлекаемых файлов. В Linux все файлы одного типа устанавливаются в одном и том же месте. Например, исполняемые файлы всех программ устанавливаются в /usr/bin, документация программ — в /usr/share/doc и так далее. Это может показаться немного запутанным, но это очень полезно. Стандарт FHS (Filesystem Hierarchy Standard) определяет, какие файлы где должны находиться, и вы можете посмотреть его, вызвав man 7 hier. Я покажу вам здесь сокращённую версию «Стандарт иерархии файловой системы» версии 2.2:
Это действительно долго, но вам не нужно запоминать это, man hier 7 всегда там. Сейчас вам нужно знать только /usr/bin/, /usr/share и /var/log.
Давайте ещё поговорим о пакетах и пакетном менеджере. Сначала повторим:
В этой базе данных каждый пакет имеет состояние, которое указывает, установлен ли пакет, можно ли его обновить и другое. Вы можете распечатать список текущих установленных пакетов, набрав dpkg -l. Пример вывода:
user1@vm1:~$ dpkg -l | head | less -S
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-=====================-====================-========================================================
ii acpi 1.5-2 displays information on ACPI devices
ii acpi-support-base 0.137-5 scripts for handling base ACPI events such as the power
ii acpid 1:2.0.7-1squeeze4 Advanced Configuration and Power Interface event daemon
Вы можете видеть, что эти состояния отображаются в первых трёх столбцах. Из этого вывода видно, что все пакеты либо нуждаются в установке, либо фактически установлены, ошибок нет, потому что третий столбец пуст. Вот полный список возможных состояний пакетов.
Первый столбец. Ожидаемая операция, которую мы хотим сделать с пакетом:
Второй столбец. Состояние пакета, текущее состояние пакета:
Третий столбец. Проблемы.
Также вам не нужно это запоминать, просто запомните команду info dpkg, она покажет эту информацию. Сейчас не стоит беспокоиться о состоянии пакетов, просто помните, что состояние ii означает, что с этим пакетом всё в порядке. Хорошо, давайте установим программу под названием «midnight commander», это файловый менеджер, который позволяет наглядно просматривать каталоги системы и выполнять операции копирования, переименования или удаления файлов.
Теперь вы узнаете, как искать, устанавливать и удалять пакеты программного обеспечения.
1: aptitude search mc | grep -i 'midnight commander'
2: sudo aptitude install mc
3: dpkg -L mc | grep '/usr/bin'
4: aptitude search mc | grep -i 'midnight commander'
5: mc
6: <F10><ENTER>
7: sudo aptitude remove mc
user1@vm1:~$ aptitude search mc | grep -i 'midnight commander'
p mc - Midnight Commander - a powerful file manager
p mc-dbg - Midnight Commander - a powerful file manager
user1@vm1:/home/user1# sudo aptitude install mc
The following NEW packages will be installed:
libglib2.0-0 libglib2.0-data mc shared-mime-info
0 packages upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,957 kB/5,157 kB of archives. After unpacking 17.0 MB will be used.
Do you want to continue? [Y/n/?] y
Get:1 http://mirror.yandex.ru/debian/ squeeze/main libglib2.0-0 amd64 2.24.2-1 [1,122 kB]
Get:2 http://mirror.yandex.ru/debian/ squeeze/main libglib2.0-data all 2.24.2-1 [994 kB]
Get:3 http://mirror.yandex.ru/debian/ squeeze/main shared-mime-info amd64 0.71-4 [841 kB]
Fetched 2,957 kB in 0s (4,010 kB/s)
Selecting previously deselected package libglib2.0-0.
(Reading database ... 24220 files and directories currently installed.)
Unpacking libglib2.0-0 (from .../libglib2.0-0_2.24.2-1_amd64.deb) ...
Selecting previously deselected package libglib2.0-data.
Unpacking libglib2.0-data (from .../libglib2.0-data_2.24.2-1_all.deb) ...
Selecting previously deselected package mc.
Unpacking mc (from .../mc_3%3a4.7.0.9-1_amd64.deb) ...
Selecting previously deselected package shared-mime-info.
Unpacking shared-mime-info (from .../shared-mime-info_0.71-4_amd64.deb) ...
Processing triggers for man-db ...
Setting up libglib2.0-0 (2.24.2-1) ...
Setting up libglib2.0-data (2.24.2-1) ...
Setting up mc (3:4.7.0.9-1) ...
Setting up shared-mime-info (0.71-4) ...
user1@vm1:~$ aptitude search mc | grep -i 'midnight commander'
i mc - Midnight Commander - a powerful file manager
p mc-dbg - Midnight Commander - a powerful file manager
user1@vm1:~$ mc
Left File Command Options Right
|< ~ ---------------------.[^]>||< ~ ---------------------.[^]>|
|'n Name | Size |Modify time||'n Name | Size |Modify time|
|/.. |P--DIR|un 6 21:49||/.. |P--DIR|un 6 21:49|
|/.aptitude | 4096|un 25 18:34||/.aptitude | 4096|un 25 18:34|
|/.mc | 4096|un 25 18:41||/.mc | 4096|un 25 18:41|
| .bash~story| 10149|un 21 12:01|| .bash~story| 10149|un 21 12:01|
| .bash~ogout| 220|un 6 21:48|| .bash~ogout| 220|un 6 21:48|
| .bashrc | 3184|un 14 12:24|| .bashrc | 3184|un 14 12:24|
| .lesshst | 157|un 25 11:31|| .lesshst | 157|un 25 11:31|
|----------------------------------------------------------------|
|UP--DIR --UP--DIR |
----------- 6367M/7508M (84%) -------------- 6367M/7508M (84%) -|
Hint: The homepage of GNU Midnight Commander: http://www.midnight-
user1@vm1:~$ [^]
1Help 2Menu 3View 4Edit 5Copy 6Re~ov 7Mkdir 8De~te 9Pu~Dn
user1@vm1:~$ sudo aptitude remove mc
The following packages will be REMOVED:
libglib2.0-0 libglib2.0-data mc shared-mime-info
0 packages upgraded, 0 newly installed, 4 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 17.0 MB will be freed.
Do you want to continue? [Y/n/?] y
(Reading database ... 24637 files and directories currently installed.)
Removing shared-mime-info ...
Removing mc ...
Removing libglib2.0-data ...
Removing libglib2.0-0 ...
Processing triggers for man-db ...
user1@vm1:~$
``` **Установка программного пакета `mc`.**
Поскольку это изменение системного уровня, для выполнения этой команды необходимо использовать суперпользователя, который имеет право записи во все каталоги системы. Также следует обратить внимание на то, как менеджер пакетов Debian `aptitude` автоматически устанавливает необходимые пакеты `libglib2.0-0`, `libglib2.0-data` и `shared-mime-info` для `mc`.
1. Покажите исполняемый файл установленного пакета. Как вы можете видеть, они находятся в `/usr/bin`.
1. Вызовите `mc`.
1. Завершите работу `mc`.
1. Удалите `mc`. Обратите внимание, что автоматически установленные пакеты также будут удалены автоматически. Если после установки `mc` вы установите некоторые вещи, которые требуют этих пакетов, `aptitude` сохранит их.
## Дополнительное задание
Хорошо, здесь много информации. Но есть ещё:
1. Введите `aptiutde search emacs`. Выясните, что означает буква `v`.
1. Прочитайте или просмотрите [главу 2 «Управление пакетами Debian»](http://www.debian.org/doc/manuals/debian-reference/ch02.en.html) в руководстве Debian.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )