Управление пакетами

Материал из ALT Linux Wiki

Команды APT

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

С помощью специальных команд Вы можете:

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

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

Для ее работы нужны права суперпользователя. Хотя, для операции поиска, достаточно обычных прав пользователя.

Команды apt-get

Программа использует следующий синтаксис:

apt-get [параметры] команда
apt-get [параметры] install|remove пакет1 [пакет2 ...]
apt-get [параметры] source пакет1 [пакет2 ...]

Более подробно мы рассмотрим ее далее.

Обновление информации о репозиториях

Первым делом нужно получить индексы, содержащие актуальные наборы пакетов и ссылки на них.

Примечание: Данную команду необходимо выполнять каждый раз:
  • при поиске новой версии пакета
  • установке пакетов
  • обновлении установленных пакетов
  • использовании apt-cache


Делается это следующей командой:

# apt-get update

Пример запуска:

# apt-get update
Получено: 1 http://ftp.altlinux.org p10/branch/x86_64 release [4223B]
Получено: 2 http://ftp.altlinux.org p10/branch/x86_64-i586 release [1665B]
Получено: 3 http://ftp.altlinux.org p10/branch/noarch release [2844B]
Получено 8732B за 0s (259kB/s).
Найдено http://ftp.altlinux.org p10/branch/x86_64/classic pkglist
Найдено http://ftp.altlinux.org p10/branch/x86_64/classic release
Найдено http://ftp.altlinux.org p10/branch/x86_64/gostcrypto pkglist
Найдено http://ftp.altlinux.org p10/branch/x86_64/gostcrypto release
Найдено http://ftp.altlinux.org p10/branch/x86_64-i586/classic pkglist
Найдено http://ftp.altlinux.org p10/branch/x86_64-i586/classic release
Найдено http://ftp.altlinux.org p10/branch/noarch/classic pkglist
Найдено http://ftp.altlinux.org p10/branch/noarch/classic release
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено

После выполнения команды, apt обновит свой кеш новой информацией.

Обновление системы

Внимание! В ALT Linux не принято выполнять частичное обновление системы через apt-get upgrade! Этой командой вы практически гарантировано свою систему поломаете! Используйте только apt-get dist-upgrade вместо неё.
Внимание! Не торопитесь нажимать ENTER или Y в ответ! Внимательно изучите, что APT предлагает удалить, заменить, обновить и установить нового. Вы правда согласны с его предложением!? Никогда не добавляйте «-y», чтобы контролировать намерения APT'а.


Чтобы обновить систему до актуального состояния (кроме ядра), используйте следующую команду:

# apt-get dist-upgrade

Пример запуска:

Примечание: Обратите внимание, когда обновляется несколько пакетов, действие нужно подтвердить нажатием клавиши Y
# apt-get dist-upgrade
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Подсчет обновлений... Завершено
Следующие пакеты будут ОБНОВЛЕНЫ:
  firefox libnss
2 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 59,2MB архивов.
После распаковки потребуется дополнительно 2888kB дискового пространства.
Продолжить? [Y/n] y
Получено: 1 http://ftp.altlinux.org p10/branch/x86_64/classic libnss 3.89.0-alt1:p10+319679.40.8.1@1684328466 [1290kB]
Получено: 2 http://ftp.altlinux.org p10/branch/x86_64/classic firefox 112.0.2-alt0.p10.1:p10+319679.140.8.2@1684342590 [57,9MB]
Получено 59,2MB за 2s (20,6MB/s).  
Совершаем изменения...
Подготовка...                                                   #################################################################################################### [100%]
Обновление / установка...
1: libnss-3.89.0-alt1                                           #################################################################################################### [ 25%]
2: firefox-112.0.2-alt0.p10.1                                   #################################################################################################### [ 50%]
Очистка / удаление... 
3: firefox-110.0.1-alt0.p10.1                                   #################################################################################################### [ 75%]
4: libnss-3.88.1-alt1                                           #################################################################################################### [100%]
Завершено.

Установка пакетов

Примечание: Не забывайте перед установкой обновить список пакетов командой apt-get update

Установка пакетов производится следующей командой:

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

Например:

 # apt-get install chromium

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

Так же Вы можете указать сразу несколько или большое количество пакетов через пробел.

 # apt-get install firefox gimp vlc
Примечание: Обратите внимание, когда устанавливается несколько пакетов, действие нужно подтвердить нажатием клавиши Y

Пример запуска:

# apt-get install stellarium
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие НОВЫЕ пакеты будут установлены:
  stellarium
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 212MB архивов.
После распаковки потребуется дополнительно 334MB дискового пространства.
Получено: 1 http://ftp.altlinux.org p10/branch/x86_64/classic stellarium 0.21.0-alt1.1:sisyphus+279564.100.1.3@1626602684 [212MB]
Получено 212MB за 10s (20,9MB/s).                                                                                                                                         
Совершаем изменения...
Подготовка...                                                   #################################################################################################### [100%]
Обновление / установка...
1: stellarium-0.21.0-alt1.1                                     #################################################################################################### [100%]
Завершено.

Дополнительные варианты

  • Установка RPM-пакета из файловой системы:
# apt-get install /home/user/Загрузки/whois-5.5.0-alt1.x86_64.rpm
  • Установка пакета по его URL:
# apt-get install http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/files/x86_64/RPMS/whois-5.5.0-alt1.x86_64.rpm
  • Установка по имени исполняемого файла или библиотеки:
# apt-get install /usr/bin/whois

Некоторые ситуации

Пакет установлен, в репозитории новая версия, запускается повторная установка
  • Если пакет уже установлен и в подключённом репозитории нет обновлений для данного пакета, система сообщит об уже установленном пакете последней версии.
# apt-get install supertuxkart
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Последняя версия supertuxkart уже установлена.
0 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
  • Если в репозитории присутствует более новая версия или новое обновление - программа начнёт процесс установки.
    • Менеджер apt, при установки пакета проверяет все зависимости и если необходимо обновить пакеты или заменить - предложит провести необходимые действия
# apt-get install alterator
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
  alterator-l10n rpm-macros-alterator
Следующие пакеты будут ОБНОВЛЕНЫ:
  alterator alterator-l10n rpm-macros-alterator
3 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 178 не будет обновлено.
Необходимо получить 630kB архивов.
После распаковки потребуется дополнительно 4686B дискового пространства.
Продолжить? [Y/n]

Починка сломанной системы

Если у Вас по некоторым причинам (зависание, отключение электричества и пр.) была нарушена работа APT и система говорит что нужно выполнить "починку", воспользуйтесь следующей командой:

# apt-get install -f

Переустановка пакетов

Чтобы принудительно переустановить указанные пакеты, выполните следующую команду:

# apt-get install --reinstall имена пакетов

Пример использования:

# apt-get install --reinstall supertuxkart
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
0 будет обновлено, 0 новых установлено, 1 пакетов будет переустановлено, 0 пакетов будет удалено и 2 не будет обновлено.
Необходимо получить 25,2MB архивов.
После распаковки потребуется дополнительно 0B дискового пространства.
Продолжить? [Y/n] y
Получено: 1 http://ftp.altlinux.org p10/branch/x86_64/classic supertuxkart 1.4-alt1:p10+310551.200.2.1@1669897162 [25,2MB]
Получено 25,2MB за 1s (20,7MB/s).       
Совершаем изменения...
Подготовка...                                                   #################################################################################################### [100%]
Обновление / установка...
1: supertuxkart-1.4-alt1                                        #################################################################################################### [100%]
Завершено.

Скачивание пакетов в кэш без установки

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

# apt-get install -d пакеты

Пример использования:

# apt-get install -d boswars
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
  liblua5.1 liblua5.1-preinstall libtolua++-lua5.1
Следующие НОВЫЕ пакеты будут установлены:
  boswars liblua5.1 liblua5.1-preinstall libtolua++-lua5.1
0 будет обновлено, 4 новых установлено, 0 пакетов будет удалено и 2 не будет обновлено.
Необходимо получить 74,8MB архивов.
После распаковки потребуется дополнительно 92,1MB дискового пространства.
Продолжить? [Y/n] y
Получено: 1 http://ftp.altlinux.org p10/branch/x86_64/classic liblua5.1-preinstall 5.1.5-alt17:sisyphus+278018.100.1.2@1625976910 [10,8kB]
Получено: 2 http://ftp.altlinux.org p10/branch/x86_64/classic liblua5.1 5.1.5-alt17:sisyphus+278018.100.1.2@1625976910 [93,9kB]
Получено: 3 http://ftp.altlinux.org p10/branch/x86_64/classic libtolua++-lua5.1 1.0.93-alt5:sisyphus+249325.100.1.1@1585937317 [15,8kB]
Получено: 4 http://ftp.altlinux.org p10/branch/x86_64/classic boswars 2.7-alt1_24.svn160110:sisyphus+264006.100.1.2@1609002965 [74,7MB]
Получено 74,8MB за 3s (18,9MB/s).  
Скачивание пакетов завершено в режиме 'только скачать'.

Удаление пакетов

Примечание

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

Чтобы что-то удалить, необходимо знать, что можно удалить. Например пакеты программ, которыми Вы перестали пользоваться или программ из дистрибутива, которыми Вы не пользовались вообще.

При удалении пакетов имеется простое правило, которому желательно следовать:

  • Не все пакеты, которыми вы не пользуетесь, являются ненужными.

