Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Функции и настройка система управления пакетами APT

25 янв. 2014

APT для пакетов Debian так же важен, как и Yum для пакетов RPM: это высокоуровневая система управления пакетами, самостоятельно скачивающая пакеты из репозиториев и автоматически отменяющая межпакетные взаимозависимости. Комбинация из пакетов Debian и инструмента APT на настоящее время (2009 год) представляется наиболее проработанной системой управления пакетами в Linux. Среди прочего, она применяется в Ubuntu и Debian в качестве стандартной системы управления пакетами.

Для управления пакетами предлагаются две различные команды: apt-get и aptitude. Обе команды очень похожи друг на друга и при всей схожести обслуживания даже имеют практически одинаковый синтаксис. Команды apt-get install имя_пакета или aptitude install имя_пакета загружают указанный пакет и все пакеты, зависящие от него, и устанавливают их.

В настоящее время apt-get по умолчанию применяется в Ubuntu, а в Debian версии 5 и выше рекомендуется использовать aptitude. Неважно, работаете вы с Debian или с Ubuntu, — обе команды устанавливаются по умолчанию.

Кроме того, существуют версии APT для пакетов RPM, которые, однако, распространены не так широко, как Yum. В этом разделе будет рассмотрен только APT для пакетов Debian.

Конфигурация


