Инструментарий apt

Инструментарий apt

Набор apt (Advanced Packaging Tools) – это программный комплекс, охватывающий все стороны управления пакетами. Он включает в себя почти десяток команд, тесно переплетающихся друг с другом. Так, назначение команды apt-cache – в получении информации о пакетах, причем не только установленных на локальной машине, но и находящихся в сетевых репозиториях. Сведения эти берутся из локальной базы данных, создаваемой во время инсталляции системы, и в дальнейшем обновляемой с помощью apt-get:

$ sudo apt-get update

При этом устанавливается соединение со всеми репозиториями, перечисленными в файле /etc/apt/sources.list, и локальный кэш пакетов приводится в соответствие с их текущим состоянием.

Теперь можно произвести тотальное обновление системы:

$ sudo apt-get upgrade

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

В некоторых случаях apt-get upgrade не сможет выполнить обновление каких-либо пакетов, о чем честно и сообщит. Причины этому могут быть разные – например, конфликт новых зависимостей пакетов. На сей случай имеется более радикальное средство – dist-upgrade. Именно к нему следует прибегнуть и при обновлении старой версии дистрибутива до нового релиза:

$ sudo apt-get dist-upgrade

Эта команда просто тотально перепишет все наличные пакеты их обновленными версиями, одновременно разрешая и новые их зависимости (вплоть до удаления конфликтующих пакетов).

Вот теперь можно взяться и за отдельные пакеты. Дистрибутивные deb-пакеты вовсе не совпадают с пакетами авторскими – они намного более дробные. Например, каждый из авторских пакетов KDE, типа kdenetworks или kdegraphics, делится на множество мелких монофункциональных deb-пакетов. И тут на помощь придет команда apt-cache search, которая в качестве аргумента воспринимает ключевое слово. И в ответ на команду вида

$ apt-cache search ftp

последует список всех пакетов, в описании которых фигурирует ключевое слово ftp.

Выявив нужный пакет, следует обратиться к команде apt-get install. посредством которой будет он благополучно скачан и установлен – со всеми обязательными (depends) зависимостями. Перед этим будет опять-таки выведен список подлежащих установке пакетов, объем скачиваемого материала и изменения в занятом дисковом пространстве. А также будет дан список пакетов, связанных с данным разными типами «мягких» зависимостей – пользователю останется только решить, нужны ли они ему.

Инструмент apt-get выполняет и удаление пакетов:

$ apt-get remove packagname

При этом настроечные файлы сохраняются – для их удаления требуется опция --purge, которая выполнит полную очистку системы от всех компонентов пакета.

Очень ценна опция -i, обеспечивающая инверсию действия операторов. То есть команда

$ sudo apt-get remove packagname -i

установит пакет packagename, а команда

$ sudo apt-get install packagname -i

напротив, удалит его. Что очень полезно при экспериментировании с большим количеством пакетов.

Если нужно собрать из исходников много пакетов, пересобрать систему целиком или требуется компиляция с какими-либо особыми условиями, следует прибегнуть к инструменту – apt-build. Это – отдельный пакет, который устанавливается обычными образом, и в ходе установки настраивается. Настройки включают: выбор степени оптимизации, облегченной (соответствующая флагу gcc -O1), средней (флаг -O2) или усиленной (-O3), указание дополнительных флагов gcc, если в них есть необходимость, опций для команды make, выбор процессора (Pentium, Pentium-4 и так далее). Если же для отдельных программ условия компиляции нужно изменить – apt-build можно переконфигурировать обычным образом:

$ sudo dpkg-reconfigure apt-build

Команда apt-build включает ряд операторов, таких, как update – обновление списка доступных пакетов, upgrade – сборка обновленных пакетов, world – полная пересборка всей системы. То есть инструмент apt-build, не смотря на сугубо пакетную природу использующих его дистрибутивов, имеет ничуть не меньшие возможности по индивидуалированной компиляции, чем система портов FreeBSD или аналогичные средства Source Based дистрибутивов Linux.