Правило говорит о том, что программа, которой вы пользуетесь, может явно использовать пакет, который вы хотите удалить. Обычно зависимости выставлены корректно, и система apt всегда предупредит, какие пакеты придётся удалить дополнительно при удалении указанного. Не стоит пытаться удалить общесистемные пакеты, вы можете необратимо испортить нормальное функционирование операционной системы. В таких случаях apt настоятельно спросит, действительно ли пользователь уверен в своих действиях.

Например:

# apt-get remove coreutils
<большой список пакетов>
...
WARNING: The following essential packages will be removed
This should NOT be done unless you know exactly what you are doing!
...
You are about to do something potentially harmful
To continue type in the phrase 'Yes, do as I say!'

Команды

Удаление пакетов происходит аналогично установке:

# apt-get remove имя_пакета
# apt-get remove 0ad

И так же Вы можете указать несколько или большое количество пакетов через пробел.

# apt-get remove 0ad supertuxkart boswars

Пример запуска:

Примечание: Обратите внимание, когда удаляется несколько пакетов, действие нужно подтвердить нажатием клавиши Y
# apt-get remove supertuxkart boswars
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
  boswars supertuxkart
0 будет обновлено, 0 новых установлено, 2 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B архивов.
После распаковки будет освобождено 160MB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения...
Подготовка...                                                   #################################################################################################### [100%]
Очистка / удаление... 
1: supertuxkart-1.4-alt1                                        #################################################################################################### [ 50%]
2: boswars-2.7-alt1_24.svn160110                                #################################################################################################### [100%]
Завершено.
Примечание: Если Вы не помните полное имя пакета, можете воспользоваться командой RPM
# rpm -qa | grep часть_названия

Пример:

# rpm -qa | grep tux
supertuxkart-data-1.4-alt1.noarch
tuxcmd-0.6.70-alt2.x86_64
supertux2-0.6.3-alt2.x86_64
supertuxkart-1.4-alt1.x86_64
supertux2-data-0.6.3-alt2.noarch

Удаление неиспользуемых пакетов

Внимание! Данную команду нужно использовать с осторожностью, т.к. она может удалить нужные пакеты

Чтобы удалить лишние пакеты, которые не используются в системе выполните следующую команду:

# apt-get autoremove
Примечание: Обратите внимание, когда удаляется несколько пакетов, действие нужно подтвердить нажатием клавиши Y
# apt-get autoremove
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Calculating Autoremove... Завершено
Следующие пакеты будут УДАЛЕНЫ:
  ImageMagick-tools advancecomp libjpeg-utils liblua5.1 liblua5.1-preinstall libmcpp libtolua++-lua5.1 optipng supertuxkart-data
0 будет обновлено, 0 новых установлено, 9 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B архивов.
После распаковки будет освобождено 729MB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения...
Подготовка...                                                   #################################################################################################### [100%]
Очистка / удаление... 
1: libtolua++-lua5.1-1.0.93-alt5                                #################################################################################################### [ 11%]
2: liblua5.1-5.1.5-alt17                                        #################################################################################################### [ 22%]
3: liblua5.1-preinstall-5.1.5-alt17                             #################################################################################################### [ 33%]
4: supertuxkart-data-1.4-alt1                                   #################################################################################################### [ 44%]
5: optipng-0.7.7-alt1                                           #################################################################################################### [ 56%]
6: libmcpp-2.7.2-alt3                                           #################################################################################################### [ 67%]
7: libjpeg-utils-2:2.0.6-alt3                                   #################################################################################################### [ 78%]
8: advancecomp-2.1-alt1_16                                      #################################################################################################### [ 89%]
9: ImageMagick-tools-6.9.12.64-alt1                             #################################################################################################### [100%]
Завершено.

Удаление ранее скачанных пакетов

Все пакеты, которые Вы устанавливаете или обновляете, скачиваются в папку кэша и хранятся на диске в папке /var/cache/apt/archives. После долгого времени использования системы они могут занимать много места. Так как объём свободного пространства на жёстком диске конечен, может возникнуть ситуация, когда apt не сможет сохранить полученные по сети пакеты, и установка будет прервана, о чём система apt известит пользователя. Чтобы избежать такой ситуации, требуется очистка диска от старых установленных пакетов.

Чтобы очистить кэш скачанных пакетов воспользуйтесь командой:

# apt-get clean 

Команда не очень информативна:

# apt-get clean

Если после выполнения данной операции, система apt, всё равно прерывает установку по причине нехватки места на диске - значит, диск скорее всего занят пользовательскими файлами. Попробуйте удалить (перенести) ненужные файлы или удалить ненужные вам программы и приложения.

Удаление пакета с конфигурацией

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

# apt-get remove --purge имя_пакета

Пример выполения:

# apt-get remove --purge wine
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
  i586-wine.32bit* wine*
0 будет обновлено, 0 новых установлено, 2 пакетов будет удалено и 2 не будет обновлено.
Необходимо получить 0B архивов.
После распаковки будет освобождено 900MB дискового пространства.
Продолжить? [Y/n] y
Совершаем изменения...
Подготовка...                                                   #################################################################################################### [100%]
Очистка / удаление... 
1: i586-wine-1:7.22.1-alt1                                      #################################################################################################### [ 50%]
2: wine-1:7.22.1-alt1                                           #################################################################################################### [100%]
Завершено.

Проверка зависимостей

Чтобы удостовериться в отсутствии неудовлетворённых зависимостей введите команду:

# apt-get check
# apt-get check
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено

Удаление дубликатов

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

# apt-get dedup

Параметры

В конце команды Вы можете указать следующие параметры:

-qq Не показывать ничего кроме сообщений об ошибках
-d Получить пакеты и выйти БЕЗ их установки или распаковки. Для команд "apt-get install" и "apt-get dist-upgrade"
-s Симуляция установки
-y Автоматически отвечать "да" на все вопросы
-f Исправление неудовлетворенных зависимостей. Обычно используется с командой "apt-get install"
-m Начать установку пакетов, если их часть была недоступна и не скачалась.  Для команд "apt-get install" и "apt-get dist-upgrade".
-u Показать список обновляемых пакетов 
-D При удалении пакета удалить все его зависимости. Для команды "apt-get remove"
-V Показывать номера версий пакетов

Отладка

Чтобы разобраться в причинах конфликтов и отказе APT'а выполнять ваши команды, чтобы отправить баг в багзиллу или в список рассылки, используйте ключ -oDebug::pkgProblemResolver=1, например, так:

# apt-get install -oDebug::pkgProblemResolver=1 PACKAGES
# apt-get dist-upgrade -oDebug::pkgProblemResolver=1

Команды apt-repo

apt-repo — утилита для управления списком репозиториев APT. Она существует с 2011 года и включена в дистрибутивы начиная с P7.

Если утилита оказалась у Вас не установлена, установите её следующей командой:

 # apt-get install apt-repo

Вывод текущих репозиториев

Чтобы вывести список репозиториев, подключенных в системе, достаточно просто ввести команду:

# apt-repo
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux/ p10/branch/x86_64 classic gostcrypto
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux/ p10/branch/x86_64-i586 classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux/ p10/branch/noarch classic

