Использование apt

Конспект в доработке

    dpkg

    Самая простая операция — установка .deb пакета, которую можно выполнить с помощью опции i
    Перед установкой пакета dpkg система проверяет, есть ли в ней предыдущая версия. Если есть, пакет будет обновлен до новой версии. Если нет, будет установлена новая копия.
    dpkg проверит, установлены ли эти зависимости в вашей системе, и не сможет установить пакет, если они отсутствуют. В этом случае dpkg покажет, каких пакетов не хватает
    Пользователь должен сам найти .deb пакеты с соответствующими зависимостями и установить их.
    При удалении также выполняется проверка зависимостей, и пакет нельзя удалить, пока не будут удалены все остальные пакеты, от которых он зависит
    В dpkg -r можно передать несколько названий пакетов, и все они будут удалены одновременно.
    При удалении пакета в системе остаются соответствующие файлы конфигурации. Если вы хотите удалить все, что связано с пакетом, используйте опцию -P (очистить) вместо -r.


    Вы можете принудительно dpkg установить или удалить пакет, даже если не соблюдены зависимости, добавив параметр --force, как в dpkg -i --force PACKAGENAME. Однако в этом случае установленный пакет или даже вся ваша система, скорее всего, будут работать некорректно. Не используйте --force, если не уверены в своих действиях.

    Чтобы получить информацию о пакете .deb, такую как его версия, архитектура, разработчик, зависимости и многое другое, используйте команду dpkg с параметром -I, за которым следует имя файла пакета, который вы хотите проверить

    Чтобы получить список всех пакетов, установленных в вашей системе, используйте опцию --get-selections, например dpkg --get-selections

    Вы также можете получить список всех файлов, установленных конкретным пакетом, передав параметр -L PACKAGENAME в dpkg

    Иногда может возникнуть необходимость узнать, какому пакету принадлежит определенный файл в вашей системе. Это можно сделать с помощью утилиты dpkg-query, указав параметр -S и путь к нужному файлу

    После установки пакета выполняется этап настройки под названием post-install, в ходе которого запускается скрипт, настраивающий все необходимое для работы программного обеспечения, например разрешения, расположение файлов конфигурации и т. д. Кроме того, пользователю могут быть заданы вопросы, чтобы он мог указать свои предпочтения в отношении работы программного обеспечения.
    Иногда из-за поврежденного или неправильно сформированного файла конфигурации может потребоваться восстановить исходные настройки пакета. Или вы можете захотеть изменить ответы на первоначальные вопросы о конфигурации. Для этого запустите утилиту dpkg-reconfigure и укажите название пакета.
    Эта программа создаст резервную копию старых файлов конфигурации, распакует новые в нужные каталоги и запустит скрипт post-install, предоставленный пакетом, как если бы пакет устанавливался впервые.

    #Установка пакета dpkg -i PACKAGENAME #Удаление пакета dpkg -r p7zip #Удаление пакета и все что связано с пакетом dpkg -P p7zip #Информация о пакете dpkg -I google-chrome-stable_current_amd64.deb #получить список всех пакетов, установленных в вашей системе dpkg --get-selections #получить список всех файлов, установленных конкретным пакетом dpkg -L unrar #узнать, какому пакету принадлежит определенный файл dpkg-query -S /usr/lib/git-core/git-unpack-file #Реконфигурация пакета sudo dpkg-reconfigure tzdata
    apt

    APT предоставляет такие функции, как расширенный поиск и автоматическое разрешение зависимостей.
    APT не является «заменой» для dpkg. Можно сказать, что это «интерфейс», упрощающий работу и восполняющий пробелы в функционале dpkg, например в разрешении зависимостей
    APT работает в связке с репозиториями программного обеспечения, в которых содержатся пакеты, доступные для установки. Такие репозитории могут находиться на локальном или удаленном сервере или (что встречается реже) даже на компакт-диске.
    Дистрибутивы Linux, такие как Debian и Ubuntu, имеют собственные репозитории, а разработчики или группы пользователей могут создавать собственные репозитории для размещения программного обеспечения, недоступного в основных репозиториях дистрибутива.
    apt-get - используется для загрузки, установки, обновления или удаления пакетов из системы. apt-cache - используется для выполнения операций, таких как поиск, в индексе пакета. apt-file - Используется для поиска файлов внутри пакетов.


    Существует также более «дружелюбная» утилита под названием просто apt, объединяющая в себе наиболее часто используемые функции apt-get и apt-cache. Многие команды для apt совпадают с командами для apt-get, поэтому во многих случаях их можно использовать как взаимозаменяемые

    Перед установкой или обновлением программного обеспечения с помощью APT рекомендуется сначала обновить индекс пакетов, чтобы получить информацию о новых и обновленных пакетах. Это делается с помощью команды apt-get, за которой следует параметр update:
    apt-get update

    Имейте в виду, что при установке или удалении пакетов APT автоматически разрешает зависимости. Это означает, что все дополнительные пакеты, необходимые для устанавливаемого пакета также будут установлены, а пакеты, зависящие от удаляемого пакета также будут удалены. APT всегда показывает, что будет установлено или удалено

    При удалении пакета соответствующие файлы конфигурации остаются в системе. Чтобы удалить пакет и все файлы конфигурации, используйте параметр purge вместо remove или параметр remove с опцией --purge

    В системе могут возникать «нарушенные зависимости». Это означает, что один или несколько установленных пакетов зависят от других пакетов, которые не были установлены или больше не существуют. Это может произойти из-за ошибки APT или из-за того, что пакет был установлен вручную.
    Чтобы решить эту проблему, используйте команду apt-get install -f . Она попытается «исправить» поврежденные пакеты, установив недостающие зависимости, чтобы все пакеты снова были совместимы друг с другом.

    При выполнении команды upgrade Сводка в нижней части выходных данных показывает, сколько пакетов будет обновлено, сколько будет установлено, удалено или сохранено обратно, общий размер загрузки и сколько дополнительного места на диске потребуется для завершения операции.
    Как и в случае с dpkg, apt-get сначала проверит, установлена ли предыдущая версия пакета. Если да, то пакет будет обновлен до последней версии, доступной в репозитории. Если нет, будет установлена новая копия

    #обновление индексов пакетов apt-get update #Установка пакетов apt-get install vim #Удаление пакета apt-get remove vim #Удаление пакета и все что с ним связано (конфиг) apt-get purge p7zip #все установленные пакеты до последних версий apt-get update apt-get upgrade
    Локальный кэш

    При установке или обновлении пакета соответствующий .deb файл загружается в локальный каталог кэша перед установкой пакета.
    По умолчанию этот каталог находится по адресу /var/cache/apt/archives
    Частично загруженные файлы копируются в /var/cache/apt/archives/partial/
    По мере установки и обновления пакетов каталог кэша может сильно разрастись. Чтобы освободить место, можно очистить кэш с помощью команды apt-get clean . При этом будет удалено содержимое каталогов /var/cache/apt/archives и /var/cache/apt/archives/partial/

    Поиск пакетов

    apt-cache можно использовать для выполнения операций с индексом пакетов, таких как поиск определенного пакета или вывод списка пакетов, содержащих определенный файл.
    Чтобы выполнить поиск, используйте apt-cache search и введите шаблон поиска. На выходе вы получите список всех пакетов, в названии, описании или файлах которых есть указанный шаблон.


    Также можно использовать apt search вместо apt-cache search и apt show вместо apt-cache show.

    #Поиск пакета по шаблону apt-cache search p7zip #Полная информация о пакете apt-cache show liblzma5
    Список источников

    APT использует список источников, чтобы знать, откуда брать пакеты.
    Этот список хранится в файле sources.list, расположенном в каталоге /etc/apt

    deb http://us.archive.ubuntu.com/ubuntu/ disco main restricted universe multiverse

    deb - тип архива, Репозиторий может содержать пакеты с готовым к запуску программным обеспечением (бинарные пакеты, тип deb) или с исходным кодом этого программного обеспечения (исходные пакеты, тип deb-src)


    http://us..... - URL-адрес репозитория.

    disco — это кодовое имя Ubuntu, название дистрибутива

    main - компонент представляет собой набор пакетов
    В разных дистрибутивах Linux эти компоненты могут отличаться
    Для ubuntu:
    main - содержит официально поддерживаемые пакеты с открытым исходным кодом
    restricted - содержит официально поддерживаемое программное обеспечение с закрытым исходным кодом, например драйверы для видеокарт.
    universe - содержит программное обеспечение с открытым исходным кодом, поддерживаемое сообществом
    multiverse - содержит программное обеспечение с закрытым исходным кодом или патентами.
    Для debian:
    main - состоит из пакетов, соответствующих Руководству по свободному программному обеспечению Debian (DFSG), работа которых не зависит от программного обеспечения за пределами этой области. Включенные в список пакеты считаются частью дистрибутива Debian.
    contrib - содержит пакеты, соответствующие требованиям DFSG, но зависящие от других пакетов, которых нет в main.
    non-free - содержит пакеты, не соответствующие требованиям DFSG.
    security - содержит обновления для системы безопасности.
    backports - содержит более новые версии пакетов из main. Цикл разработки стабильных версий Debian довольно длительный (около двух лет), и это гарантирует, что пользователи смогут получать самые актуальные пакеты без необходимости вносить изменения в main основной репозиторий.

    В каталог /etc/apt/sources.list.d можно добавить файлы с дополнительными репозиториями, которые будут использоваться APT, без необходимости вносить изменения в основной файл /etc/apt/sources.list

    apt-file

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

    apt-get install apt-file #обновить кэш пакетов, используемых для apt-file apt-file update #просмотреть содержимое пакета apt-file list unrar #можно использовать apt list вместо apt-file list apt list git #выполнить поиск файла во всех пакетах, используя параметр search apt-file search libSDL2.so #альтернативный поиск пакета по названию файла dpkg-query -S 7zr.1.gz #узнать, в каком пакете находится файл /usr/bin/unrar apt-file search /usr/bin/unrar #узнать, в каком пакете находится файл apt-file search zzip-io.h #проигнорировать предупреждение о зависимости и удалить пакет с помощью dpkg #чего делть не стоит без понимания последствий dpkg -r --force git #получить дополнительную информацию о пакете под названием midori apt-cache show midori

    Разница между apt-file search и dpkg-query заключается в том, что apt-file search также выполняет поиск по неустановленным пакетам, в то время как dpkg-query может отображать только файлы, относящиеся к установленному пакету.

    Пакет deb

    Программы упаковываются в пакеты с расширением deb, туда помещается различная информация:
    Набор файлов, верификация содержимого и атрибутов
    Зависимости от наличия других пакетов и их версий
    Скрипты исполняемые при установке и удалениии
    Метаданные пакета - имя, версия, сборка
    Триггеры

    Триггеры

    Триггер - это скрипт
    Позволяет изменять состояние пакета в зависимости от статуса установки другого пакета.

    Информация о пакете

    Посмотреть информацию о пакете:

    apt show name_package
    ABI
    Двоичный интерфейс приложений - набор соглашений для доступа приложений к операционной системе и низкоуровневым сервисам, спроектирован для переносимости исполняемого кода между машинами, имеющими совместимые ABI ABI регламентирует использование регистров процесора, состав и формат системных вызовов одного модуля другим, формат передачи аргументов и возвращаемых значений, организацию стека, типы данных, форматы файлов.
    Если объектный файл был создан компилятором, поддерживающим определенный EABI, тогда компановка возможна любым другим компановщиком поддерживающий этот же EABI.
    В библиотеках linux ABI документирует интерфейсы, которые разработчик определил как стабильные

    Зависимости

    Зависимости - библиотеки, программы, драйвера, другое...

    Обновление кэша

    В официальных репозиториях возможны обновления, например ссылки на какой то пакет, поэтому перед установкой или обновлением пакетов, необходимо синхронизировать локальный кэш с репозиторием, для этого в debian подобных, есть следующая команда:

    apt update
    Полезные команды в менеджере apt
    apt help

    Поиск установленного пакета по названию(установлен, не установлен)

    apt list yandex*

    Различная информация о пакете, независимо от того, установлен он в систему или нет

    apt show vim

    Удаляет пакет вместе с конфигурационными файлами пользователя

    apt purge postgresql*

    Обновляет локальный репозиторий и удаляет неактуальные версии пакетов

    apt dist-upgrade apt full-upgrade
    Структура пакетов deb

    https://hackware.ru/?p=8185

    Сборка пакетов deb

    https://losst.ru/sozdanie-deb-paketov
    https://www.dmosk.ru/instruktions.php?object=build-deb

    apt-file

    Поиск файлов в пакетах, как в установленных так и в не установленных.

    apt install apt-file apt-file update apt-file search test.h apt-file search test.h
    Зависимости пакета
    apt depends vim apt-cache depends
    Зависимость пакетов от данного пакета

    Следует проверить перед удалением, если не уверен

    apt-cache showpkg nmap
    Cписок изменений пакета

    Cписок изменений пакета, сделанных в различных версиях программы.

    apt changelog vim
    Скачать пакет без установки
    apt download nmap
    Проверить cache приложений и сломанные зависимости
    apt-get check nmap
    Установить локальный .deb пакет
    #Установка без проверки зависимости sudo dpkg -i nmap_7.60-1ubuntu5_amd64.deb #Опция f пытается привести в норму нарушенные зависимости. Опция f используется с командами install/remove, может пропустить какие то пакеты, чтобы найти решение. apt install -f #Установка пакета и его зависимостей из указанной директории ./ apt install ./nmap_7.60-1ubuntu5_amd64.deb
    Удаление ненужных зависимостей
    sudo apt autoremove
    Отчистить кэш пакетов

    В директории /var/cache/apt/archives хранится кэш пакетов на случай если необходимо откатиться на старую версию пакета.

    apt clean
    Ошибка: 404 Not Found [IP: 172.89.202.113 443]

    Возникает при использовании команды: apt install, apt upgrade, apt full-upgrade, apt dist-upgrade
    При выполнении этих команд информация о пакетах берется из локального кэша. Кэш автоматически не обновляется. Данные на удаленном сервере с пакетами могут изменяться, удаляться, при этом кэш об этом не знает, поэтому при запуске команд ошибка 404 говорит о том, что файл на сервере 172.89.202.113 443 не найден.
    Данную проблему можно решить обновлением списка пакетов:
    apt update

    Далее можно обновить сами пакеты:

    apt full-upgrade
    Ошибка: Соединение разорвано [IP: 92.99.230.13 80]

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

    E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.

    Данная ошибка может возникать по разным причинам:
    Старый список пакетов, обновить список:

    apt update --fix-missing

    Установка с помощью dpkg и как следствие отсутствие нужных зависимостей, в таком случае можно попробовать доустановить нужные зависимости:

    apt install -f

    Возможно в системе есть старые ненужные пакеты, которые мешают установке
    Для удаления таких пакетов:

    apt clean

    Следующая команда покажет битые пакеты, которые не установлены

    apt autoremove

    То же самое можно проделать с помощью команды dpkg

    dpkg --configure -a

    Чтобы удалить такие пакеты:

    dpkg --remove -force --force-remove-reinstreq имя_пакета

    Ошибка битых пакетов чаще всего возникает, когда при установке программы не хватает зависимостей, в таком случае их можно установить вручную, более подробно рассказано в следующей статье: здесь


    Источники
    Последнее изменение: 07.09.2026 21:06


    Связанные темы
    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