Использовать apt или apt-get
Для управления пакетами может применяться команда apt или apt-get. На самом деле, выбор ещё больше: dpkg, aptitude, synaptic, wajig, а также графические интерфейсы от авторов дистрибутивов. Но все эти менеджеры пакетов имеют свои чёткие особенности, а apt и apt-get очень похожи, у них практически одинаковые команды и опции, они выполняют одинаковые функции. Разберёмся, чем отличаются apt и apt-get.
Программа apt предназначена для интерактивного использования и её поведение может меняться с выходом новых версий. А программа apt-get предназначена для использования в скриптах и её поведение и вывод очень консервативны.
На самом деле, для большинства типичных задач (установка и удаление пакетов), программы очень похожи.
Я предпочитаю apt как более «свежую», но на самом деле практически во всех последующих примерах команд вы можете заменить «apt» на «apt-get» и не почувствуете никакой разницы.
Словарь APT
Пакет — программа, библиотека, исходники или любые другие файлы, а также их метаданные, упакованные в особым образом сформированный архив.
Репозиторий — место хранения deb-пакетов.
Кэш доступных пакетов (или просто кэш) — файл, в котором кэшируется информация обо всех пакетах, доступных из источников, перечисленных в /etc/apt/sources.list. Кэш обновляется во время каждого вызова команды «apt-get update».
Индексный файл — головной файл репозитория, содержащий название, версию, размер, краткое и полное описание и зависимости для каждого пакета. Носит имя Packages.gz в случае бинарного репозитория и Sources.gz для репозитория исходных текстов. Создается с помощью утилит pkg-scanpackages и dpkg-scansources.
Apt keyring (дословно: связка ключей apt) — хранилище ключей, удостоверяющих подлинность источников пакетов (репозиториев).
Apt vs Apt-get. В чем различия?
Что использовать, apt или apt-get? В чем же разница между этими двумя утилитами? Для начала вам больше не нужно использовать apt-get autoremove, чтобы очистить кеш пакетов, пакеты будут удаляться автоматически. Также вам не нужно вводить apt-cache search для поиска пакетов.
Эти команды были заменены на apt search и apt remove. Главное отличие apt от apt-get — в том, что программа объединяет большинство команд apt-get и apt-cache. Вся функциональность теперь находится в одной утилите.
Хотя это не единственное отличие, от apt-get. Здесь улучшены прогресс бары установки пакетов. Ещё поддерживаются некоторые дополнения, которые делают утилиту умнее предыдущей. Например, при обновлении источников программного обеспечения с помощью apt-get нет простого способа посмотреть список пакетов доступных к обновлению. Здесь же вы можете просто выполнить:
А затем:
Конечно, мелочи, но приятно. Также были добавлены новые, современные цвета вывода, и в целом установка пакетов проходит быстрее. Canonical не спешит отказываться от apt-get, но они сделают это позитивным изменением.
Поиск и устранение неисправностей
Если Ваш 10.04/12.04 или 11.10/13.10 менеджер обновления не предлагают Вам обновлять, то проверьте свои источники программного обеспечения, чтобы видеть, установлен ли он на «Никогда». Если это — затем изменение значение к «Выпускам Долговременной поддержки Только» (10,04 LTS/12.04 LTS) / «Для какой-либо новой версии» (11.10/13.01):
для 10,04 LTS/12.04 LTS
для 11.10/13.10
По словам менеджера команды Основ Разработки Ubuntu Steve Langasek:
Если Вы принимаете решение обновить к тому времени, можно передать-d опцию инструменту обновления, работая или , обновить от ванили 10.04/12.04 к 12.04/14.04.
Посмотрите это Вопросы и ответы для получения дальнейшей информации:
С терминала
Большинство пользователей обновляются с помощью диспетчера обновлений. Не то, чтобы я не доверял этому, но я доверяю терминалу больше.
Закройте все приложения и откройте только терминал (в полноэкранном режиме). Дайте эту команду, и обновление начнется:
Во время обновления
- Не открывайте никаких приложений, оставляйте это до перезагрузки.
- Не переходите в среду рабочего стола, у вас будет время сделать это позже. Выпейте чашку кофе, расслабьтесь и подождите, наберитесь терпения, пока обновление не закончится.
- Если вам нужно вмешаться во время обновления (из терминала), вы можете сделать это с помощью Tab kbd> и Enter kbd>. Например, если у вас есть два диспетчера отображения (например, LightDM и GDM), при обновлении вам будет предложено, какое из них вы хотите использовать; нажимайте Tab kbd>, пока нужный элемент не будет выделен, затем нажмите Enter kbd>.
В чем разница между apt и apt-get?
Существует 5 основных различий между apt и apt-get:
apt имеет красивую шкалу прогресса;
apt отображает список пакетов, которые могут быть обновлены;
apt объединяет в себе функции apt-get, apt-cache и dpkg -l;
apt имеет новые команды;
различный синтаксис команд apt и apt-get.
apt имеет красивую шкалу прогресса
При установке или удалении пакета с помощью команды apt, отображается шкала прогресса, показывающая в процентах ход выполнения текущей задачи:
apt отображает список пакетов, которые могут быть обновлены
При обновлении базы данных репозиториев, отображается дополнительная строка с информацией о количестве пакетов, которые могут быть обновлены:
После этого вы можете запросить список этих пакетов, выполнив команду
Обратите внимание на улучшенный цветовой дизайн, помогающий более точно расставить акценты на необходимых вам элементах:
apt объединяет в себе функции apt-get, apt-cache и dpkg -l
До Ubuntu 16.04 пользователи взаимодействовали с APT, в основном, только через apt-get, apt-config и apt-cache. Эти утилиты поддерживают множество различных дополнительных команд (например, apt-get install/remove/update/upgrade/help и пр.), и пользователи вынуждены были их запоминать. В связи с этим встал вопрос о создании более простого инструмента управления пакетной базой, который бы состоял только из самых необходимых команд.
С выпуском Ubuntu 16.04 и Debian 8 таким инструментом стал apt, объединивший в себе возможности apt-get и apt-cache. Утилита apt более удобна в использовании по сравнению с существующими инструментами из набора APT. Кроме того, теперь вам больше не требуется переключаться между apt-get и apt-cache.
apt имеет новые команды
Помимо упрощения существующих команд, у apt добавилось несколько новых:
Команда apt | Назначение команды |
apt list | Вывод списка установленных и доступных для обновления пакетов. |
apt edit-sources | Редактирование файла /etc/apt/sources.list, содержащего список репозиториев, из которых могут быть скачаны пакеты. |
Различный синтаксис команд apt и apt-get
Хотя утилита apt и сочетает в себе функционал утилит apt-get и apt-cache, но не все её команды имеют обратную совместимость с apt-get. По этой причине, вы не всегда сможете заменить команду apt-get командой apt. В следующей таблице приведено небольшое сравнение команд apt и apt-get:
apt | apt-get | Назначение команды |
apt update | apt-get update | Обновление списка доступных пакетов. |
apt install | apt-get install | Установка пакета. |
apt upgrade | apt-get upgrade | Установка более новых версий пакетов. |
apt full-upgrade | apt-get dist-upgrade | Обновление всех пакетов и удаление ненужных зависимостей. |
apt remove | apt-get remove | Удаление пакета. |
apt purge | apt-get purge | Полное удаление пакета вместе со всеми его конфигурационными файлами. |
apt autoremove | apt-get autoremove | Удаление ненужных зависимостей. |
apt search | apt-cache search | Поиск пакета по его имени. |
apt show | apt-cache show | Вывод информации о пакете. |
apt policy | apt-cache policy | Вывод информации об используемых репозиториях, а также их приоритете. |
apt policy | apt-cache policy | Вывод информации о версии установленного пакета и доступной для обновления версии пакета. |
Продвинутая система управления пакетами
Сама по себе APT (Advanced Packaging Tool) не является системой управления пакетами в прямом смысле этого слова. Все действия по распаковке, регистрации в системе и видению базы пакетов выполняют утилиты пакета dpkg, в то время как утилиты APT представляют собой обертку, с помощью которой осуществляется поиск пакетов, сверка контрольных сумм, выкачивание из репозитория, разрешение зависимостей, а также ряд других действий.
APT включает в себя следующий набор утилит:
Утилиты пакета apt
- apt-cache — манипулирует кэшем доступных пакетов, обычно используется для поиска пакета и/или получения информации о нем
- apt-cdrom — позволяет добавить CD/DVD-диск в качестве источника пакетов (репозитория)
- apt-config — читает значения опций, заданных в конфигурационном файле /etc/apt/apt.conf, используется другими APT-утилитами
- apt-extracttemplates — извлекает конфигурационные файлы DebConf из пакетов, используется другими APT-утилитами
- apt-ftparchive — создает индексные файлы
- apt-get — устанавливает, удаляет, обновляет список пакетов и сами пакеты, центральная APT-утилита
- apt-key — управляет ключами аутентификации, используемыми для проверки подлинности источников пакетов
- apt-secure — проверяет подлинности цифровой подписи пакетов apt, входящих в состав дистрибутива и репозиториев
- apt-sortpkgs — сортирует индексные файлы
Утилиты опираются на следующие файлы конфигурации:
Конфигурационные файлы APT
- /etc/apt/sources.list — список источников пакетов (репозиториев)
- /etc/apt/apt.conf — основной файл конфигурации APT
- /etc/apt/preferences — файл предпочтений, управляет тем, какая версия пакета будет установлена в случае наличия в репозитории сразу нескольких версий
APT проста и понятна в использовании, среднестатистическому пользователю обычно достаточно всего шести нижеприведенных команд:
Основные команды APT
- apt-cache search маска — поиск пакета
- apt-cache show пакет — просмотр информации о пакете
- apt-get install пакет — установка пакета
- apt-get remove пакет — удаление пакета
- apt-get update — обновление кэша доступных пакетов
- apt-get upgrade — обновление всех пакетов
Последние две команды обычно выполняются одна за другой, в результате чего переустанавливаются все пакеты, для которых в репозитории доступны новые версии. Если же необходимо обновить только указанный пакет, то после «apt-get update» следует выполнить команду «apt-get install пакет».
Дистрибутив Ubuntu делает процесс «общения» с APT-утилитами еще более простым и сводит его к кликанью по галочкам графического интерфейса. В нем есть собственный, предельно простой, менеджер пакетов (так и называется «Package Manager»), запускающийся по cron’у менеджер обновлений Update Manager, графический установщик вручную загруженных deb-пакетов GDebi и более мощная графическая надстройка над APT-утилитами Synaptic.
Между тем, APT гораздо сложнее и гибче, чем это может показаться на первый взгляд. Поэтому в следующих разделах мы рассмотрим несколько не совсем типичных приемов ее использования.
Ошб:1 404 Not Found [IP:
В дистрибутивах Debian, Linux Mint, Ubuntu, Kali Linux и других на их основе при установке пакета командой «sudo apt install ПАКЕТ» может возникнуть ошибка, что не удалось получить некоторые архивы.
Эта же самая ошибка может возникнуть при использовании команд sudo apt full-upgrade и sudo apt dist-upgrade.
При установке пакета информация о нём берётся из локального кэша, который не обновляется автоматически. То есть если файл изменился на сервере (например, вышла новая версия), то при попытке его скачать будет запрошена старая версия, которая может быть уже удалена с сервера обновлений, что и приводит к подобным ошибкам.
Пример такой ошибки:
E: Не удалось получить https://http.kali.org/kali/pool/main/u/util-linux/uuid-dev_2.35.2-2_amd64.deb 404 Not Found E: Не удалось получить https://http.kali.org/kali/pool/main/u/util-linux/libblkid-dev_2.35.2-2_amd64.deb 404 Not Found E: Не удалось получить https://http.kali.org/kali/pool/main/u/util-linux/libmount-dev_2.35.2-2_amd64.deb 404 Not Found E: Не удалось получить некоторые архивы; возможно, нужно запустить apt-get update или попытаться повторить запуск с ключом --fix-missing?
Ключевой здесь является строка Ошб:1 404 Not Found — то есть файл пакета не найден. Самой частой причиной этого является устаревший кэш с информацией о пакетах и ссылками на их загрузку.
Поэтому перед установкой пакета или обновлением системы обновите кэш:
sudo apt update
При обновлении, используйте такую комбинированную команду, которая обновит кэш и сразу запустит загрузку и установку обновлённых версий пакетов:
sudo apt update && sudo apt full-upgrade -y
Другие инструменты работы с обновлениями
Собственно, Менеджер обновлений — это крайне простой и удобный инструмент, однако, как всегда, все необходимые действия можно сделать ещё несколькими способами. Во-первых, обновить пакеты можно через Менеджер пакетов Synaptic, помните про две кнопочки на панели инструментов?
При нажатии на «Обновить» будут скачаны все изменившиеся с последней проверки индексы репозиториев, таким образом, будет проверено наличие новых обновлений. При нажатии на «Отметить для обновления» будут отмечены для обновления все пакеты, для которых доступны новые версии. Помните, что Synaptic применяет все изменения не сразу? Поэтому для фактического запуска процесса обновления нужно будет нажать на кнопку «Применить».
Кроме того, как всегда всё можно сделать через терминал. Для обновления индексов репозиториев используйте команду:
sudo apt-get update
А для непосредственной установки всех доступных обновлений команду:
sudo apt-get upgrade
Изредка встречаются ситуации, когда Менеджер обновлений не может разрешить все конфликты и установить все обновления. В этом случае рекомендуется использовать как раз консольную утилиту , поскольку она является самой функциональной из всех доступных инструментов управления пакетами и умеет автоматически исправлять большинство проблем.
Итак, надеюсь теперь вы разобрались в вопросах управления программным обеспечением в Ubuntu. В следующей статье поговорим про установку дополнительного программного обеспечения:
Установка дополнительного ПО
Aptitude
Утилита apt-get и ее родственники — не единственная из доступных реализация APT. Еще более мощная, удобная и универсальная альтернатива им зовется aptitude и представляет собой концентрированный в одном месте функционал apt-get, apt-cache и dselect.
Aptitude позволяет устанавливать/удалять, искать, обновлять и производить массу других действий с пакетами, используя два типа интерфейса: командный режим, сходный с apt-get и apt-cache, и режим с псевдографическим интерфейсом, внешне напоминающий интерфейс dselect, но гораздо более удобный и функциональный.
В режиме командной строки aptitude можно использовать для выполнения таких действий, как:
- aptitude install — установка пакета
- aptitude remove — удаление пакета и осиротевших зависимостей
- aptitude purge — удаление пакета, осиротевших зависимостей и оставшихся после них конфигурационных файлов
- aptitude search — поиск пакета в кэше (списке доступных пакетов)
- aptitude update — обновление кэша
- aptitude safe-upgrade — обновление пакетов
- aptitude clean — удаление ранее скачанных пакетов
- aptitude full-upgrade — обновление пакетов, даже если это действие требует удаления каких-либо пакетов
- aptitude show — информация о пакете
- aptitude autoclean — удаление устаревших пакетов
- aptitude hold — установка запрета на обновление пакета
Интерактивный режим, доступный при запуске aptitude без аргументов, позволяет выполнить все те же действия, используя псевдографический интерфейс, построенный на базе библиотеки ncurses. Он работает в пакетном режиме (выбрал пакеты — запустил процесс установки), поэтому будет удобен в тех случаях, когда требуется установить большое количество пакетов.
Выводы
Утилита apt-get проверенная и надежная часть менеджера пакетов Debian. Этот инструмент используется на протяжении большого времени и поставляется по умолчанию во многих релизах Ubuntu и Debian. Мы всегда его использовали когда нужно было обновить что-то, обновить программное обеспечение или даже просто очистить систему от мусора.
Тем не менее она устаревает. Менеджер пакетов уже не отвечает всем потребностям пользователей, а поэтому он медленно заменяется на apt. Разработчики Ubuntu понимают, что им нужно обновить свой пакетный менеджер, сделать его более простым, элегантным и безопасным. Но пока в системе существуют обе утилиты и выбирать что использовать apt или apt-get предстоит вам. Будете ли вы использовать новый менеджер пакетов? Или уже используете?