Если указать параметр -a, будут показаны все доступные репозитории (неактивные будут закомментированы ‘#’

Полный вывод:
# apt-repo -a
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64 classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/noarch classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64-i586 classic
# rpm-src [p10] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/ p10/branch/x86_64 classic gostcrypto
# rpm-src [p10] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/ p10/branch/x86_64-i586 classic
# rpm-src [p10] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/ p10/branch/noarch classic
#rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux/ p10/branch/x86_64 classic gostcrypto
#rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux/ p10/branch/x86_64-i586 classic
#rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux/ p10/branch/noarch classic
# rpm-src [p10] rsync://ftp.altlinux.org/ALTLinux/ p10/branch/x86_64 classic gostcrypto
# rpm-src [p10] rsync://ftp.altlinux.org/ALTLinux/ p10/branch/x86_64-i586 classic
# rpm-src [p10] rsync://ftp.altlinux.org/ALTLinux/ p10/branch/noarch classic
# rpm [p10] ftp://ftp.heanet.ie/mirrors/ftp.altlinux.org/ p10/branch/x86_64 classic gostcrypto
# rpm [p10] ftp://ftp.heanet.ie/mirrors/ftp.altlinux.org/ p10/branch/x86_64-i586 classic
# rpm-src [p10] ftp://ftp.heanet.ie/mirrors/ftp.altlinux.org/ p10/branch/noarch classic
# rpm-src [p10] http://ftp.heanet.ie/mirrors/ftp.altlinux.org/ p10/branch/x86_64 classic gostcrypto
# rpm-src [p10] http://ftp.heanet.ie/mirrors/ftp.altlinux.org/ p10/branch/x86_64-i586 classic
# rpm [p10] http://ftp.heanet.ie/mirrors/ftp.altlinux.org/ p10/branch/noarch classic
# rpm [p10] rsync://ftp.heanet.ie/mirrors/ftp.altlinux.org/ p10/branch/x86_64 classic gostcrypto
# rpm [p10] rsync://ftp.heanet.ie/mirrors/ftp.altlinux.org/ p10/branch/x86_64-i586 classic
# rpm [p10] rsync://ftp.heanet.ie/mirrors/ftp.altlinux.org/ p10/branch/noarch classic
# rpm [p10] ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/ p10/branch/x86_64 classic gostcrypto
# rpm [p10] ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/ p10/branch/x86_64-i586 classic
# rpm [p10] ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/ p10/branch/noarch classic
# rpm [p10] http://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/ p10/branch/x86_64 classic gostcrypto
# rpm [p10] http://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/ p10/branch/x86_64-i586 classic
# rpm [p10] http://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/ p10/branch/noarch classic
# rpm [p10] rsync://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/ p10/branch/x86_64 classic gostcrypto
# rpm [p10] rsync://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/ p10/branch/x86_64-i586 classic
# rpm [p10] rsync://distrib-coffee.ipsl.jussieu.fr/pub/linux/altlinux/ p10/branch/noarch classic
# rpm [p10] ftp://mirror.yandex.ru/altlinux/ p10/branch/x86_64 classic gostcrypto
# rpm [p10] ftp://mirror.yandex.ru/altlinux/ p10/branch/x86_64-i586 classic
# rpm [p10] ftp://mirror.yandex.ru/altlinux/ p10/branch/noarch classic
# rpm [p10] http://mirror.yandex.ru/altlinux/ p10/branch/x86_64 classic gostcrypto
# rpm [p10] http://mirror.yandex.ru/altlinux/ p10/branch/x86_64-i586 classic
# rpm [p10] http://mirror.yandex.ru/altlinux/ p10/branch/noarch classic
# rpm [p10] rsync://mirror.yandex.ru/altlinux/ p10/branch/x86_64 classic gostcrypto
# rpm [p10] rsync://mirror.yandex.ru/altlinux/ p10/branch/x86_64-i586 classic
# rpm [p10] rsync://mirror.yandex.ru/altlinux/ p10/branch/noarch classic

Удаление репозиториев

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

# apt-repo rm all

Проверяем:

# apt-repo

Ничего нет.

При указании ключевого слова all, за которым следует необязательный <тип>, удаляются все активные источники указанного типа:

  • ‘branch’ или ‘branches’ - удаляются все ветки,
  • ‘task’ или ‘tasks’ - удаляются все хранилища задач,
  • ‘cdrom’ или ‘cdroms’ - удаляются все источники типа cdrom.

Чтобы удалить репозитории конкретной платформы, введите следующую команду:

# apt-repo rm источник

Например:

# apt-repo rm p10

Добавить репозитории конкретной платформы

Чтобы добавить репозитории конкретной платформы, выполните следующую команду:

# apt-repo add платформа

Пример:

# apt-repo add p10

Проверяем:

# apt-repo
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64 classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/noarch classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64-i586 classic

Добавить репозиторий задачи (task)

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

# apt-repo add task номер_задачи

Пример:

# apt-repo add task 329850

Проверяем:

# apt-repo
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64 classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/noarch classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64-i586 classic
rpm http://git.altlinux.org repo/329850/x86_64 task

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

Выполните команду:

apt-repo set ветка

Пример:

# apt-repo
rpm [p9] http://ftp.altlinux.org/pub/distributions/ALTLinux p9/branch/x86_64 classic
rpm [p9] http://ftp.altlinux.org/pub/distributions/ALTLinux p9/branch/noarch classic
rpm [p9] http://ftp.altlinux.org/pub/distributions/ALTLinux p9/branch/x86_64-i586 classic
# apt-repo set p10
# apt-repo
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64 classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/noarch classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64-i586 classic

Удалить источники cdrom и tasks

Удалить все источники типа cdrom и все хранилища задач (tasks) выполните следующую команду:

apt-repo clean

Пример выполнения:

# apt-repo 
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64 classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/noarch classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64-i586 classic
rpm http://git.altlinux.org repo/8537/x86_64 task
# apt-repo clean
# apt-repo 
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64 classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/noarch classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64-i586 classic

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

Чтобы запустить команду apt-get update для обновления кэша APT из активных источников можно ввести следующую команду:

# apt-repo update
# apt-repo update
Получено: 1 http://ftp.altlinux.org p10/branch/x86_64 release [4223B]
Получено: 2 http://ftp.altlinux.org p10/branch/noarch release [2844B]
Получено: 3 http://ftp.altlinux.org p10/branch/x86_64-i586 release [1665B]
Получено 8732B за 5s (1716B/s).
Получено: 1 http://ftp.altlinux.org p10/branch/x86_64/classic pkglist [23,3MB]
Получено: 2 http://ftp.altlinux.org p10/branch/x86_64/classic release [137B]                                    
Получено: 3 http://ftp.altlinux.org p10/branch/noarch/classic pkglist [6422kB]                                  
Получено: 4 http://ftp.altlinux.org p10/branch/noarch/classic release [137B]                                    
Получено: 5 http://ftp.altlinux.org p10/branch/x86_64-i586/classic pkglist [17,1MB]                             
Получено: 6 http://ftp.altlinux.org p10/branch/x86_64-i586/classic release [142B]                               
Получено 46,8MB за 19s (2434kB/s).                                                                              
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено

Обновление всех пакетов

Чтобы выполнить обновление всех пакетов, можно так же, вместо apt-get dist-upgrade выполнить следующую команду:

# apt-repo upgrade

Она сразу проверит обновления и предложит их установить.

# apt-repo upgrade
Получено: 1 http://ftp.altlinux.org p10/branch/x86_64 release [4223B]
Получено: 2 http://ftp.altlinux.org p10/branch/noarch release [2844B]
Получено: 3 http://ftp.altlinux.org p10/branch/x86_64-i586 release [1665B]
Получено 8732B за 5s (1725B/s).
Найдено http://ftp.altlinux.org p10/branch/x86_64/classic pkglist
Найдено http://ftp.altlinux.org p10/branch/x86_64/classic release
Найдено http://ftp.altlinux.org p10/branch/noarch/classic pkglist
Найдено http://ftp.altlinux.org p10/branch/noarch/classic release
Найдено http://ftp.altlinux.org p10/branch/x86_64-i586/classic pkglist
Найдено http://ftp.altlinux.org p10/branch/x86_64-i586/classic release
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Подсчет обновлений... Завершено
Следующие пакеты будут ОБНОВЛЕНЫ:
  appstream-data curl libcolorcorrect5 libcrypto1.1 libcurl libheif libjasper libkfontinst5 libkfontinstui5
  libkrdb5 libkworkspace55 libnotificationmanager1 libplasma-geolocation-interface5 libpq5 libssl1.1
  libtaskmanager6 libweather_ion7 openssl plasma5-workspace plasma5-workspace-common plasma5-workspace-qml
  polkit-kde-plasma-workspace sddm-theme-breeze
Следующие НОВЫЕ пакеты будут установлены:
  libgsasl libidn libntlm
23 будет обновлено, 3 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 65,0MB архивов.
После распаковки потребуется дополнительно 968kB дискового пространства.
Продолжить? [Y/n] n

Команды apt-cache

Примечание: Программа работает без прав суперпользователя

apt-cache - инструмент для поиска и извлечения полезной информации из индекса подключенных репозиториев, получаемого командой apt-get update

Поиск по выражению или части названия пакета

$ apt-cache search часть_названия

Пример выполнения:

[petr@comp-alt-petr ~]$ apt-cache search tux
extreme-tuxracer - High speed arctic racing game based on Tux Racer
freedroidrpg - Isometric action game with RPG elements
ghc8.6.4-clock - High-resolution clock functions: monotonic, realtime, cputime.
<...>
i586-tuxcmd-gvfs - GVFS module for Tux Commander file manager
i586-tuxcmd-modules - Modules for Tux Commander file manager
i586-tuxpaint - A drawing program for young children
i586-tuxvsclippy - Tux vs Clippy originated as an xbox game

Вывод подробной информации о пакете(ах)

$ apt-cache show пакет_или_пакеты_через_пробел

Пример выполнения:

$ apt-cache show stellarium
Package: stellarium
Section: Education
Installed Size: 334355418
Maintainer: Arseny Maslennikov <arseny@altlinux.org>
Version: 0.21.0-alt1.1:sisyphus+279564.100.1.3@1626602684
Pre-Depends: rpmlib(SetVersions), rpmlib(PayloadIsXz)
Depends: /lib64/ld-linux-x86-64.so.2, libQt5Core.so.5()(64bit) (>= set: ), libQt5Widgets.so.5(Qt_5)(64bit), libc.so.6(GLIBC_2.11)(64bit), libc.so.6(GLIBC_2.14)(64bit), libc.so.6(GLIBC_2.15)(64bit), libc.so.6(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.3)(64bit), libc.so.6(GLIBC_2.3.4)(64bit), libc.so.6(GLIBC_2.4)(64bit), libc.so.6(GLIBC_2.7)(64bit), libgcc_s.so.1(GCC_3.0)(64bit), libm.so.6(GLIBC_2.2.5)(64bit), libm.so.6(GLIBC_2.27)(64bit), libm.so.6(GLIBC_2.29)(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), libstdc++.so.6(CXXABI_1.3)(64bit), libstdc++.so.6(CXXABI_1.3.8)(64bit), libstdc++.so.6(GLIBCXX_3.4)(64bit), libstdc++.so.6(GLIBCXX_3.4.11)(64bit), libstdc++.so.6(GLIBCXX_3.4.14)(64bit), libstdc++.so.6(GLIBCXX_3.4.15)(64bit), libstdc++.so.6(GLIBCXX_3.4.20)(64bit), libstdc++.so.6(GLIBCXX_3.4.21)(64bit), libstdc++.so.6(GLIBCXX_3.4.22)(64bit), libstdc++.so.6(GLIBCXX_3.4.9)(64bit), libz.so.1()(64bit) (>= set:kgb6dgbWdAhpAO8J790tGE6), rtld(GNU_HASH), rtld(GNU_UNIQUE)
Provides: stellarium (= 0.21.0-alt1.1:sisyphus+279564.100.1.3)
Architecture: x86_64
Size: 211602196
MD5Sum: 94be05fb3050f0d0f41a6846d7439844
Filename: stellarium-0.21.0-alt1.1.x86_64.rpm
Description: Astronomical Sky Simulator
 Stellarium is a free software available for Windows, Linux/Unix and MacOSX.
 It renders 3D photo-realistic skies in real time. With stellarium, you
 really see what you can see with your eyes, binoculars or a small
 telescope.
Changelog:
 * Ср апр 28 2021 Arseny Maslennikov <arseny@altlinux.org> 0.21.0-alt1.1
 - NMU: spec: adapted to new cmake macros.
 * Чт апр 01 2021 Grigory Ustinov <grenka@altlinux.org> 0.21.0-alt1
 - Build new version.
 * Чт янв 14 2021 Grigory Ustinov <grenka@altlinux.org> 0.20.4-alt1
 - Build new version.
 * Пн сен 28 2020 Grigory Ustinov <grenka@altlinux.org> 0.20.3-alt1
 - Build new version.
 * Чт июн 25 2020 Grigory Ustinov <grenka@altlinux.org> 0.20.2-alt1
 - Build new version.
 * Пн апр 27 2020 Grigory Ustinov <grenka@altlinux.org> 0.20.1-alt1
 - Build new version.
 * Пн мар 30 2020 Grigory Ustinov <grenka@altlinux.org> 0.20.0-alt1
 - Build new version.
 * Вт дек 24 2019 Grigory Ustinov <grenka@altlinux.org> 0.19.3-alt1

Проверка системы на наличие неудовлетворённых зависимостей

$ apt-cache unmet

Вывод списка установленных пакетов, непосредственно зависящих от указанного

$ apt-cache showpkg имя_пакета

Пример выполнения:

$ apt-cache showpkg bash
Package: bash
Versions: 
4.4.23-alt1:sisyphus+221902.500.4.1@1550587242(/var/lib/apt/lists/ftp.altlinux.org_pub_distributions_ALTLinux_p10_branch_noarch_base_pkglist.classic)(/var/lib/rpm/Packages)

Reverse Depends: 
  i586-steam.32bit,bash 4.4
  i586-playonlinux.32bit,bash
  wondershaper,bash
  wgetpaste,bash
  python3-module-tpm2-pkcs11,bash
  texlive-collection-basic,bash
  syslog-ng-debun,bash
  <...>
  drawswf,bash
  dracut,bash 4
  clickhouse-test,bash
  ceph-common,bash
  burp,bash
  bash3,bash 3.2.57-alt4
  bash-devel,bash 4.4.23-alt1:sisyphus+221902.500.4.1
  awesome,bash
  atsar_linux,bash
  apachkconfig,bash
  afl,bash
Dependencies: 
4.4.23-alt1:sisyphus+221902.500.4.1@1550587242 - /bin/bash4 (0 (null)) /bin/rbash4 (0 (null)) /usr/bin/bash4bug (0 (null)) sh (5 4.4.23-alt1:sisyphus+221902.500.4.1) 
Provides: 
4.4.23-alt1:sisyphus+221902.500.4.1@1550587242 - bash /bin/bash 
Reverse Provides: 
bash 4.4.23-alt1:sisyphus+221902.500.4.1@1550587242

Вывод графа зависимостей указанного пакета

$ apt-cache depends имя_пакета

Пример выполнения:

$ apt-cache depends supertuxkart
supertuxkart-1.4-alt1:p10+310551.200.2.1@1669897162
  Требует: supertuxkart-data >= 1.4
  Требует: </lib64/ld-linux-x86-64.so.2>
    glibc-core-6:2.32-alt5:p10+307861.300.4.1@1666645909
  Требует: </usr/bin/convert>
    ImageMagick-tools-6.9.12.64-alt1:p10+307930.100.3.1@1665675916
    GraphicsMagick-ImageMagick-compat-1.3.36-alt1.1:sisyphus+279676.100.1.2@1626659058
  Требует: advancecomp
  Требует: coreutils
  Требует: findutils
  Требует: gawk
  Требует: <libSDL2-2.0.so.0()(64bit)>
    libSDL2-2.0.18-alt2:p10+293067.140.5.1@1643829073
  Требует: <libbluetooth.so.3()(64bit)>
    libbluez-5.66-alt1:p10+312153.100.3.1@1672814289
  Требует: <libc.so.6(GLIBC_2.11)(64bit)>
    glibc-core-6:2.32-alt5:p10+307861.300.4.1@1666645909
  Требует: <libc.so.6(GLIBC_2.14)(64bit)>
    glibc-core-6:2.32-alt5:p10+307861.300.4.1@1666645909
  Требует: <libc.so.6(GLIBC_2.15)(64bit)>
    glibc-core-6:2.32-alt5:p10+307861.300.4.1@1666645909
  Требует: <libc.so.6(GLIBC_2.16)(64bit)>
    glibc-core-6:2.32-alt5:p10+307861.300.4.1@1666645909
  Требует: <libc.so.6(GLIBC_2.17)(64bit)>
    glibc-core-6:2.32-alt5:p10+307861.300.4.1@1666645909
   <...>
  Требует: <libstdc++.so.6(GLIBCXX_3.4.19)(64bit)>
    libstdc++6-10.3.1-alt2:sisyphus+277353.100.2.1@1625525890
  Требует: <libstdc++.so.6(GLIBCXX_3.4.20)(64bit)>
    libstdc++6-10.3.1-alt2:sisyphus+277353.100.2.1@1625525890
  Требует: <libstdc++.so.6(GLIBCXX_3.4.21)(64bit)>
    libstdc++6-10.3.1-alt2:sisyphus+277353.100.2.1@1625525890
  Требует: <libstdc++.so.6(GLIBCXX_3.4.22)(64bit)>
    libstdc++6-10.3.1-alt2:sisyphus+277353.100.2.1@1625525890
  Требует: <libstdc++.so.6(GLIBCXX_3.4.26)(64bit)>
    libstdc++6-10.3.1-alt2:sisyphus+277353.100.2.1@1625525890
  Требует: <libstdc++.so.6(GLIBCXX_3.4.9)(64bit)>
    libstdc++6-10.3.1-alt2:sisyphus+277353.100.2.1@1625525890
  Требует: <libvorbisfile.so.3()(64bit)>
    libvorbis-1.3.7-alt1:sisyphus+275738.100.1.1@1624751601
  Требует: <libz.so.1()(64bit)>
    zlib-1.2.13-alt1:p10+318109.100.2.1@1682690580
  Требует: optipng
  Требует: <python3(os)>
    python3-base-3.9.16-alt1:p10+317117.100.3.1@1679922167
  Требует: <python3(re)>
    python3-base-3.9.16-alt1:p10+317117.100.3.1@1679922167
  Требует: <python3(shutil)>
    python3-base-3.9.16-alt1:p10+317117.100.3.1@1679922167
  Требует: <rtld(GNU_HASH)>
    glibc-core-6:2.32-alt5:p10+307861.300.4.1@1666645909
  Требует: <rtld(GNU_UNIQUE)>
    glibc-core-6:2.32-alt5:p10+307861.300.4.1@1666645909
  Требует: sed

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

$ apt-cache whatdepends имя_пакета

Пример выполнения:

[petr@comp-alt-petr ~]$ apt-cache whatdepends 0ad-data
0ad-data-1:0.0.26-alt0_3_alpha:p10+307479.200.5.1@1665496739
  0ad-1:0.0.26-alt0_1_alpha.p10:p10+307479.400.5.1@1665497068
    Требует: 0ad-data >= 0.0.26-alt0_1_rc1

Вывод списка установленных пакетов, отсутствующих в репозитории (возможно устаревших)

$ apt-cache list-extras

Пример выполнения:

$ apt-cache list-extras
kernel-modules-r8125-un-def#9.003.05-alt1.331592.1:p10+307900.1700.2.1@1665419938
kernel-modules-rtl8821ce-un-def#5.5.2-alt4.331592.1:p10+307900.2600.2.1@1665420146
kernel-modules-drm-un-def#1:5.15.72-alt1:p10+307900.100.2.1@1665419124
kernel-modules-rtw89-un-def#0.0-alt1.git.250c6f4.331592.1:p10+307900.3000.2.1@1665420201
kernel-modules-staging-un-def#1:5.15.72-alt1:p10+307900.100.2.1@1665419124
kernel-modules-nvidia-un-def#525.105.17-alt1.393500.1:p10+320306.1000.2.1@1683912114
kernel-modules-rtw89-un-def#0.0-alt4.git.4f3464d.393500.1:p10+320306.1500.1.1@1683831143
anydesk
openvpn-gostcrypto
kernel-modules-rtl8188fu-un-def#1.0-alt1.331592.1:p10+307900.2100.2.1@1665419998
kernel-modules-rtl8723bu-un-def#4.3.6.11-alt1.331592.1:p10+307900.2300.2.1@1665420055
kernel-modules-nvidia-un-def#515.65.01-alt1.331592.1:p10+307900.1500.2.1@1665419859
apt-conf-branch-gostcrypto
kernel-modules-virtualbox-un-def#6.1.44-alt1.393500.1:p10+320306.2100.1.1@1683831292
kernel-modules-rtl8821cu-un-def#5.4.1-alt3.331592.1:p10+307900.2700.2.1@1665420176
kernel-modules-drm-un-def#1:6.1.28-alt1:p10+320306.100.1.1@1683830382
kernel-modules-staging-un-def#1:6.1.28-alt1:p10+320306.100.1.1@1683830382
kernel-modules-rtl8812au-un-def#7502.20210405-alt1.331592.1:p10+307900.2500.2.1@1665420115
kernel-modules-rtl8821ce-un-def#5.5.2-alt4.393500.1:p10+320306.1400.1.1@1683831116
kernel-image-un-def#1:5.15.72-alt1:p10+307900.100.2.1@1665419380
kernel-image-un-def#1:6.1.28-alt1:p10+320306.100.1.1@1683830625
kernel-modules-virtualbox-un-def#6.1.38-alt1.331592.1:p10+307900.3500.2.1@1665420364
kernel-modules-rtl8812au-un-def#1:5.6.4.2-alt1.393500.1:p10+320306.1300.1.1@1683831086

Вывод списка установленных пакетов, от которых не зависят никакие другие пакеты

Возможно, установленных по зависимостям, которые уже неактуальны, однако, прежде чем их удалять, стоит взвесить все ЗА и ПРОТИВ.

$ apt-cache list-nodeps

Пример выполнения:

$ apt-cache list-nodeps
fonts-ttf-google-noto-emoji-color
pam-limits-desktop
accountsservice
libgtkglext
vkd3d-utils
memtest86+
kernel-modules-r8125-un-def#9.003.05-alt1.331592.1:p10+307900.1700.2.1@1665419938
alterator-notes
ocl-nvidia
xorg-conf-synaptics
branding-xalt-kworkstation-bootloader
pm-utils
minidlna
<...>
xkill
udev-rule-generator-net
i2c-tools
fonts-ttf-google-crosextra-carlito
doublecmd-qt
screen
alterator-services
apt-scripts
kde5-printing
i586-xorg-dri-nouveau.32bit

Фильтрация запросов

APT в ALT Linux по умолчанию ищет информацию не только в названиях пакетов, но и в описаниях, вследствие чего выводится более подробная информация. Уточнить запрос можно фильтрацией вывода, например, так:

$ apt-cache search bash | grep -E ^bash

Пример вывода:

$ apt-cache search bash | grep -E ^bash
bash-builtin-lockf - lockf bash builtin
bash-devel - Bash loadable builtins development files
bash3 - The GNU Bourne Again SHell (Bash)
bash3-devel - Bash loadable builtins development files
bash4 - The GNU Bourne Again SHell (Bash)
bash4-devel - Bash loadable builtins development files
bashdb - BASH with Debugger and Improved Debug Support and Error Handling
bash-completion - bash-completion offers programmable completion for bash
bash - The GNU Bourne Again SHell (/bin/bash)
bash3-doc - Documentation for the GNU Bourne Again SHell
bash3-examples - Examples for the GNU Bourne Again SHell
bash4-doc - Documentation for the GNU Bourne Again SHell
bash4-examples - Examples for the GNU Bourne Again SHell
bashrc - bashrc files for the GNU Bourne Again SHell (Bash)
bash-completion-cmake - bash completion for CMake
bash-completion-fzf - Bash completion for fzf
bash-completion-gammu - bash completion for gammu
bash-completion-libsixel - Bash completion for libsixel
bash-completion-mercurial - Bash completion for mercurial
bash-completion-mpv - Bash completion for mpv
bash-completion-nvme - Bash completion for nvme
bash-completion-source-highlight - Bash completion for source-highlight
bash-completion-util-linux - Bash completion for util-linux utils
bash-completion-xss-lock - bash completion for xss-lock

либо так:

Программа будет искать только по названиям пакетов:

$ apt-cache search --names-only ^bash

Пример вывода:

$ apt-cache search --names-only ^bash
bash-builtin-lockf - lockf bash builtin
bash-devel - Bash loadable builtins development files
bash3 - The GNU Bourne Again SHell (Bash)
bash3-devel - Bash loadable builtins development files
bash4 - The GNU Bourne Again SHell (Bash)
bash4-devel - Bash loadable builtins development files
bashdb - BASH with Debugger and Improved Debug Support and Error Handling
lldpd - Link Layer Discovery Protocol Daemon
bash-completion - bash-completion offers programmable completion for bash
bash - The GNU Bourne Again SHell (/bin/bash)
bash3-doc - Documentation for the GNU Bourne Again SHell
bash3-examples - Examples for the GNU Bourne Again SHell
bash4-doc - Documentation for the GNU Bourne Again SHell
bash4-examples - Examples for the GNU Bourne Again SHell
bashrc - bashrc files for the GNU Bourne Again SHell (Bash)
bash-completion-cmake - bash completion for CMake
bash-completion-fzf - Bash completion for fzf
bash-completion-gammu - bash completion for gammu
bash-completion-libsixel - Bash completion for libsixel
bash-completion-mercurial - Bash completion for mercurial
bash-completion-mpv - Bash completion for mpv
bash-completion-nvme - Bash completion for nvme
quilt - Scripts for working with series of patches
bash-completion-source-highlight - Bash completion for source-highlight
bash-completion-util-linux - Bash completion for util-linux utils
bash-completion-xss-lock - bash completion for xss-lock

Команды apf

apf - autonomous package finder - автономный поисковик пакетов - это утилита командной строки для поиска пакета, содержащего заданный файл, или для перечисления содержимого пакета, доступного в репозитории.

Поиск пакетов по шаблону сопоставления файлов

apf search /путь/до/файла

Пример использования:

$ apf search /usr/share/alsa/alsa.conf
libalsa
alsa-plugins
pipewire
alsa-plugins-pulse

Аналог данной команды:

apf find /путь/до/файла
$ apf find /usr/share/alsa/alsa.conf
libalsa
alsa-plugins
pipewire
alsa-plugins-pulse

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

apf list имя
$ apf list ffmpeg
tkffmpeg:       /usr/bin/tkffmpeg
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info/PKG-INFO
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info/SOURCES.txt
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info/dependency_links.txt
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info/not-zip-safe
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info/requires.txt
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info/top_level.txt
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__init__.py
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/__init__.cpython-38.opt-1.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/__init__.cpython-38.opt-2.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/__init__.cpython-38.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/camera.cpython-38.opt
<...>
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/tools.cpython-38.opt-1.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/tools.cpython-38.opt-2.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/tools.cpython-38.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/camera.py
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/core.py
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/sensor.py
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/tools.py
tkffmpeg:       /usr/share/applications/tkffmpeg.desktop
ffmpeg-doc:     /usr/share/doc/ffmpeg-doc-4.4.3
ffmpeg-doc:     /usr/share/doc/ffmpeg-doc-4.4.3/faq.html
ffmpeg-doc:     /usr/share/doc/ffmpeg-doc-4.4.3/fate.html
ffmpeg-doc:     /usr/share/doc/ffmpeg-doc-4.4.3/ffmpeg-all.html
ffmpeg-doc:     /usr/share/doc/ffmpeg-doc-4.4.3/ffmpeg-bitstream-filters.html

Аналог данной команды

$ apf show имя

Пример выполнения:

$ apf show ffmpeg
tkffmpeg:       /usr/bin/tkffmpeg
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info/PKG-INFO
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info/SOURCES.txt
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info/dependency_links.txt
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info/not-zip-safe
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info/requires.txt
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/ha_ffmpeg-2.0-py3.8.egg-info/top_level.txt
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__init__.py
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__
<...>
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/__init__.cpython-38.opt-1.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/__init__.cpython-38.opt-2.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/__init__.cpython-38.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/camera.cpython-38.opt-1.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/camera.cpython-38.opt-2.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/camera.cpython-38.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/core.cpython-38.opt-1.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/core.cpython-38.opt-2.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/core.cpython-38.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/sensor.cpython-38.opt-1.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/sensor.cpython-38.opt-2.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/sensor.cpython-38.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/tools.cpython-38.opt-1.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/tools.cpython-38.opt-2.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/__pycache__/tools.cpython-38.pyc
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/camera.py
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/core.py
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/sensor.py
python3-module-ha-ffmpeg:       /usr/lib/python3/site-packages/haffmpeg/tools.py

Обновление базы

# apf update

Пример выполнения:

# apf update
Fetching /var/cache/apf/index.x86_64 from rsync://rsync.altlinux.ru/ALTLinux/p10/branch/x86_64/base/contents_index
Welcome to ALT Linux Team public rsync archive!

contents_index
    180.104.552 100%   87,63MB/s    0:00:01 (xfr#1, to-chk=0/1)
Fetching /var/cache/apf/index.noarch from rsync://rsync.altlinux.ru/ALTLinux/p10/branch/noarch/base/contents_index
Welcome to ALT Linux Team public rsync archive!

contents_index
    467.629.229 100%  136,55MB/s    0:00:03 (xfr#1, to-chk=0/1)
Fetching /var/cache/apf/index.i586 from rsync://rsync.altlinux.ru/ALTLinux/p10/branch/i586/base/contents_index
Welcome to ALT Linux Team public rsync archive!

contents_index
    140.974.426 100%   87,41MB/s    0:00:01 (xfr#1, to-chk=0/1)

Команды RPM

RPM - система управления пакетами в дистрибутивах Linux.

Установка пакета из файла

Примечание: В команде должен быть указан файл пакета или полный путь к нему

Для установки программы из пакета (например, которой нет в репозитории), воспользуйтесь следующей конструкцией:

# rpm -i package.rpm

где package.rpm - нужный Вам файл.

Пример выполнения команды:

[root@comp-alt-petr]# rpm -i mytetra_1.42.2-alt2.rpm

В конце команды Вы можете указать дополнительные опции:

  • --nodeps не проверять зависимости пакета
  • --replacepkgs или --reinstall переустановить пакет

Подробный вывод

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

  • -v - выводить более детальные сообщения
  • -h - выводить "#" по мере установки пакета (используется с -v)
# rpm -ivh package.rpm

Пример выполнения команды:

# rpm -ivh mytetra_1.42.2-alt2.rpm 
Подготовка...                                                   #################################################################################################### [100%]
Обновление / установка...
1: mytetra-1.42.2-alt2                                          #################################################################################################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers

Принудительная установка старой версии пакета

Следующая команда заменит или установит пакет независимо от наличия и версий пакетов, вплоть до понижения версии.

# rpm -Uvh --oldpackage foo-1.0-i586.rpm

Принудительная установка без удовлетворения зависимостей

Примечание: Не рекомендуется использовать данную команду! Вы можете испортить систему!
# rpm -Uvh --nodeps foo-1.0-i586.rpm

Обновление пакета

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

С принудительной установкой

Пакет будет обновлён указанным. Если он не стоит в системе, то будет установлен.

# rpm -Uvh foo-1.0-i586.rpm

Пример выполнения команды:

# rpm -Uvh usbids-20230519-alt1.noarch.rpm 
Подготовка...                                                   #################################################################################################### [100%]
Обновление / установка...
1: usbids-20230519-alt1                                         #################################################################################################### [ 50%]
Очистка / удаление... 
2: usbids-20230428-alt1                                         #################################################################################################### [100%]
Running /usr/lib/rpm/posttrans-filetriggers

Без принудительной установки

Пакет будет обновлён указанным. Если он не стоит в системе, то он не будет установлен.

# rpm -Fvh boswars-2.7-alt1_24.svn160110.x86_64.rpm

Команда не подробная.

Удаление пакета

Примечание: В команде указывается установленный пакет, который хранится в специальном списке в системе. Файл rpm указывать не нужно.


# rpm -e package

Удаление пакета без учёта зависимых от него пакетов

# rpm -e --nodeps package

Узнать полное имя пакета

Обычно, из Synaptic или apt пакет устанавливается коротким именем. Чтобы узнать его полное имя - архитектуру, версию и пр., введите следующую команду:

# rpm -qa пакет

Пример:

[root@comp-alt-petr ~]# rpm -qa supertuxkart
supertuxkart-1.4-alt1.x86_64

Найти пакет по части имени

Указав специальной командой часть названия пакета, можно найти все пакеты содержащие эту фразу.

# rpm -qa | grep часть_названия

Пример:

[root@comp-alt-petr ~]# rpm -qa | grep tux
supertuxkart-data-1.4-alt1.noarch
tuxcmd-0.6.70-alt2.x86_64
supertux2-0.6.3-alt2.x86_64
supertuxkart-1.4-alt1.x86_64
supertux2-data-0.6.3-alt2.noarch

Узнать пакет по файлу

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

[root@comp-alt-petr ~]# whereis bash
bash: /bin/bash /usr/lib/bash /usr/share/man/man1/bash.1.xz /usr/share/info/bash.info.xz

А потом, указав путь, использовать следующую команду:

[root@comp-alt-petr ~]# rpm -qf /usr/share/man/man1/bash.1.xz
bash-4.4.23-alt1.noarch

Если это исполняемый файл, сначала нужно найти, где он находится с помощью команды which.

[root@comp-alt-petr ~]# which kpat
/usr/lib/kf5/bin/kpat

А потом, указав путь, использовать следующую команду:

[root@comp-alt-petr ~]# rpm -qf /usr/lib/kf5/bin/kpat
kde5-kpat-22.12.3-alt1.x86_64
Примечание: Без полного пути команда работать не будет.


Так же в качестве аргумента для параметра rpm -qf можно сразу указать команду, например:

[root@comp-alt-petr ~]# rpm -qf $(which kpat)
kde5-kpat-22.12.3-alt1.x86_64

Вывести список всех установленных пакетов с номерами версий и релизов

Чтобы вывести список всех установленных пакетов, используйте следующую конструкцию:

 # rpm -qa

Дополнительные параметры

Чтобы вывести список построчно, укажите параметр less:

 # rpm -qa | less

Чтобы вывести список в алфавитном порядке, укажите параметр sort:

 # rpm -qa | sort

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

# rpm -qa | sort | less

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

# rpm -qa --qf '%{NAME}\n' | sort

Проверить, установлен ли пакет

Чтобы проверить, установлен ли пакет, введите следующую команду:

# rpm -q 'Имя пакета'

Пример:

# rpm -q 0ad
0ad-0.0.26-alt0_1_alpha.p10.x86_64
# rpm -q boswars
пакет boswars не установлен

Вывести все пакеты определенной категории

Чтобы вывести все установленные пакеты определенной категории, введите команду (с пробелом в конце!):

# rpm -qg

Нажмите Tab

И после qg введите одну из отобразившихся категорий:

# rpm -qg 
Accessibility                       Development/Python                  Networking/File transfer            System/Configuration/Networking
Archiving/Backup                    Development/Python3                 Networking/Instant messaging        System/Configuration/Other
Archiving/Cd burning                Development/Scheme                  Networking/Mail                     System/Configuration/Packaging
Archiving/Compression               Development/Tcl                     Networking/News                     System/Configuration/Printing
Archiving/Other                     Development/Tools                   Networking/Other                    System/Fonts/True type
Communications                      Documentation                       Networking/Remote access            System/Fonts/Type1
Converted/                          Editors                             Networking/WWW                      System/Fonts/X11 bitmap
Databases                           Education                           Office                              System/Internationalization
Development/C                       Emulators                           Other                               System/Kernel and hardware
Development/C++                     File tools                          Publishing                          System/Legacy libraries
Development/Databases               Games/Arcade                        Sciences/Geosciences                System/Libraries
Development/Debug                   Games/Strategy                      Sciences/Mathematics                System/Servers
Development/Debuggers               Graphical desktop/GNOME             Security/Networking                 System/X11
Development/Java                    Graphical desktop/KDE               Shells                              System/XFree86
Development/KDE and QT              Graphical desktop/Other             Sound                               Terminals
Development/Kernel                  Graphics                            System/Base                         Text tools
Development/Other                   Monitoring                          System/Configuration/Boot and Init  Video
Development/Perl                    Networking/DNS                      System/Configuration/Hardware
# rpm -qg Graphics
kde5-kolourpaint-22.12.3-alt1.x86_64
kde5-kruler-22.12.3-alt1.x86_64
tesseract-langpack-ru-4.1.0-alt1.noarch
iscan-free-2.30.4-alt2.x86_64
kde5-printing-22.12.1-alt1.x86_64
tesseract-5.2.0-alt1.x86_64
kde5-scanning-22.12.1-alt1.x86_64
sane-1.2.1-alt1.x86_64
icon-theme-oxygen-5.104.0-alt1.noarch
icon-theme-breeze-5.104.0-alt1.noarch
xsane-doc-0.999-alt6.2.noarch
sane-airscan-0.99.25-alt1.x86_64
xsane-doc-ru-0.999-alt1.noarch
colord-1.4.6-alt1.x86_64
tesseract-langpack-en-4.1.0-alt1.noarch
libexiv2-0.27.5-alt1.x86_64
sane-doc-1.2.1-alt1.noarch
iscan-data-1.39.1-alt1.noarch
branding-xalt-kworkstation-graphics-10.1.1-alt2.noarch
netpbm-10.85.04-alt1.x86_64
xsane-0.999-alt6.2.x86_64
mypaint-brushes1.0-1.3.1-alt1.noarch
icc-profiles-1.0.1-alt1.noarch
gimp-2.10.30-alt1.x86_64
optipng-0.7.7-alt1.x86_64
libjpeg-utils-2.0.6-alt3.x86_64
ImageMagick-tools-6.9.12.64-alt1.x86_64

Определить имя пакета по rpm-файлу

Если у Вас какой-то rpm-файл с непонятным именем, узнать, что именно он установит, можно следующей командой:

# rpm -qp "путь к файлу"

Например, у нас следующая ситуация. Пакет содержит в себе игру supertuxkart. Кто-то его переименовал в 0ad (или в любое непонятное имя) и предлагает нам его установить как эту игру. Чтобы узнать, какое имя на самом деле было прописано при сборке, выполните следующую команду:

# rpm -qp /home/petr/0ad.rpm 
supertuxkart-1.4-alt1.x86_64

Определить место хранения документации пакета

Часто в пакете поставляется документация. Узнать, где она хранится, можно следующей командой. Указывается не rpm-файл, а установленный пакет.

# rpm -qd mytetra
/usr/share/doc/mytetra-1.42.2/readme.txt

Список файлов установленного пакета

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

# rpm -ql имя_пакета

Пример использования:

# rpm -ql mytetra
/usr/bin/mytetra
/usr/share/applications/mytetra.desktop
/usr/share/doc/mytetra-1.42.2
/usr/share/doc/mytetra-1.42.2/readme.txt
/usr/share/icons/hicolor/48x48/apps/mytetra.png

Если Вы попробуете указать неустановленный rpm-пакет, то получите ошибку:

# rpm -ql /home/petr/libvitastor-blk-0.9.0-alt1.x86_64.rpm
пакет /home/petr/libvitastor-blk-0.9.0-alt1.x86_64.rpm не установлен

Где искать исполняемые файлы этого пакета?

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

# rpm -ql имя_пакета | grep bin/

Пример использования:

# rpm -ql bash | grep bin/
/bin/bash
/bin/bash2
/bin/rbash
/usr/bin/bashbug

Что отвечает за запуск служб в этом пакете?

Чтобы выяснить, какие части пакета отвечают за запуск его служб, используйте конструкцию

# rpm -ql имя_пакета | grep /etc/rc.d/init.d/

если используется SysVinit.

Пример:

# rpm -ql udev | grep /etc/rc.d/init.d/
/etc/rc.d/init.d/udevd

Или

# rpm -ql имя_пакета | grep /lib/systemd/system/

если используется Systemd.

Пример:

# rpm -ql udev | grep /lib/systemd/system/
/lib/systemd/system/initrd-udevadm-cleanup-db.service
/lib/systemd/system/sockets.target.wants/systemd-udevd-control.socket
/lib/systemd/system/sockets.target.wants/systemd-udevd-kernel.socket
/lib/systemd/system/sysinit.target.wants/systemd-udev-trigger.service
/lib/systemd/system/sysinit.target.wants/systemd-udevd.service
/lib/systemd/system/systemd-udev-settle.service
/lib/systemd/system/systemd-udev-trigger.service
/lib/systemd/system/systemd-udev-trigger.service.d
/lib/systemd/system/systemd-udev-trigger.service.d/systemd-udev-trigger-no-reload.conf
/lib/systemd/system/systemd-udevd-control.socket
/lib/systemd/system/systemd-udevd-kernel.socket
/lib/systemd/system/systemd-udevd.service
/lib/systemd/system/udevd.service

Список файлов неустановленного пакета

Чтобы узнать содержимое неустановленного rpm-пакета, используйте команду:

# rpm -qlp имя_пакета.rpm

Пример выполнения команды:

# rpm -qlp xkill_1.0.5-alt1.rpm 
/usr/bin/xkill
/usr/share/applications/xkill.desktop
/usr/share/icons/hicolor/16x16/apps/xkill.xpm
/usr/share/icons/hicolor/32x32/apps/xkill.xpm
/usr/share/icons/hicolor/48x48/apps/xkill.xpm
/usr/share/man/man1/xkill.1.xz

Список конфигурационных файлов пакета

Чтобы вывести все файлы с настройками, входящими в пакет, выполните следующую команду:

# rpm -qc bash
/etc/bashrc
/etc/bashrc.d/alias.sh

Так же, можно использовать конструкцию с командой для списка файлов установленного пакета:

# rpm -ql bash | grep /etc/
/etc/bashrc
/etc/bashrc.d
/etc/bashrc.d/alias.sh

Состояние установленных файлов

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

# rpm -qs mytetra
нормальный    /usr/bin/mytetra
нормальный    /usr/share/applications/mytetra.desktop
нормальный    /usr/share/doc/mytetra-1.42.2
нормальный    /usr/share/doc/mytetra-1.42.2/readme.txt
нормальный    /usr/share/icons/hicolor/48x48/apps/mytetra.png

Просмотр списка последних установленных пакетов

Чтобы узнать какие последние пакеты были установлены, выполните следующую команду:

# rpm -qa -last

Пример выполнения:

# rpm -qa -last
apf-0.3-alt2.noarch                           Пн 22 мая 2023 15:35:23
NetworkManager-openvpn-gtk-common-1.10.3-alt0.p10.1.ge1c5978.x86_64 Пн 22 мая 2023 14:34:13
NetworkManager-openvpn-gtk3-1.10.3-alt0.p10.1.ge1c5978.x86_64 Пн 22 мая 2023 14:34:13
xkill-1.0.5-alt1.x86_64                       Пн 22 мая 2023 14:24:44
mate-applets-1.26.1-alt2.x86_64               Пн 22 мая 2023 11:26:35
libgucharmap-14.0.1-alt1.x86_64               Пн 22 мая 2023 11:26:34
NetworkManager-tui-1.40.18-alt1.p10.1.x86_64  Пн 22 мая 2023 11:22:50
libnewt52-0.52.16-alt1.x86_64                 Пн 22 мая 2023 11:22:50
...

Сокращенный прокручивающийся вариант

Чтобы список прокручивался, укажите параметр less:

# rpm -qa -last | less

Пример выполнения:

# rpm -qa -last | less
LibreOffice-still-integrated-7.3.7.2-alt2.x86_64 Пт 19 мая 2023 13:20:01
LibreOffice-still-common-7.3.7.2-alt2.x86_64  Пт 19 мая 2023 13:20:01
systemd-sysvinit-249.16-alt2.noarch           Пт 19 мая 2023 13:16:52
systemd-oomd-defaults-249.16-alt2.noarch      Пт 19 мая 2023 13:16:52
systemd-analyze-249.16-alt2.x86_64            Пт 19 мая 2023 13:16:52
systemd-249.16-alt2.x86_64                    Пт 19 мая 2023 13:16:52
qemu-guest-agent-8.0.0-alt1.p10.x86_64        Пт 19 мая 2023 13:16:52
python3-module-libvirt-9.3.0-alt1.x86_64      Пт 19 мая 2023 13:16:52
openssl-gost-engine-1.1.0.3.0.255.ge3af41d.p1-alt4.x86_64 Пт 19 мая 2023 13:16:52
i586-libudev1-249.16-alt2.i586                Пт 19 мая 2023 13:16:52
i586-libsystemd-249.16-alt2.i586              Пт 19 мая 2023 13:16:52
i586-libnss-myhostname-249.16-alt2.i586       Пт 19 мая 2023 13:16:52
systemd-utils-filetriggers-249.16-alt2.noarch Пт 19 мая 2023 13:16:51
systemd-tmpfiles-common-249.16-alt2.noarch    Пт 19 мая 2023 13:16:51
lines 1-14

Прервать программу можно клавишами Ctrl+Z.

Показать последние 5 пунктов

# rpm -qa --last | head -n5
Примечание: здесь вместо 5 можете подставить любое свое число


Пример выполнения:

# rpm -qa --last | head -n5
usbids-20230519-alt1.noarch                   Вт 23 мая 2023 14:00:45
mytetra-1.42.2-alt2.x86_64                    Вт 23 мая 2023 12:35:25
pciids-20230519-alt1.noarch                   Вт 23 мая 2023 10:56:58
alterator-auth-0.44.2-alt1.x86_64             Пн 22 мая 2023 17:41:40
tuxcmd-0.6.70-alt2.x86_64                     Пн 22 мая 2023 16:59:33

Проверка целостности установленных пакетов

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

Чтобы проверить целостность программы, используйте следующую команду:

# rpm -Vf /путь/к/программе

Пример выполнения:

# rpm -Vf /bin/mount
.M.......    /bin/mount
.M.......    /bin/umount

Проверка целостности всех установленных пакетов

# rpm -Va

Пример выполнения:

# rpm -Va
......G..    /usr/bin/fusermount3
.M....G..    /var/cache/man
S.5....T.  c /etc/gtk-2.0/gtkrc
........P    /usr/lib/kf5/bin/kwin_wayland
missing     /var/lock/sane
.M....G..    /usr/bin/mtr
S.5....T.  c /etc/skel.be_BY.CP1251/.xprofile
S.5....T.  c /etc/skel.de_DE/.xprofile
...

Зависимости пакетов

От каких пакетов зависит указанный пакет

Чтобы узнать, от каких пакетов зависит указанный пакет используйте конструкцию:

# rpm -q --requires пакет

Пример:

# rpm -q --requires mytetra
/lib64/ld-linux-x86-64.so.2
libQt5Core.so.5()(64bit)
rpmlib(SetVersions)
libQt5Core.so.5(Qt_5)(64bit)
libQt5Core.so.5(Qt_5.15)(64bit)
libQt5Gui.so.5()(64bit)
libQt5Gui.so.5(Qt_5)(64bit)
libQt5Network.so.5()(64bit)
libQt5Network.so.5(Qt_5)(64bit)
libQt5PrintSupport.so.5()(64bit)
libQt5PrintSupport.so.5(Qt_5)(64bit)
libQt5Widgets.so.5()(64bit) 
libQt5Widgets.so.5(Qt_5)(64bit)
libQt5Xml.so.5()(64bit) >= 
libQt5Xml.so.5(Qt_5)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libgcc_s.so.1(GCC_3.0)(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libstdc++.so.6(CXXABI_1.3)(64bit)
libstdc++.so.6(GLIBCXX_3.4)(64bit)
libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
rtld(GNU_HASH)
rpmlib(PayloadIsLzma)

Какие из установленных пакетов зависят от указанного

Чтобы узнать, какие установленные пакеты зависят от указанного, используйте следующую конструкцию:

# rpm -q --whatrequires пакет

Пример выполнения:

# rpm -q --whatrequires bash
bash-completion-2.11-alt1.git.157.g59d2322e.noarch
eepm-3.28.1-alt1.noarch
systemd-249.16-alt2.x86_64
rpm-build-4.0.4-alt170.1.x86_64
basesystem-sisyphus-alt23.noarch
plasma5-desktop-5.27.4-alt3.x86_64
gdb-10.1-alt1.x86_64
make-initrd-2.31.0-alt4.x86_64

Какие зависимости предоставляет указанный пакет

Чтобы узнать, какие зависимости предоставляет указанный пакет, используйте следующую конструкцию:

# rpm -q --whatprovides пакет

Пример выполнения:

# rpm -q --whatprovides bash
bash-4.4.23-alt1.noarch

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

Вывод подробной информации об уже установленном пакете

Чтобы получить информацию об уже установленном пакете, используйте команду:

# rpm -qi bash

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

Пример выполнения:

# rpm -qi bash
Name        : bash
Version     : 4.4.23
Release     : alt1
DistTag     : sisyphus+221902.500.4.1
Architecture: noarch
Install Date: Ср 17 мая 2023 17:44:51
Group       : Shells
Size        : 0
License     : None
Signature   : DSA/SHA1, Вт 19 фев 2019 17:40:44, Key ID 95c584d5ae4ae412
Source RPM  : bash-defaults-4.4.23-alt1.src.rpm
Build Date  : Вт 19 фев 2019 17:40:42
Build Host  : ldv-sisyphus.hasher.altlinux.org
Relocations : (not relocatable)
Packager    : Dmitry V. Levin <ldv@altlinux.org>
Vendor      : ALT Linux Team
Summary     : The GNU Bourne Again SHell (/bin/bash)
Description :
This package provides default setup for the GNU Bourne Again SHell (/bin/bash).

Вывод подробной информации о ещё не установленном пакете

Чтобы получить информацию о неустановленном пакете используйте следующую команду.

Обратите внимание, что в ней указывается файл пакета rpm расположенный на диске.

# rpm -qip /путь/к/пакету/foo-1.0-i586.rpm

Пример выполнения:

# rpm -qip /home/petr/Загрузки/boswars-2.7-alt1_24.svn160110.x86_64.rpm 
Name        : boswars
Version     : 2.7
Release     : alt1_24.svn160110
DistTag     : sisyphus+264006.100.1.2
Architecture: x86_64
Install Date: (not installed)
Group       : Games/Other
Size        : 91808512
License     : GPLv2
Signature   : DSA/SHA1, Сб 26 дек 2020 20:16:37, Key ID 95c584d5ae4ae412
Source RPM  : boswars-2.7-alt1_24.svn160110.src.rpm
Build Date  : Сб 26 дек 2020 20:16:05
Build Host  : viy-sisyphus.hasher.altlinux.org
Relocations : (not relocatable)
Packager    : Igor Vlasenko <viy@altlinux.ru>
Vendor      : ALT Linux Team
URL         : http://www.boswars.org/
Summary     : Bos Wars is a futuristic real-time strategy game
Description :
Bos Wars is a futuristic real-time strategy game. It is possible to play
against human opponents over LAN, internet, or against the computer.
Bos Wars aims to create a completly original and fun open source RTS game.

Восстановление поврежденной БД RPM

Иногда, например из-за зависания компьютера или отключения электричества при работе RPM с пакетами (установка, удаление, обновление и пр.) база данных, содержащая информацию об установленных пакетах повреждается и пакетный менеджер может вообще не заработать и будет выдавать ошибку о поврежденной БД.

Типа такой:

error: rpmdb: BDB0060 PANIC: fatal region error detected; run recovery
error: db5 error(-30973) from db->close: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: rpmdb: BDB1581 File handles still open at environment close
error: rpmdb: BDB1582 Open file handle: /var/lib/rpm/__db.001
error: rpmdb: BDB1582 Open file handle: /var/lib/rpm/__db.002
error: rpmdb: BDB1582 Open file handle: /var/lib/rpm/__db.003
error: rpmdb: BDB1582 Open file handle: /var/lib/rpm/Packages
error: rpmdb: BDB0060 PANIC: fatal region error detected; run recovery
error: db5 error(-30973) from dbenv->close: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery

Несмотря на критичность, данная проблема решается довольно просто.

Первым делом мы очищаем старую базу данных:

 # rm -f /var/lib/rpm/__db*

А после, генерируем новую заново:

 # rpm -vv --rebuilddb

После генерации попробуйте получить список пакетов:

 # rpm -qa

Должен вывестись список установленных пакетов.

Дополнительно

Проверить цифровые подписи указанного пакета

# rpm --checksig foo-1.0-i586.rpm

Пример выполнения команды:

# rpm --checksig /home/petr/Загрузки/boswars-2.7-alt1_24.svn160110.x86_64.rpm 
/home/petr/Загрузки/boswars-2.7-alt1_24.svn160110.x86_64.rpm: ((SHA1) DSA) sha1 md5 (GPG) НЕ ОК (ОТСУТСТВУЮТ КЛЮЧИ: (SHA1) DSA#ae4ae412 GPG#ae4ae412)

Вывод текущей конфигурации RPM

# rpm --showrc

Вы получите длинную простыню конфигурации.

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

# rpm --help
$ man rpm

Ядра и их модули

Как узнать версию текущего ядра?

$ uname -r
4.9.131-std-def-alt0.M80P.1

Как посмотреть установленные пакеты с модулями ядра?

$ rpm -qa | grep -E '^kernel\-(image|modules)\-'
kernel-modules-bcmwl-std-def-6.30.223.248-alt13.264579.0.M80P.1
kernel-modules-virtualbox-std-def-5.1.30-alt2.264579.0.M80P.1
kernel-modules-zfs-std-def-0.7.9-alt1.264579.0.M80P.1
kernel-image-std-def-4.9.131-alt0.M80P.1
kernel-modules-kvm-std-def-4.9.131-alt0.M80P.1
kernel-modules-staging-std-def-4.9.131-alt0.M80P.1
kernel-modules-drm-std-def-4.9.131-alt0.M80P.1
kernel-modules-v4l-std-def-4.9.131-alt0.M80P.1

Сопоставление модулей ядра файлам и пакетам

Какие модули ядра сейчас используются/загружены?

# lspci -k
Будет выведен следующий список:
# lspci -k
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne Root Complex
        Subsystem: Lenovo Device 3831
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne IOMMU
        Subsystem: Lenovo Device 382d
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:02.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
        Kernel driver in use: pcieport
00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
        Kernel driver in use: pcieport
00:02.4 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
        Kernel driver in use: pcieport
00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus
        Kernel driver in use: pcieport
00:08.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus
        Kernel driver in use: pcieport
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 51)
        Subsystem: Lenovo Device 3868
        Kernel driver in use: piix4_smbus
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
        Subsystem: Lenovo Device 3856
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 0
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 1
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 2
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 3
        Kernel driver in use: k10temp
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 4
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 5
00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 6
00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 7
01:00.0 SD Host controller: O2 Micro, Inc. SD/MMC Card Reader Controller (rev 01)
        Subsystem: Lenovo Device 3877
        Kernel driver in use: sdhci-pci
02:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device b852
        Subsystem: Lenovo Device 4853
        Kernel driver in use: rtw89_8852be
03:00.0 Non-Volatile memory controller: Intel Corporation Device f1aa (rev 03)
        Subsystem: Intel Corporation Device 390f
        Kernel driver in use: nvme
04:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Barcelo (rev c2)
        Subsystem: Lenovo Device 3801
        Kernel driver in use: amdgpu
04:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Renoir Radeon High Definition Audio Controller
        Subsystem: Lenovo Device 382e
        Kernel driver in use: snd_hda_intel
04:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor
        Subsystem: Lenovo Device 384a
        Kernel driver in use: ccp
04:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1
        Subsystem: Lenovo Device 3860
        Kernel driver in use: xhci_hcd
04:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1
        Subsystem: Lenovo Device 3860
        Kernel driver in use: xhci_hcd
04:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD] ACP/ACP3X/ACP6x Audio Coprocessor (rev 01)
        Subsystem: Lenovo Device 3853
04:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller
        Subsystem: Lenovo Device 3851
        Kernel driver in use: snd_hda_intel
05:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 81)
        Subsystem: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
        Kernel driver in use: ahci
05:00.1 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 81)
        Subsystem: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
        Kernel driver in use: ahci

Смотрите у нужного устройства строчку

Kernel driver in use

Например:

05:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 81)
        Subsystem: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode]
        Kernel driver in use: ahci

Здесь строчка:

Kernel driver in use: ahci

Чтобы узнать расположение модуля ядра введите:

# modinfo ahci | head -n1

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

# modinfo ahci | head -n1
filename:       /lib/modules/6.1.28-un-def-alt1/kernel/drivers/ata/ahci.ko

К какому пакету относится модуль ядра?

# rpm -qf $(modinfo ahci | head -n1 | awk '{print $2}')
kernel-image-un-def-6.1.28-alt1.x86_64

ИЛИ

# rpm -qf /lib/modules/6.1.28-un-def-alt1/kernel/drivers/ata/ahci.ko
kernel-image-un-def-6.1.28-alt1.x86_64

Цель достигнута.

Примечание: В предпоследней команде мы взяли из вывода modinfo первую строку (head -n1) и отщипнули от неё второе по счёту поле (awk '{print $2}') с полным путём к файлу модуля. Этот путь к файлу мы передали в качестве параметра команде rpm. В данном случае нам сообщили, что модуль ahci входит в пакет самого ядра. Но далеко не всегда это так и если, например, не работает сетевая карта, возможно, в системе просто не установлен пакет с нужным модулем.

Статьи по отдельности