Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Приемы работы в Ubuntu.
Глава 6: Управление пакетами

Оригинал: "Ubuntu Hacks: Chapter 6 - Package Management"
Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)
Дата публикации: June 2006
Перевод: Н.Ромоданов
Дата перевода: сентябрь 2010 г.

Одним из ключевых преимуществ Ubuntu является качество программных пакетов, которые включены в основной дистрибутив: они были собраны вместе и придирчиво проверены с тем, чтобы сформировать надежный дистрибутив Linux. Управление этими пакетами осуществляется с помощью инструментального средства, которое называется APT (Advanced Packaging Tool), а также с помощью множества внешних интерфейсов, используя которые работать с apt становится немного легче. В этой главе вы узнаете, как пользоваться apt и этими внешними интерфейсами.

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

Совет # 54: Управление пакетами из командной строки

Заглянем глубже в систему и будем управлять пакетами непосредственно из командной строки.

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

В Ubuntu прилагаются усилия к обеспечению единообразия в процессе управления программным обеспечением. Все программное обеспечение упаковывается с использованием строго определенного формата, в котором хранится сама программа, а также информация о том, как программа должна устанавливаться, и все пакеты, которые имеются на вашем компьютере, используют тот же самый формат. Средства управления пакетами организованы в виде слоев, при этом каждый слой базируется на слоях, расположенных ниже. На самом низком уровне находится приложение dpkg, которое непосредственно управляет пакетами; инструментальные средства среднего уровня, такие как apt, находятся выше dpkg и предоставляют больше функциональных возможностей, например, такие как автоматическое разрешение зависимостей; а такие инструментальные средства высокого уровня, как Synaptic и Adept, размещены поверх apt и позволяют вам в графическом режиме простым щелчком мыши просмотреть списки пакетов и выполнить их установку.

Приложение dpkg