Конфигурация APT производится в двух файлах — apt.conf.d/* и sources.list, находящихся в каталоге /etc/apt. Более подробная информация по репозиториям может храниться в каталоге sources.list.d.

apt.conf.d/*, как правило, содержит лишь немногие базовые настройки, которые обычно нужно оставить в том виде, в котором они заданы по умолчанию (также см. man apt.conf). Файл sources.list (справкаman sources.list) уже интереснее. Этот файл содержит построчное описание репозиториев APT.
Синтаксис каждой строки таков:

pakettyp uri distribution [компонент1] [компонент2] [компонентЗ] ...

Тип обычных пакетов Debian называется deb, а для пакетов с исходным кодом — deb-src. Наряду с каталогами HTTP и FTP APT поддерживает обычные каталоги, RSH и SSH-серверы, а также CD и DVD.

Правда, случай с репозиториями CD и DVD особый: такие пакеты создаются командой apt-cdrom, описанной чуть ниже. Просто добавить строку deb cdrom недостаточно.

В третьем столбце стоит название дистрибутива (ведь на сервере могут находиться пакеты для нескольких дистрибутивов или их версий). Во всех остальных столбцах указываются компоненты дистрибутива, которые можно учитывать. Названия компонентов зависят от конкретного дистрибутива и пакета! Например, в Ubuntu различаются пакеты main, restricted, universe и multiverse, а в Debian — main, contrib, non-free и т. д.

Версии пакетов, названные раньше, считаются предпочтительными: то есть если пакет доступен для скачивания в нескольких источниках, APT скачивает его по первой ссылке. В следующих строках показан синтаксис. Это строки из немецкой версии Ubuntu 9.10 с использованием немецкого зеркального сервера.

<code># Файл /etc/apt/sources.list

deb http://de.archive.ubuntu.com/ubuntu/ karmic main restricted universe

multiverse

deb http://de.archive.ubuntu.com/ubuntu/ karmic-updates main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu karmic-security main restricted universe multiverse</code>


Изменения в sources.list лучше всего вносить в текстовом редакторе. Если не хотите пользоваться редактором, попробуйте графический пользовательский интерфейс, например Synaptic.

Декларирование CD в качестве репозитория


В качестве источников данных для APT также можно использовать CD. В таком случае для каждого диска необходимо выполнить команду apt-cdrom add. Она считывает метаданные APT компакт-диска и заносит доступные пакеты в файл кэша. Кроме того, обновляется sources.lst. Если apt-cdrom жалуется на то, что не может найти CD/DVD, укажите каталог с параметром -d.

root# apt-cdrom -d /media/dvd add


Установка АРТ-ключа



В большинстве АРТ-источников в Интернете метафайлы для описания репозито-риев зашифрованы криптографическими ключами. Кроме того, файлы-оглавления APT содержат контрольные суммы для всех пакетов. Такие механизмы контроля позволяют обеспечить постепенное изменение пакета. Однако этот механизм контроля действует лишь в том случае, если APT известна общедоступная часть ключа, позволяющая определить происхождение пакета. Чтобы настроить ключ для APT, пользуйтесь командой apt-key:

root# apt-key add KOMOBbiH_<paHn.gpg


Команда apt-get



Само управление пакетами производится командой apt-get или aptitude. Синтаксис apt-get понятен на следующих примерах. Показанный в них вывод сокращен ради экономии места.

Обновление информации по APT


Перед установкой пакетов выполните apt-get update, загрузив таким образом новейшую информацию из репозиториев. Пакеты при этом ни устанавливаются, ни обновляются. В данном случае речь идет только об описаниях пакетов!

Установка пакетов. Дополнительно выполните apt-get install — при этом необходимо указать правильное название пакета. Если команда обнаружит, что определенные взаимозависимости пакетов не соблюдаются, она также предложит установить недостающие пакеты. Когда вы примете это предложение, apt-get скачает файлы пакетов и установит их. В следующем примере apt-get рекомендует установить несколько дополнительных пакетов.

root# apt-get update


Получение:
1 http://security.ubuntu.com dapper-security Release.gpg [189B]

root# apt-get install apache2


Устанавливаются следующие дополнительные пакеты:
apache2-mpm-worker apache2-utils apache2.2-common libaprl libaprutill

Предлагаемые пакеты:

apache2-doc apache2-suexec apache2-suexec-custom

Устанавливаются следующие НОВЫЕ пакеты:

apache2 apache2-mpm-worker apache2-utils apache2.2-common libaprl libaprutill

О обновлено, 6 новых установлено, 0 к удалению и 11 не обновлено.

Необходимо скачать архивы общим размером 1472кВ.

После этой операции на диске будет занято еще 5452кВ места.

Хотите продолжить? [Y/n]?

Удаление пакетов

Команда apt-get remove paketname удаляет указанный пакет. Пакеты, которые первоначально были загружены с удаляемым пакетом и связаны с ним зависимостями, остаются при этом нетронутыми. В данном случае используйте apt-get autoremove. Эта команда удаляет все пакеты, которые более не нужны.

Обновление пакетов


Команда apt-get dist-upgrade обновляет все установленные пакеты. Если изменились межпакетные взаимосвязи и требуется установить новые пакеты или удалить старые, эти операции также выполняются.

root# apt-get upgrade


Следующие пакеты будут обновлены:

«libmozjsld xulrunner-1.9 xulrunner-1.9-gnome-support

3 обновлено, 0 новых установлено, 0 к удалению иОне обновлено.

Необходимо скачать архивы общим размером 8208кВ.

После этой операции на диске будет занято еще 8192кВ места.

Хотите продолжить? [Y/n]? Y

У команды apt-get dist-upgrade есть еще вариант upgrade: он также обновляет все пакеты. Разница заключается в том, что при этом не устанавливаются никакие новые или имеющиеся пакеты.

Установка исходного кода. Команда apt-get source имя_пакета устанавливает исходный код нужного пакета в текущий каталог.

Программа aptitude



Текстовая программа aptitude также построена на основе APT. Если вы используете эту программу в командном режиме (aptitude install имя_пакета), ее синтаксис во многом совместим с apt-get. Кроме того, эту программу можно использовать в консоли — с текстовым пользовательским интерфейсом. Для этого просто запустите программу без дополнительных параметров. Для перехода в меню нажмите клавишу F10.

По сравнению с apt-get программа aptitude имеет принципиальное преимущество: она отмечает, какие зависимые пакеты были установлены, и автоматически удаляет их при деинсталляции. Если, например, вы устанавливаете программу xyz, для работы которой требуется пять дополнительных пакетов (lib-abc, lib-efg и т. д.), эти пакеты удаляются (если от них не зависит какой-нибудь другой пакет). Если же вы удаляете xyz с помощью aptget или Synaptic, зависимые пакеты lib-abc, lib-efg и т. д. остаются в системе. Пройдет немного времени, и никто уже не вспомнит, зачем были установлены эти пакеты.

В Debian 5 для управления пакетами специально рекомендуется использовать aptitude вместо apt-get. Конечно же, вы можете не следовать этому совету.

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

Пример. Две следующие команды сначала устанавливают пакет html2ps, а потом снова его удаляют. Отмечу, что большинство дополнительных пакетов, установленных вместе с html2ps, снова удаляются. Большинство, но не все — команда aptitude несовершенна.

root# aptitude install html2ps

Считываются списки пакетов… готово

Дополнительно устанавливаются следующие пакеты:

gs-gpl html2ps libcompress-zlib-perl libfont-afm-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libmailtools-perl

Хотите продолжить? [Y/n/?] Y

root# aptitude remove html2ps

Следующие пакеты не используются и будут УДАЛЕНЫ:

libfont-afm-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libmailtools-perl libtimedate-perl liburi-perl libwww-perl perlmagick

Команда tasksel



Как правило, для установки групп пакетов в Debian и Ubuntu используются мета-пакеты: это пустые пакеты, определяющие только отдельные межпакетные взаимосвязи. Например, вместе с метапакетом build-essential устанавливается несколько пакетов с важными инструментами разработки (Compiler, make и т. д.).

Есть еще один способ определения групп пакетов — на основе команды tasksel. Этот механизм предназначен в первую очередь для того, чтобы можно было с легкостью выбирать пакеты при установке дистрибутива. Разумеется, tasksel можно использовать и позже, при эксплуатации компьютера. Список всех имеющихся групп пакетов выводится командой tasksel --list-task. Для установки групп пакетов используется команда tasksel install groupname. Если tasksel выполняется без дополнительных параметров, то система выводит диалоговое окно, в котором можно выбрать требуемые группы пакетов.

Команда apt-cache



Команда apt-cache узнает различные данные относительно доступных или уже установленных пакетов:

root# apt-cache show apache2

Package: apache2 Priority: optional Section: web

Description: передовой, масштабируемый, расширяемый веб-сервер Apache v2 — представитель следующего поколения вездесущего веб-сервера Apache. Данная версия — полностью переработанная — содержит множество нововведений, в частности функцию обработки потоков, новый интерфейс API, поддержку IPv6, фильтрацию запросов и откликов и многое другое.

Автоматизация обновлений



Как правило, после установки APT требуется откорректировать некоторые конфигурационные файлы, чтобы система могла автоматически скачивать обновления, а при необходимости и устанавливать их. Нужные конфигурационные файлы входят в состав пакета unattended-upgrades, который по умолчанию устанавливается в Debian и Ubuntu.

Для автоматизации скачивания и установки обновлений была разработана программа Cron, которая ежедневно выполняет сценарий /etc/cron.daily/apt. Этот сценарий интерпретирует конфигурационный файл /etc/apt/apt.conf.d/50unattended-upgrades и при необходимости выполняет команду обновления unattended-upgrade. Чтобы активизировать автоматические обновления, нужно вручную внести в файл 50unattended-upgrades следующие изменения:

<code>// Файл /etc/apt/apt.conf.d/50unattended-upgrades // Активизировать ежедневные обновления APT::Periodic::Unattended-Upgrade "1";

// Проводить стандартные обновления и обновления системы безопасности Unattended-Upgrade::AHowed-On'gins { "Ubuntu karrnic-security": "Ubuntu karmic-updates";

}:

// He обновлять следующие пакеты Unattended-Upgrade::Package-B!acklist { // "vim"; // ...

}:

// Прислать электронное сообщение о статусе обновления // Unattended-Upgrade::Mail "root@localhost":</code>


В первой строке должно быть указано, с каким интервалом (в днях) система должна пытаться скачивать обновления. С помощью Allowed-Origins укажите, какие репозитории должны учитываться при проведении обновлений. С использованием Package-Blacklist можно автоматически исключить определенные пакеты при проведении обновлений. Наконец, команда mail позволяет указать адрес, на который команда unattended-upgrade посылает краткое статусное уведомление после того, как обновление будет успешно завершено. Для рассылки электронной почты необходимо настроить на компьютере почтовый сервер (МТА) и дополнительно установить пакет mailx.

В заключение скажу еще несколько слов о процессе обновления: в каталоге /etc/cron.daily/apt содержится команда sleep, задерживающая выполнение сценария на случайное количество секунд (до 1800). Такая принудительная пауза позволяет избежать ситуации, в которой тысячи компьютеров, использующих cron, одновременно обращались бы к одним и тем же репозиториям.

Сценарий /usr/bin/unattended-upgrade протоколирует все обновления или попытки обновлений в файлах регистрации в каталоге /var/log/unattended-upgrade. Кроме того, /etc/cron.daily/apt закладывает в каталоге /var/lib/apt/periodic/ файлы с отметками времени, показывающими, когда именно в последний раз проводилась определенная операция.

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

Обновления ядра вступают в силу только после перезагрузки компьютера. Команда unattended-upgrade этим не занимается, то есть вы сами должны перезапустить компьютер командой reboot.

СОВЕТ



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

Альтернатива автоматических обновлений — сценарий Cron, ежедневно проверяющий, доступны ли свежие обновления (например, с помощью команды apt-get dist-upgrade —simulate), и пересылающий результат администратору по электронной почте.

Обновления версий или дистрибутивов


С помощью команды apt-get dist-upgrade можно обновить целый дистрибутив до новейшей версии. Для этого потребуется соответствующим образом заново настроить репозитории в /etc/apt/sources.list.

В Ubuntu обновление дистрибутива можно произвести с помощью команды do-release-update -m desktop (для ПК) или-m server (для сервера). Вверсиях Ubuntu LTS (рассчитанных на долговременную поддержку) новые релизы предусмотрены лишь для следующих версий, то есть, например, 8.04 или 10.04. Если вы хотите обновить версию, которая не рассчитана на долговременную поддержку, вам сначала нужно в каталоге /etc/updatemanager/release-upgrades установить для переменной Prompt значение normal вместо lts.

Несмотря на то что в Debian хорошо проработана система управления пакетами, обновление версий этой системы — дело очень деликатное. Если после обновления все программы и серверные службы будут работать как надо, то это счастливое исключение, а не правило.

Программа apt-cacher (буфер обмена пакетов)


Если в вашей сети работают десятки компьютеров с Debian и Ubuntu и каждый обращается за обновлениями к внешнему репозиторию, то общий ежемесячный трафик достигает нескольких гигабайт. Даже при том, что тарифы на пользование Интернетом в основном безлимитные, обновления засоряют сеть и чрезмерно замедляют передачу данных по LAN. В данном случае кажется очевидным, что не помешает организовать центральный буфер обмена (прокси), из которого все компьютеры будут брать пакеты для обновления. Именно эту задачу и выполняет программа apt-cacher.

Серверная конфигурация



На кэш-сервере (то есть на компьютере, управляющем буфером обмена) необходимо установить пакет apt-cacher. (Из многочисленных руководств по apt-cacher, имеющихся в Интернете, можно сделать вывод, что вам также потребуется установить Apache. Это неверно — apt-cacher работает сам! Взаимодействие с Apache оправданно только в тех случаях, когда обмен информацией с apt-cacher должен производиться через НТТР-порт 80.)

root# apt-get install apt-cacher

Чтобы в дальнейшем пакет apt-cacher запускался автоматически, как демон, внесите небольшие изменения в файл /etc/default/apt-cacher:

# Файл /etc/default/apt-cacher AUT0START=1


Остальные параметры конфигурации содержатся в файле /etc/apt-cacher/ apt-cacher.conf. Большинство установок можно оставить как есть, тогда АРТ-прокси будет доступен всем компьютерам через порт 3142. Файлы пакетов будут сохраняться в каталоге /var/cache/apt-cacher. По соображениям безопасности рекомендуется внести в конфигурационный файл и следующие изменения:

<code># Файл /etc/apt-cacher/apt-cacher.conf

daemon_addr=192.168.0.1 allowed_hosts=192.168.0.0/24</code>


Демон связывается с определенным адресом (в данном случае 192.168.0.1, этот показатель важен для компьютеров с несколькими интерфейсами) и позволяет пользоваться прокси только клиентам, относящимся к адресному пространству 192.168.0.*. После внесения в конфигурацию таких изменений мы в первый раз запускаем apt-cacher:

root# /etc/init.d/apt-cacher start


Пакет apt-cacher заносит все случаи доступа, а также возможные ошибки в файлы регистрации, находящиеся в каталоге /var/log/apt-cacher.

Импорт имеющихся пакетов



Как правило, в каталоге /var/cache/apt/archive на сервере уже имеется множество пакетов, загружаемых локальной системой управления пакетами для установки либо обновления. Вы можете импортировать эти пакеты в кэш apt-cacher. Это целесообразно делать в тех случаях, когда ожидается, что данные пакеты потребуются другим компьютерам, работающим в локальной сети:

root# cd /usr/share/apt-cacher


root# ./apt-cacher-import.pl /var/cache/apt/archives

Клиентская конфигурация



На клиентской машине необходимо включить браузер и убедиться, что apt-cacher доступен через HTTP. Для этого укажите следующие адреса (конечно же, при этом необходимо изменить мой apt-cacher на хост-имя ващего компьютера или прокси-сервера):

http://mein-apt-cacher:3142;


http://mein-apt-cacher:3142/report.


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

Когда apt-cacher уже будет работать, вам останется внести еще одно маленькое изменение в конфигурацию APT, чтобы прокси-сервером могла пользоваться и команда apt-get. Для этого потребуется создать следующий новый файл и изменить mein-apt-cacher на хост-имя компьютера или адрес прокси-сервера:

// Файл /apt/apt.conf.d/Olproxy Acquire::http::Proxy "http://mein-apt-cacher:3142/";


Теперь все команды APT будут пользоваться новым прокси. Файлы, которых на нем еще нет, разумеется, нужно, как и раньше, скачивать из Интернета. Но если другой компьютер в сети также решит обновиться или установить пакет, который был незадолго до этого установлен на ином компьютере, необходимые пакеты уже будут в распоряжении (не забудьте прокомментировать первую строку, поставив символы //, — возможно, вы захотите поработать с ноутбуком в дороге и вам при этом понадобится установить обновления и пакеты, не имея доступа к прокси-серверу)!

Synaptic



Для APT существует множество графических пользовательских интерфейсов, и лучшая из таких программ на настоящий момент — Synaptic.


Поиск пакетов


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

Установка


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

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

Управление репозиториями

Управлять репозиториями можно в диалоговом окне Настройки ► Репозитории. Здесь отображаются все известные репозитории. Установив флажки напротив определенных пакетов, вы можете быстро активизировать или деактивизировать нужные вам пакеты. С помощью EDIT можно изменять свойства имеющихся репозиториев, а с помощью ADD — добавлять новые репозитории.

Блокировка


Одновременно может работать лишь одна программа управления пакетами. Если вы попытаетесь запустить сразу две такие программы, то система выдаст предупреждение: unable to get exclusive lock (невозможно обеспечить исключающую блокировку). Это означает, что программа не может обратиться к внутренним системным файлам, отвечающим за управление пакетами. Необходимо завершить обе конфликтующие программы.

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

root# rm /var/lib/dpkg/lock

Дефектные пакеты


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

Для устранения проблемы нажмите в Synaptic в списке страниц кнопку Пользовательская настройка, а затем выберите пункт Дефектный. Тогда Synaptic отобразит список всех дефектных пакетов. Отметьте все пакеты, нажав сочетание Ctrl+A, щелкните в списке правой кнопкой мыши и выберите пункт контекстного меню Запретить для новой установки. Далее проведите установку заново, нажав кнопку Принять. Если опять возникнут проблемы, отметьте дефектные пакеты и удалите их.

Читайте так же:
PackageKit — пользовательский интерфейс для установки и управления пакетами

Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать