APT

Раздел для тем в стадии оформления.
Аватара пользователя
Chocobo
Сообщения: 4581
Зарегистрирован: 27 авг 2016, 19:57
Решено: 108
Откуда: НН
Благодарил (а): 374 раза
Поблагодарили: 1227 раз

APT

Сообщение Chocobo » 01 сен 2017, 16:16

APT (Advanced Package Tool) - Пакетный менеджер и одноименная утилита командной строки для взаимодействия с пакетами программного обеспечения в DEB-based дистрибутивах (Linux Mint, Ubuntu, Debian, etc). Его можно использовать его для поиска и установки новых пакетов, обновления или удаления пакетов и т. д.

На данный моменту тилита apt пришла на смену прежнему варианту, носившему название apt-get. Основные различия между ними - чуть более лаконичный синтаксис комманд в apt, несколько новых параметров вроде листинга пакетов по условию и отображение прогрессбара во время выполнения операций над пакетами. ну и т.к. apt-get уже довольно давно не актуален в нашем дистрибутиве (хотя его и можно использовать как раньше) - рассмотрим именно apt

Обновление базы данных пакетов с помощью apt
Фактически apt работает с базой данных формируемой из доступных в подключенных репозиториях пакетов. Если списки пакетов не обновляются, система не будет знать, имеются ли новые версии пакетов для обновления.
обновление спиков пакетов можно выполнить используя команду apt-update, т.к. эта операция затрагивает важные околосистемные файлы пакетного менеджера - будет запрошен пароль для повышения привелегий. Затем будет отражена информация о списках пакетов, получаемых с разных серверов указанных в "Источниках Приложений"
Снимок экрана от 2017-09-01 15-17-19.png

Также в этом списке каждая запись может иметь три статуса (сокращения в начале строки):
  • Сущ (англ Hit) - означает, что указанный файл уже существует в локальной базе пакетов и не изменялся с последнего обновления списков ПО
  • Игн (англ Ign) - Запрошенный файл не существует на сервере, или же его не получилось скачать, тем не менее это никак не повлияет на ход обновления, поэтому не считается ошибкой
  • Пол (англ get) - обозначает что файл успешно скачан и будет учтен при построении локального списка пакетов для обновления
По завершению работы команды будет выведена информация о полученном объеме информации и количество пакетов доступных для обновления (apt list рассмотрим чуть ниже)
Снимок экрана от 2017-09-01 15-19-19.png


Обновление установленных пакетов
После обновления базы данных пакетов можно приступить к обновлению самих программ. Сделать это можно одной командой - apt upgrade. Перед обновлением будет показано количество и названия пакетов которые подлежат обновлению
Снимок экрана от 2017-09-01 15-46-08.png

Также для обновления служит команда apt full-upgrade, которая делает почти то же самое, за исключением того, что предложит также удалить установленные программы, если среди них есть конфликты с обновлениями пакетов.

Ну и стоит учесть, что в Linux MInt обычно нет необходимости в подобном обновлении средвами apt, т.к. внашем дистрибутиве предусмотрен отличный Менеджер Обновлений (mintupdate), который распределяет пакеты между пятью уровнями, по степени их влияния на систему, что обеспечивает долгую и счастливую жизнь вашей ОС :smile: Плюс в менеджере обновлений применется распараллеливание загрузки в несколько потоков, что может значительно ускорить загрузку обновлений из интернета. Для тех же, кто просто хочет использовать терминал для обновления системы - есть и консольная версия утилиты, mintupdate-cli (в общем, apt upgrade идет нафиг :crazy: но в рамках этой темы в любом случае пусть будет описан)

Установка пакетов
Для установки пакета - используем команду apt install имяпакета
Перед установкой будут отображены зависимые и рекомендуемые к установке пакеты, их объем и запрос подтверждения на выполнение операции
Снимок экрана от 2017-09-01 16-04-47.png

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


В случае если имя пакета полностью не известно - двойное нажатие клавиши Tab выведет все варианты которые совпадают с уже введенной частью названия (на самом деле автодополнение работает не только с install, но и в других операциях):
Снимок экрана от 2017-09-01 18-32-16.png


Можно установить сразу несколько пакетов путем простого перечисления их через пробел:
apt install первый_пакет второй_пакет

В подключенных репозиториях может содержаться несколько версий одного и того же пакета, по умолчанию выбирается самый новый пакет из репозитория с наивысшим приоритетом (Pin-Priority). Обойти это поведение можно указав версию пакета через знак равенства после его имени
apt install имяпакета=1.0.2
Снимок экрана от 2017-09-01 18-38-44.png


Ключ --no-upgrade используется если нам нужно только установить пакет которого нет в системе, и ничего не делать если такой пакет уже установлен, независимо от доступных для него обновлений
Снимок экрана от 2017-09-01 18-47-21.png


Ключ --only upgrade используется для обратного поведения - в случае если пакет установлен для него будут проверены и установлены обновления, а если пакет не установлен то не делать ничего.
Снимок экрана от 2017-09-01 18-47-55.png


У многих программ кроме прямых зависимостей,необходимых для работы программы зачастую имеются еще рекомендованные (recommends) и предлагаемые (suggests) к установке пакеты, например отдельно распространяемые наборы плагинов, которые расширят функционал, документацию, локализацию и т.д.
Чтоб установить пакет вместе с его рекомендованными пакетами - добавлем ключ --install-recommends
Соответсвенно для предлагаемых пакетов - используем --install-suggests
Оба ключа можно использовать в одной комманде:
Снимок экрана от 2017-09-01 19-44-01.png


Удаление пакетов
Для удаления пакетов служат команды remove и purge
apt remove имяпакета - удалит пакет из системы, но оставит его конфигурации в системных директориях. И в случае повтороной установки пакета - он будет использовать эти файлы в своей работе.
apt purge имяпакета - удалит все следы программы в системных диретокриях, может быть полезно когда что-то явно сломалось в конфигурациях и нужно установить программу начисто
remove.png

удаление по маске ► Показать


После удаления одних пакетов - другие, которые были подтянуты как зависимости или рекомендации могут стать неактуальными, т.к. больше никто их не использует. Для очистки системы от подобных неиспользуемых пакетов - apt autoremove. apt знает связи между пакетами и предложит список тех из них, которые можно безболезненно удалить
Снимок экрана от 2017-09-01 16-03-46.png


Поиск пакетов и информации о них
Для поиска пакетов по части их имени или описания можно использовать apt search чтонибудь
В результате будет выведен список пакетов сколь-либо подходящих под заданный паттерн
search.png


Чтоб просмотреть доступные версии и источник пакета - apt policy имяпакета
Будут выведены версия которая установлена на данный момент (если установлена), предлагаемая к установке актуальная версия, список репозиториев в которых доступен данный пакет
policy.png


Наиболее полную информацию о пакете можно получить с помощью команды apt-show имяпакета. Тут будет более чем исчерпывающая информация обо всем что может потребоваться.
show.png

В случае если доступно несколь версий - добавить ключ -a, чтоб вывести поочередно о каждом.

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

Схожая команда apt rdepends имяпакета - используется для вывода списка обратных зависимостей, т.е это будут пакеты в которых запрошенный указан как прямая зависимость, и при их установке будет произведена и его установка
rdepends.png


todo: list, hold
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение

Аватара пользователя
root
Сообщения: 539
Зарегистрирован: 16 фев 2017, 17:03
Решено: 3
Откуда: г. Хабаровск
Благодарил (а): 166 раз
Поблагодарили: 112 раз

APT

Сообщение root » 02 сен 2017, 07:19

Chocobo, тема хорошая, скриншоты - не очень) (скринить лучше непрозрачный терминал)
User: adminka
OS: Linux Mint 18.2 Sonya Cinnamon :thumbs:
Kernel: 4.11.0-14-generic
Devices ► Показать
Я не волшебник, я только учусь ;)

Аватара пользователя
Chocobo
Сообщения: 4581
Зарегистрирован: 27 авг 2016, 19:57
Решено: 108
Откуда: НН
Благодарил (а): 374 раза
Поблагодарили: 1227 раз

APT

Сообщение Chocobo » 02 сен 2017, 08:38

root, Уж какой есть) может потом как-нибудь перещелкаю если не лень будет
Изображение

027
Сообщения: 26
Зарегистрирован: 31 авг 2017, 06:05
Благодарил (а): 7 раз
Поблагодарили: 2 раза

APT

Сообщение 027 » 02 сен 2017, 18:59

Chocobo писал(а):Источник цитаты На данный моменту тилита apt пришла на смену прежнему варианту, носившему название apt-get.

Во-первых, не только apt-get, а еще и apt-cache и apt-mark.
Во-вторых, не на смену, эти утилиты никуда не делись.
В-третьих, эта утилита — маленький скрипт на питоне, живущий тут: /usr/local/bin/apt.

Утилита является всего лишь надстройкой над стандартными командами одноименной системы управления пакетами APT (Advanced Packaging Tool) и предоставляет более короткий и удобный синтаксис. Например, для установки и удаления пакетов вы должны использовать apt-get, а для поиска и просмотра информации apt-cache. Интерфейс не страдает излишним изяществом, мягко говоря.

Утилита apt убирает эти сложности «под капот». Удобно также, что утилита в необходимых случаях сама вызывает sudo. Однако, надо иметь в виду, apt позволяет выполнять лишь самые ходовые команды, а все богатство опций и возможностей по-прежнему требует использования стандартного инструментария пакетного менеджера APT.

Аватара пользователя
symon2014
Сообщения: 1514
Зарегистрирован: 29 авг 2016, 02:17
Решено: 18
Откуда: Феодосия
Благодарил (а): 46 раз
Поблагодарили: 399 раз

APT

Сообщение symon2014 » 02 сен 2017, 19:02

027 писал(а):Источник цитаты утилита в необходимых случаях сама вызывает sudo.

Неа, эта фича только для минта. :smile:
:sry:
Debian (8.8) , LMDE2 , LM 18.2 Mate .

027
Сообщения: 26
Зарегистрирован: 31 авг 2017, 06:05
Благодарил (а): 7 раз
Поблагодарили: 2 раза

APT

Сообщение 027 » 02 сен 2017, 19:03

А мы тут ап чем? ;)
Но таки да, в убунте она этого не умеет.

Аватара пользователя
Chocobo
Сообщения: 4581
Зарегистрирован: 27 авг 2016, 19:57
Решено: 108
Откуда: НН
Благодарил (а): 374 раза
Поблагодарили: 1227 раз

APT

Сообщение Chocobo » 02 сен 2017, 19:08

027 писал(а):Источник цитаты Во-первых, не только apt-get, а еще и apt-cache и apt-mark.

apt объединил в себе все указанное.
027 писал(а):Источник цитаты Во-вторых, не на смену, эти утилиты никуда не делись.

И об этом тоже указал, что прежний вариант пока доступен. Тем не менее о нем пора забывать, аки service

symon2014 писал(а):Источник цитаты фича только для минта.

Да-да-да, у нас есть свой /usr/local/bin/apt - убунта курит :hoho:
Изображение

027
Сообщения: 26
Зарегистрирован: 31 авг 2017, 06:05
Благодарил (а): 7 раз
Поблагодарили: 2 раза

APT

Сообщение 027 » 02 сен 2017, 19:11

Chocobo писал(а):Источник цитаты И об этом тоже указал, что прежний вариант пока доступен. Тем не менее о нем пора забывать, аки service

Никакой это не «прежний вариант», не надо вводить читатей в заблуждение. Это базовый инструментарий.
Утилитка apt — всего лишь интерфейсная надстройка, синтаксический сахар, не более того. И к тому же умеет далеко не все.

Аватара пользователя
Chocobo
Сообщения: 4581
Зарегистрирован: 27 авг 2016, 19:57
Решено: 108
Откуда: НН
Благодарил (а): 374 раза
Поблагодарили: 1227 раз

APT

Сообщение Chocobo » 02 сен 2017, 19:16

027, Что из написанного мной вводит кого-то в заблуждение?
027 писал(а):Источник цитаты умеет далеко не все.

Умеет чуть больше чем " apt-get, а еще и apt-cache и apt-mark"
Изображение

027
Сообщения: 26
Зарегистрирован: 31 авг 2017, 06:05
Благодарил (а): 7 раз
Поблагодарили: 2 раза

APT

Сообщение 027 » 02 сен 2017, 19:17

В убунте своя версия:

Код: Выделить всё

$ which apt
/usr/bin/apt

и это бинарник (ELF). Судо вызывать не умеет, во всяком случае, в убунте 16.04, более поздних под рукой нет.

027
Сообщения: 26
Зарегистрирован: 31 авг 2017, 06:05
Благодарил (а): 7 раз
Поблагодарили: 2 раза

APT

Сообщение 027 » 02 сен 2017, 19:19

Chocobo писал(а):Источник цитаты Что из написанного мной вводит кого-то в заблуждение?

Третий раз указываю:
Chocobo писал(а):Источник цитаты тилита apt пришла на смену прежнему варианту, носившему название apt-get

Это принципиально неверное утверждение. Вы можете упорствовать и дальше, а мне надоело.

Аватара пользователя
symon2014
Сообщения: 1514
Зарегистрирован: 29 авг 2016, 02:17
Решено: 18
Откуда: Феодосия
Благодарил (а): 46 раз
Поблагодарили: 399 раз

APT

Сообщение symon2014 » 02 сен 2017, 19:23

027, Не ленись, бинарник арт никуда не делся, просто в минте для него есть надстройка на питоне.
Снимок экрана в 2017-09-02 22-21-22.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
:sry:
Debian (8.8) , LMDE2 , LM 18.2 Mate .

Аватара пользователя
Chocobo
Сообщения: 4581
Зарегистрирован: 27 авг 2016, 19:57
Решено: 108
Откуда: НН
Благодарил (а): 374 раза
Поблагодарили: 1227 раз

APT

Сообщение Chocobo » 02 сен 2017, 19:25

027 писал(а):Источник цитаты Судо вызывать не умеет, во всяком случае, в убунте 16.04

А в минтах умеет :blum:
027 писал(а):Источник цитаты Это принципиально неверное утверждение.

Это факт, всюду нет смысла использовать apt-get c выходом APT 1.0 и включением его в дистрибутивы.
Можете продолжать вспоминать легаси

И да, так и не было ответа, что же он не умеет :acute:
Изображение


Вернуться в «Песочница»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей