Амедиатека списывает деньги с номера МТСЗапустил группу вконтактеНовые технологии дают толчок к будущемуЗа последние выходные почти полноценно перешёл на LinuxУмение ходить по грани

Работа с пакетами

Для начала я захотел проверить языковые пакеты firefox, так как русский язык у меня не присутствовал. Итак я выполнил команду:

apt-cache search firefox

после чего я нашёл языковые пакеты:

firefox-locale-ru

Дальше я переустанавливал только эти пакеты такой командой:

sudo apt-get install -f firefox-locale-ru --reinstall

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

В Ubuntu есть три основных основных консольных инструмента для работы с пакетами: dpkg, aptitude и apt-get. По умолчанию установлена только apt-get. Но вы всегда можете установить остальные две, с помощью той же apt-get.

Утилита APT (Advanced Packaging Tool)

Основным же консольным инструментом работы с пакетами является APT. В некотором смысле это консольный аналог менеджера пакетов Synaptic, хотя APT на самом деле обладает куда как большим функционалом. В нее входят утилиты apt-get, apt-cache и apt-key.

Сразу же вспомните про sudo, поскольку как ни странно, для внесения изменений в установленные компоненты системы apt-get требует административных полномочий. Хотя apt-cache работает и от имени обычного пользователя.

Начнём с того, что установить пакеты из репозиториев можно командой

sudo apt-get install имя_пакета1 [имя_пакета2 ...]

Сколько бы вы не указали пакетов, apt-get автоматически разрешит все зависимости и предложит вам конечный вариант необходимых действий, вам останется только лишь согласиться, нажав Enter:

Обратите внимание, apt-get предлагает вам в квадратных скобочках два возможных варианта ответа на поставленный вопрос:
[Д/н]

Д означает Да, то есть согласие, н - это Нет, то есть отказ. Вам нужно ввести символ, соответствующий вашему выбору и нажать Enter. Однако, есть вариант по умолчанию, выделенный в списке большой буквой, и если вам нужен именно он, то вы можете ничего не вводить, просто нажать Enter.

Аналогично установке, удалить пакеты можно одной из двух команд:

sudo apt-get remove имя_пакета1 [имя_пакета2 ...]
sudo apt-get purge имя_пакета1 [имя_пакета2 ...]

Первая удаляет только файлы пакета, оставляя настройки нетронутыми, вторая же удаляет пакет полностью (пользовательские настройки не удаляются).

Напоследок, несколько полезных команд:

  • sudo apt-get update- обновление информацию о пакетах, содержащихся в репозиториях. Никаких новых пакетов скачано и установлено не будет. Система просто проверит, есть ли новые версии для установленных у вас пакетов.
  • sudo apt-get upgrade - обновление пакетов, для которых в репозитории доступны новые версии. Будут скачаны из репозиториев и установлены в систему новые версии пакетов.
  • sudo apt-get autoremove - удаление пакетов, которые больше не нужны. Если пакет А был установлен не сам по себе, а как зависимость для пакета В, то, после удаления пакета В, пакет А тоже не нужен1).
  • sudo apt-get install -f - используется для устранения сбоев в базе пакетов вызванных нарушенными зависимостями.

Более подробную информацию можно узнать командой man apt-get.

Для получения информации о пакете используется утилита apt-cache. Основные команды:

  • apt-cache search - Поиск пакета по части названия или описания. Поддерживает регулярные выражения.
  • apt-cache show - Информация о пакете: версия, размер, описание и т. п.
  • apt-cache depends - Зависимости указанного пакета.
  • apt-cache rdepends - Обратные зависимости пакета.

apt-key служит для добавления и удаления ключей от репозиториев в систему. Ключи защищают репозитории от возможности подделки пакета.

Основные команды:

  • sudo apt-key add - Добавление ключа в базу доверенных ключей.
  • sudo apt-key del - Удаление ключа из доверенных.

Утилита dpkg

dpkg - это низкоуровневая программа управления пакетами, единственная полезная её функция для обычного пользователя - это прямая установка пакета из deb-файла2) (хотя, эту же операцию можно выполнить через Центр программного обеспечения). Выполняется она командой

sudo dpkg -i имя_пакета.deb

Для того, чтобы команда успешно выполнилась, в системе должны присутствовать все зависимости устанавливаемого пакета, поскольку dpkg не умеет их разрешать и скачивать что-либо из репозиториев. Можно так же ставить несколько пакетов за раз, передавая их все как аргументы команде dpkg -i. Больше я пожалуй ничего про dpkg рассказывать не буду, да и вряд ли вам как-либо ещё понадобится использовать эту утилиту.

Утилита aptitude

aptitude - утилита очень похожая на apt-get. Более того, большинство команда для apt-get, можно использовать и для aptitude, благо для этого вам всего лишь придётся заменить одно слово в команде на другое3). Недостатком aptitude является необходимость настройки, каким именно образом она будет разрешать зависимости. Зато, иногда она лучше обрабатывает эти самые зависимости, имеет мощный поиск, графический консольный интерфейс и ведет логи выполняемых операций.

Посмотреть версию конкретного пакета можно командой

sudo aptitude -v имя_пакета

Произвести поиск нужного пакета по доступным источникам приложений можно командой

aptitude search фраза

По умолчанию поиск производится по именам пакетов, для поиска по описаниям надо перед искомой фразой добавить символы ~d4):

aptitude search ~dфраза

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

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

И напоследок хочется заметить, что обычно в разнообразных инструкциях для установки пакетов вы увидите команду

sudo aptitude install имя_пакета

или

sudo apt-get install имя_пакета

Это ни в коей мере не значит, что кровь из носу надо исполнять эту команду. Вы спокойно можете поставить указанные пакеты через тот же Synaptic. Просто авторы инструкций обычно экономят своё время на объяснении куда и как надо нажимать в Synaptic, давая вместо всего этого одну маленькую команду. Но в конечном итоге и aptitude и apt-get и Synaptic выполняют одни и те же действия, так что используйте тот инструмент, который вам удобен.

Я описал только малую часть возможностей консольных утилит управления пакетами, однако всё остальное вам вряд ли потребуется.

P.S. Немного позитива

Разработчики - люди весёлые. Наберите в терминале команду

apt-get moo

Забавно? Как же может ответить на это aptitude:

aptitude moo

Вот незадача! Но постойте, а если попросить повежливей?

aptitude -v moo

А можно и ещё вежливей, и даже намного вежливей:

aptitude -vv moo
aptitude -vvv moo