Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.6
Creation-Date: 2021-10-26T11:45:31+08:00

====== 09 XBPS ======
Создан Вторник 26 октября 2021

	[[https://docs.voidlinux.org/xbps/repositories/mirrors/index.html|Список зеркал репозиториев]]

	По умолчанию:
''xbps-query -L''
__12500 https://alpha.de.repo.voidlinux.org/current (RSA signed)__
__ 5285 https://alpha.de.repo.voidlinux.org/current/multilib (RSA signed)__

	Для смены зеркала:
''sudo mkdir -p /etc/xbps.d''
''sudo cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/''
''sudo sed -i 's|https://alpha.de.repo.voidlinux.org|https://mirror.yandex.ru/mirrors/voidlinux/|g' /etc/xbps.d/*-repository-*.conf''
''sudo xbps-install -S''
''xbps-query -L''
	Добавленные впоследствии репозитории (у меня их пока только два установлено, как видно из вывода выше) также необходимо будет изменить, иначе они будут использовать зеркало по умолчанию.
	Вернуть зеркало по умолчанию:
''sudo rm /etc/xbps.d/*-repository-*.conf''
''sudo xbps-install -S''

X Binary Package System

=== Инструкции по использованию ===

	Мой перевод:

В пакет xbps входят следующие утилиты (среди прочего, не полный список):
xbps-create (1) - Утилита XBPS для создания бинарных пакетов
xbps-dgraph (1) - Утилита XBPS для создания точечных (1) графиков
xbps-install (1) - Утилита XBPS для установки и обновления пакетов
xbps-pkgdb (1) - Утилита XBPS для сообщения и устранения проблем в pkgdb
xbps-query (1) - Утилита XBPS для запроса информации о пакете и репозитории
xbps-reconfigure (1) - Утилита XBPS для настройки установленных пакетов
xbps-remove (1) - Утилита XBPS для удаления пакетов
xbps-rindex (1) - Утилита XBPS для обработки локальных репозиториев двоичных пакетов

=== Обозначение пакета ===

В следующих примерах будут команды, принимающие аргумент, например <package expression>. Выражение пакета - это форма, соответствующая шаблону; в настоящее время XBPS> = 0.19 поддерживает 3 способа их указания:
* указав имя пакета, то есть foo.
* указав точное имя пакета и версию, то есть foo-1.0_1.
* путем указания имени пакета и версии, разделенных любым из следующих компараторов версий:
< меньше, чем
> лучше чем
<= меньше или равно чем
>= больше или равно чем
Таким примером может быть foo>=2.0 или blah-foo<=1.0.

=== Репозитории ===

Репозитории можно объявить в конфигурационном файле каталогов configuration или system configuration:
<sysconfdir>/xbps.d- Каталог конфигурации (установлен на /etc/xbps.d)
<sharedir>/xbps.d- Системный каталог (установлен в /usr/share/xbps.d)

Файл конфигурации с таким же именем файла имеет /etc/xbps.d приоритет над файлом из <sharedir>/xbps.d. По умолчанию XBPS пакет предоставляет только основной репозиторий Void в /usr/share/xbps.d/00-repository-main.conf файле.

[[https://voidlinux.org/packages/|Основной репозиторий]] не открывается в браузере напрямую, только в режиме поиска пакетов на сайте. Или можно смотреть содержание репозиториев Void Linux на [[https://pkgs.org/|другом сайте]] - 13 страниц списка с описанием назначения.

Дополнительные репозитории можно добавить, установив любой из следующих пакетов XBPS или создав новые файлы конфигурации вручную:
''sudo xbps-query -Rs void-repo''
[*] [[https://alpha.de.repo.voidlinux.org/current/multilib/|void-repo-multilib]]         Void Linux drop-in file for the multilib repository (**32 bit**, много пакетов, в т.ч. __wine-32bit__)
[*] [[https://alpha.de.repo.voidlinux.org/current/nonfree/|void-repo-nonfree]]          Void Linux drop-in file for the nonfree repository (Cendric, adom, armv6l-repodata, armv7l-repodata, broadcom-wl-dkms, brother-brscan4, cavestory, chromium-widevine, clementine-spotify, cnijfilter2, doom3, dwarffortress, foomatic-db-nonfree, i686-repodata, intel-ucode, intellij-idea-community-edition, iscan, iscan-plugin-qt-s650, libspotify, libspotify-devel, netperf, notion, nvidia, nvidia-dkms, nvidia-gtklibs, nvidia-libs, nvidia-opencl, nvidia390, nvidia390-dkms, nvidia390-gtklibs, nvidia390-libs, nvidia390-opencl, openbazaar, openspades, __opera__, oracle-jdk, oracle-jre, othman, otime, p7zip-unrar, pycharm-community, quake4, rpi-eeprom, samsung-unified-driver, skype, soulseekqt, steam, sublime-merge, sublime-text3, sunxi-mali, sunxi-mali-devel, unrar, wineasio, x86_64-repodata, xsnow, xvba-video)
[x] [[https://alpha.de.repo.voidlinux.org/current/multilib/nonfree/|void-repo-multilib-nonfree]] Void Linux drop-in file for the multilib/nonfree repository (**32 bit**: adom, brother-brscan4, caja-CopyAgent, cavestory, cnijfilter2, doom3, intellij-idea-community-edition, iscan, iscan-plugin-qt-s650, libspotify, nautilus, notion, nvidia-gtklibs, nvidia-libs, nvidia-opencl, nvidia390-gtklibs, nvidia390-libs, nvidia390-opencl, openbazaar, opera, otime, p7zip-unrar, quake4, samsung-unified-driver, skype, wineasio, x86_64-repodata, xvba-video)
[x] void-repo-debug            Void Linux drop-in file for the debug repository

Репозитории, указанные в configuration каталоге, добавляются в начало списка, а репозитории, указанные через system configuration каталоги, добавляются к существующему списку.

Если репозитории не найдены, их можно объявить вручную с помощью параметра командной строки --repository, который в настоящее время принят в xbps-install(1) и xbps-query(1).

=== xbps-query - запрос пакетов и репозиториев ===

xbps-query (1) попытается найти соответствие <package expression> в локальных пакетах. Это поведение можно изменить, включив параметр -R или, --repository чтобы принудительно включить режим репозитория.

Чтобы запросить список установленных пакетов:
''xbps-query -l''

Чтобы запросить список всех репозиториев:
''xbps-query -Rs void-repo''

Чтобы запросить список рабочих репозиториев:
''xbps-query -L''

Чтобы запросить список установленных пакетов, которые были установлены вручную (не как зависимости):
''xbps-query -m''

Чтобы запросить список пакетов на удержании (не обновляются автоматически):
''xbps-query -H''

Чтобы запросить список установленных пакетов-сирот (пакеты, которые были установлены как зависимости, но в настоящее время нет ни одного пакета, который этого требует):
''xbps-query -O''

Чтобы запросить пакет и показать его метаинформацию:
''xbps-query <package expression>''

Кроме того, -p или --property параметр можно использовать для отображения только определенного ключа пакета (pkgver, license, maintainer, build-date, repository...):
''xbps-query --property=pkgver xbps''
xbps-0.19_1

Множественные свойства могут быть заданы разграничением их запятыми, то есть -p key,key2.

Чтобы запросить пакет и показать его список файлов:
''xbps-query -f <package expression>''

Чтобы запросить пакет и показать необходимые зависимости времени выполнения:
''xbps-query -x <package expression>''

Чтобы запросить пакет и показать необходимые обратные зависимости времени выполнения:
''xbps-query -X <package expression>''

Чтобы запросить пакеты, содержащие файл с указанным шаблоном(ами) (режим владения):
''xbps-query -o <pattern>''
Где <pattern>подстановочный знак оболочки, как описано в fnmatch (3); напр. "*.png".
В <patterns> качестве аргументов можно указать несколько.

Чтобы запросить пакеты, соответствующие имени пакета / версии / описанию с указанным шаблоном(ами) (режим поиска):
''xbps-query -s <pattern>''
Применяются те же правила, которые описаны выше в ownedby режиме.

Для поиска в репозиториях по шаблону добавить -R:
''xbps-query -Rs xbps''

Сведения о конкретном пакете в репозиториях:
''xbps-query -R xbps''

=== xbps-install - установка и обновление пакетов ===

Чтобы синхронизировать файлы индекса удаленного репозитория:
''sudo xbps-install -S''
-S, --sync Вариант можно комбинировать при установке или обновлении пакетов, то есть xbps-install -Su.

Чтобы установить пакет:
''sudo xbps-install <package expression>''

Чтобы установить сразу несколько пакетов:
''sudo xbps-install <package expression> <package expressions>''

Чтобы обновить отдельный пакет:
''sudo xbps-install -u <package expression>''

Чтобы обновить все пакеты (также известный как dist-upgrade в Debian / Ubuntu):
''sudo xbps-install -u''
Этот -n, --dry-run параметр можно использовать для печати пакетов, которые будут обновлены и / или установлены, и не требует разрешений в целевом корневом каталоге, что может быть полезно для вывода списка обновлений.

=== xbps-remove - удаление пакетов ===

Чтобы удалить пакет:
''sudo xbps-remove <package name>''

Чтобы рекурсивно удалить ненужные зависимости, которые были установлены целевым пакетом:
''sudo xbps-remove -R <package name>''

Чтобы удалить сироты пакета:
''sudo xbps-remove -o''

Чтобы очистить каталог кеша и удалить устаревшие пакеты и / или пакеты с неправильным хешем:
''sudo xbps-remove -O''

Чтобы удалить пакет сирота и очистить хранилище кэша оба варианта может быть объединен, то есть xbps-remove -Oo.

=== xbps-reconfigure - настроить (или принудительно настроить) пакет ===

xbps-reconfigure(1) Утилита может использоваться для настройки пакетов , которые не были ранее (возможно , из - за отключения электроэнергии, процесс убит, и т.д.) или просто пакет силы реконфигурации. По умолчанию и если этот -f, --force параметр не установлен, будут обрабатываться только пакеты, которые не были настроены.

Его использование простое, укажите имя пакета или a, --all для всех пакетов:
''sudo xbps-reconfigure [-f] <package name> | -a''

=== xbps-pkgdb - проверка ошибок в пакетах и ​​pkgdb ===

xbps-pkgdb(1) Утилита может быть использована для проверки на наличие ошибок в пакетах, так и в базе данных пакетов. Он также используется для обновления формата базы данных пакетов (если были изменения). Он работает точно так же, как xbps-reconfigure(1) и ожидает имя пакета или -a, --all для всех пакетов.
''sudo xbps-pkgdb <package name> | -a''

Чтобы перевести пакет в режим ожидания (не будет обновлен в режиме dist-upgrade):
''sudo xbps-pkgdb -m hold <package name>''

Чтобы вывести пакет из режима ожидания:
''sudo xbps-pkgdb -m unhold <package name>''

Чтобы перевести пакет в автоматический режим (как бы он был установлен как зависимость):
''sudo xbps-pkgdb -m auto <package name>''

Чтобы перевести пакет в ручной режим (не будет обнаружен как сиротский):
''sudo xbps-pkgdb -m manual <package name>''

Чтобы обновить формат pkgdb до последней версии:
''sudo xbps-pkgdb -u''
ПРИМЕЧАНИЕ: обновление формата pkgdb происходит не слишком часто, поэтому оно необходимо только в редких случаях.

=== xbps-rindex - Создание, обновление и администрирование локальных репозиториев ===

У этой команды всего 3 режима работы:

Добавить [-a, --all]: добавляет указанные пакеты в указанный репозиторий и удаляет предыдущую запись, если обнаружена:
''sudo xbps-rindex -a /path/to/repository/*.xbps''
Этот -f, --force параметр можно использовать для принудительной регистрации пакета в индексе репозитория, даже если такая же версия уже зарегистрирована.

Clean [-c, --clean]: очищает индекс указанного репозитория, удаляя устаревшие или недопустимые записи (несуществующие пакеты, несогласованные хэши и т. д.):
''sudo  xbps-rindex -c /path/to/repository''

Remove-obsoletes [-r, --remove-obsoletes]: удаляет устаревшие пакеты из репозитория (устаревшие, битые и несогласованные хэши):
''sudo  xbps-rindex -r /path/to/repository''

=== Примеры ===

Обновить все пакеты в системе, без подтверждения:
''sudo xbps-install -Syu''

Очистить каталог кеша от устаревших пакетов, и удалить осиротевшие пакеты:
''sudo xbps-remove -Oo''

Показать информацию о пакете, доступном в репозиториях:
''xbps-query -R xbps''

Показать список файлов пакета, доступного в репозиториях:
''xbps-query -Rf xbps''

Найти пакеты, которым принадлежит файл /bin/ls, в репозиториях:
''xbps-query -Ro /bin/ls''

Сделать пакет сохраняемым (не будет обнаружен как осиротевший):
''sudo xbps-pkgdb -m manual xbps''

Найти пакеты в репозиториях, соответствующие xbps шаблону в своих pkgver и short_desc объектах:
''xbps-query -Rs xbps''

Удалить пакет и все установленные ненужные зависимости:
''sudo xbps-remove -R xbmc''

Добавить репозитории через командную строку:
''xbps-query --repository=<url> ...''
''sudo xbps-install --repository=<url> ...''

Включить удержание версии для установленного пакета (не будет обновляться через xbps-install -u):
''sudo xbps-pkgdb -m hold <pkgname>''

Список удерживаемых пакетов:
''xbps-query -H''

Перевести установленный пакет в режим unhold (будет обновляться при наличии обновлений):
''sudo xbps-pkgdb -m unhold <pkgname>''

Проверить наличие ошибок в установленных пакетах и ​​в pkgdb:
''sudo xbps-pkgdb -a''