Приложение dpkg является основой системы управления пакетами Debian, которое позволяет непосредственно манипулировать пакетами. Если у вас на локальном диске есть пакет с названием program-1.0-1.deb, который вы хотите установить, то dpkg является именно тем инструментом, который следует использовать. Поскольку это очень важная часть системы управления пакетами, ей будет посвящен отдельный совет [Совет # 57].

apt и его друзья

Хотя первоначально ничего не предполагалось использовать в качестве инструментального интерфейса, в последующем между приложением dpkg и инструментальными средствами, ориентированными на конечного пользователя, такими как Synaptic и Adept, стал применяться apt, который, пожалуй, является самым распространенным способом управления пакетами из командной строки.

Некоторые команды требуют привилегий root, так что вы должны предварять их префиксом sudo, если вы работаете как непривилегированный пользователь.

Ниже приведены некоторые команды, попробовав которые вы будете удивлены, как вы без них обходились:

Получить текущий список пакетов от всех серверов
Если вы не сделаете этого время от времени, ваш локальный список доступных пакетов может устареть. Выполняйте эту команду время от времени перед тем как запускать команду dist-upgrade или пытаться найти новый пакет. Списки пакетов большие и во время обновления списков из интернета будут скачаны данные размером в несколько мегабайт:
$ sudo apt-get update
Выполняйте поиск по ключевым словам
Команда search выполняет поиск в списках доступных пакетов, в том числе поиск по именам и описаниям. Вы можете использовать несколько ключевых слов, например, apt-cache search text editor для того, чтобы найти список текстовых редакторов:
$ apt-cache search keywords
Получение дополнительной информации
После того, как вы с помощью команды apt-cache search найдете пакет, который вам покажется интересным, вы можете воспользоваться командой apt-cache show program для того, чтобы получить о нем дополнительную информацию. Вам будет предоставлены такие сведения, как размер пакета (важно, если вы устанавливаете его через Интернет) и его подробное описание, а также информация о том, от каких других пакетов зависит работа данного пакета и имя разработчика, который поддерживает пакет:
$ apt-cache show program
Установка пакета
С помощью этой команды вы можете получить последнюю версию конкретного пакета и установить его вместе с другими пакетами, от которых зависит его работа. Если запрашиваемый пакет уже установлен, он будет обновлен до последней доступной версии:
$ sudo apt-get install program                  
Удаление программы
Если вы ранее установили программу и решили, что она вам больше не нужна, вы можете удалить ее с помощью этой команды. Поскольку некоторые пакеты программ могут зависеть от других, удаление одной программы может привести к прекращению работы других программ. Поэтому когда вы запускаете программу apt-get remove, сначала будет проверено, есть ли другие программы, работа которых зависит от удаляемой программы, и вам будет предложено их также удалить. Это только один пример того, насколько качественно были разработаны инструментальные средства управления пакетами, имеющиеся в Ubuntu и благодаря которым ваш компьютер не прекращает работать из-за неработающего или не полностью установленного программного обеспечения. Конечно, есть вероятность нарушить работу Ubuntu, но, в целом, вы должны удалить программы, предлагаемые к удалению. Команда remove также имеет параметр --purge, при использовании которого удаляется не только сама программа, но также и связанные с ней конфигурационные файлы:
$ sudo apt-get remove program
                        
$ sudo apt-get remove --purge program
Обновление вашей системы
С течением времени большинство пакетов программного обеспечения, которые есть на вашем компьютере, устаревает, т. к. появляются новые версии, в которых добавлены новые функции и исправлены ошибки. Вы можете каждый раз вручную выполнять команду apt-get install foo, но это не очень удобно, поэтому apt предоставляет простой способ сразу обновить всю систему. Просто наберите команду apt-get upgrade и apt проверит наличие новой версии для каждого пакета в вашей системе, а затем ее загрузит и установит. Эта команда никогда не будет устанавливать новые пакеты, она предназначена только для обновления пакетов, которые уже установлены:
$ sudo apt-get upgrade
Выполнение полного обновления
Иногда у вас уже установлен пакет и выходит новая версия, в которой есть много новых возможностей, поэтому, она теперь при работе зависит от некоторых других программ. Например, у вас уже может быть установлен видеопроигрыватель, который поддерживает много различных видеоформатов. Когда появляются новые видеоформаты, модули для них могут добавляться в виде отдельных пакетов, так что последняя версия видеоплейера теперь зависит от нового пакета, который еще не установлен в вашей системе. Если вы просто запустите команду apt-get upgrade, вы получите последний видеоплеер, но вы не получите все новые пакеты видеоформатов. Команда apt-get dist-upgrade позволит вам решить эту проблему: она не только получит самую последнюю версию каждого уже установленного пакета так, как это делает команда apt-get upgrade, но также установит все необходимые новые пакеты, которых еще может не быть в вашей системе. Если вы хотите, чтобы ваша система находилась в постоянно обновленном состоянии и в ней были использованы все обновления, связанные с безопасностью, лучший способ этого добиться - это время от времени запускать команды apt-get update; apt-get dist-upgrade:
$ sudo apt-get dist-upgrade
Очистка кэша
Когда вы просите утилиту apt установить пакет программного обеспечения, она загружает пакет и прежде, чем выполнить инсталляцию, сохраняет его в кэше на жестком диске. Если вы затем удалите пакет, но позже передумаете и захотите снова его установить его, утилите apt не потребуется его искать в интернете, поскольку пакет находится в локальном кэше. Это хорошо для экономии объема скачиваемых данных, но через некоторое время кэш может занимать значительное пространство на жестком диске, так что хорошо периодически удалять из него старые пакеты. Запуск команды apt-get clean полностью очистит кэш пакетов, возможно, высвободив драгоценное дисковое пространстве. Эта команда абсолютно безопасна, потому что самое худшее, что может случиться, это то, что утилите apt, возможно, потребуется загрузить пакет снова, если вы его удалили, а затем его переустанавливаете:
$ sudo apt-get clean
Интеллектуальная очистка кэша
Команда autoclean почти такая же, как команда clean, за исключением лишь того, что она чуть-чуть умнее: вместо очистки всего кэша пакетов, она удаляет только те пакеты, для которых есть замена. Например, в вашем кэше пакетов могут быть последние четыре версии текстового редактора, который обновлялся несколько раз. Запуск команды apt-get autoclean удалит из кэша старые три версии, оставив только последнюю. Это имеет смысл, поскольку вы, скорее всего, будете переустанавливать именно последнюю версию:
$ sudo apt-get autoclean

Облегчаем работу ленивым

Если вы проводите много времени, работая в командной строке, вы можете облегчить себе жизнь созданием сокращений (ярлыков) для часто используемых команд. Добавьте в ваш файл ~/.bashrc следующие строки:

alias agi='sudo apt-get install'
alias agu='sudo apt-get update'
alias ags='apt-cache search'
alias agsh='apt-cache show'
alias agr='sudo apt-get remove'
alias agd='sudo apt-get dist-upgrade'

Теперь вам не придется набирать целиком команды. Для поиска, например, просто наберите ags foo и введите пароль, если он потребуется. Лень — великая вещь!


Назад Оглавление Вперед