Void Linux - это независимая операционная система общего назначения Linux. Она создана с нуля и не основана ни на одном из известных нам основных дистрибутивов. Кроме того, Void, пожалуй, самый BSD-подобный из всех дистрибутивов Linux. Одна из причин, по которой стоит обратить внимание на этот дистрибутив, отличная система управления пакетами. Если вы новичок в Void или хотите узнать больше об использовании XBPS, это руководство для вас.
XBPS (X Binary Package System) — менеджер пакетов, используемый в Void Linux для установки, обновления и удаления программного обеспечения. Изначально написанный для Void с нуля, он также является переносимым пакетным менеджером, который теоретически можно использовать где-то еще. Вы, вероятно, заметите, что здесь нет ни man-страницы xbps, ни отдельных бинарников XBPS, потому что XBPS - это набор программ, которые довольно сильно связаны между собой и похожи по структуре. Тем не менее, конечно, это разные команды
Несмотря на то, что диспетчер пакетов XBPS имеет множество расширенных функций, основные операции по управлению программным обеспечением выполняются с помощью четырех команд:
xbps-query — поиск в репозиториях и по установленной системе;
xbps-install для установки и обновления пакетов;
xbps-remove для удаления пакетов;
xbps-src для сборки пакетов, распространяемых третьими лицами в качестве исходных архивов.
Установочный пакет в Void Linux состоит из одного файла " .xbps " и связанного с ним файла " .xbps.sig ", используемого для установки определенного программного обеспечения в систему Void.
Репозитории Void Linux
По умолчанию у Void есть только свободное программное обеспечение. Другими словами, существует разделение между свободными и несвободными программами. Если вы хотите установить несвободное программное обеспечение в свою систему Void, вам необходимо установить следующий дополнительный репозитории void-repo-nonfree и void-repo-multilib-nonfree
sudo xbps-install -S void-repo-nonfree void-repo-multilib-nonfree
Чтоб увидеть список подключенных репозиториев, используйте
xbps-query -L
Обновление системы
Как и все менеджеры пакетов, XBPS использует репозитории для получения пакетов. И, как и в любой другой системе, очень важно поддерживать систему Void в актуальном состоянии. Для обновления команду
doas xbps-install -Su

Поиск пакетов
Для поиска пакетов в доступных репозиториях используйте команду xbps-query. Эта утилита в XBPS позволяет искать нужный пакет и информацию в репозиториях.
xbps-query -Rs package

Уже установленные в систему пакеты помечены [*], а доступные [-]
Поиск локально, среди установленных пакетов
xbps-query -s

Установка и обновление пакетов
xbps-install позволяет пере- и устанавливать или обновлять пакеты
doas xbps-install -S vlc

xbps-install определит все необходимые зависимости и позаботится о них, задаст вопрос перед установкой.
Удаление пакета
Утилита xbps-remove удаляет установленные пакеты из системы.
doas xbps-remove -R firefox-esr

Обратите, XBPS не даёт удалить пакет, ломающий зависимости другого, их можно удалить вместе. По этой причине я не могу удалить Parole, установленный вместе с Xfce, и Ristretto, которую установил сам.
Кроме того, добавление параметра -R ( --recursive) удаляет ненужные зависимости, которые были установлены целевым пакетом.

Удаление неиспользуемых пакетов (сирот)
После удаления пакета могут остаться некоторые потерянные пакеты, которые были зависимостями удалённого пакета. Эти осиротевшие пакеты больше не нужны, поэтому мы можем избавиться от них, освободив место
doas xbps-remove -yo
(y перед ключом ответит ДА на заданные вопросы)
Очистка кэша пакетов
Каждый раз, когда xbps-install загружает новый pkg, будь то новая установка или обновление, они сохраняются в папке /var/cache/xbps. Поэтому, если вы не будете периодически удалять их, они будут постепенно отъедать место накопителя. Кэш желательно периодически очищать. Сделать это можно командой
doas xbps-remove -yO
(y перед ключом ответит ДА на заданные вопросы)
У меня данная команда эту директорию не очищает.
doas rm *
Получить информацию о пакете
xbps-query -Rs даёт краткую информацию по пакету

xbps-query -R выводит расширенную информацию о пакете, включая зависимости

Установка пакетов из исходных кодов
Ремарка
Одной из причин выбора этого дистрибутива стала возможность собирать из исходников, как в Arch & Gentoo, но у меня пакеты не хотели собираться. Пока редактировал, нашёл что не так и xbps-src заработал, — в скачанной папке есть файлик README.md, в котором указаны требования (Requirements), расписан этот процесс подробнее. Процесс сборки пошёл после установки пакета «curl».
Сам инструмент xbps-src представляет собой скрипт оболочки Bash, позволяющий собирать пакеты из репозитория Void на GitHub в бинарные файлы, которые вы можете установить с помощью XBPS. В основном вы будете использовать его для установки пакетов, недоступных в официальных репозиториях Void. Прежде всего убедитесь, что у вас есть git. Если это не так, выполните эту команду в терминале. Согласно ремарке выше, добавлю сюда ещё curl
doas xbps-install -S git curl
Затем вам нужно будет клонировать репозиторий пакетов Void с GitHub
git clone https://github.com/void-linux/void-packages.git
Это создаст директорию void-packages с деревом исходных кодов всех пакетов Void в srcpkgs.
Затем перейдите в созданную директорию и установите бинарный загрузчик, необходимый для изолированной сборки бинарных пакетов.
cd void-packages
./xbps-src binary-bootstrap
#включите пакеты с ограниченным доступом
echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf
#запустите операцию
./xbps-src pkg name-package
Описанный выше процесс помещает собранный бинарный пакет в каталог. Устанавливается собранный пакет так же через XBPS
#Тут лежат файлы бинарные
/home/user/void-packages/hostdir/binpkgs
/home/user/void-packages/hostdir/binpkgs/nonfree
#Установка
sudo xbps-install --repository=hostdir/binpkgs package-name
sudo xbps-install --repository=hostdir/binpkgs/nonfree package-name
#Поищите этот целевой пакет через xbps-query
xbps-query -Rs pkg_name
Заключение
Теперь вы представляете себе поведение и применение XBPS в Void. Надеюсь, кому-то это поможет установить и попробовать самому эту славную систему. Разумеется, это не все команды и ключи, список более обширен, кое-что можете почерпнуть в документации, не забывайте о команде «--help». Ниже оставлю шпаргалку, взятую и переведённую с Github.
Шпаргалка по использованию XBPS
### Примеры ###
xbps-install -Syu — обновить все пакеты в системе
xbps-remove -Oo — очистите каталог кэша и удалите ненужные пакеты
xbps-query -R — показать информацию о пакете, доступном в репозиториях
xbps-query -Rf — оказать список файлов пакета, доступного в репозиториях
xbps-query -Ro /bin/ls — найдите пакеты, которым принадлежит файл /bin/ls в репозиториях
xbps-query -Rs — поиск пакетов в репозиториях, соответствующих шаблону по объектам pkgver и short_desc
xbps-pkgdb -m manual — сделать пакет сохраняемым (не будет распознаваться как сирота)
xbps-remove -R — удалить пакет и все ненужные зависимости, которые были установлены
### Добавление репозиториев через командную строку
xbps-query --repository=<url> ...
xbps-install --repository=<url> ...
### Поиск файлов и пакетов
xbps-query -Rs — поиск пакетов по репозиториям
xbps-query -s — поиск по установленным пакетам
xbps-query -f — файлы, предоставляемые пакетом
xbps-query -l | awk '{ print }' | xargs -n1 xbps-uhelper getpkgname — получить список всех установленных пакетов, без указания их версии
xbps-query -l — запросить список установленных пакетов
xbps-query -L — увидеть URL-адреса репозитория во время синхронизации
xbps-query -m — список установленных пакетов, которые были установлены вручную
xbps-query -H — список заблокированных пакетов
xbps-query -O — список пакетов-сирот
xbps-query pkgname — информация о пакете
xbps-query -f — показать список файлов пакета
xbps-query -x — показать требуемые зависимости
xbps-query -X — показать требуемые обратные зависимости
xbps-query -o — пакеты, соответствующие файлу с указанным шаблоном(ами) (режим ownedby)
### xbps-install - установка и обновление пакетов
xbps-install -S — синхронизировать репозиториии с зеркалом
xbps-install -Su — обновление системы
xbps-install -u — обновление всех пакетов
xbps-install -u package — обновление конкретного пакета
xbps-install package — установка пакета
xbps-install package1 package2 package3 — установка нескольких пакетов
### xbps-remove - удаление пакетов
xbps-remove — удалить пакет
xbps-remove -R — удалить пакет с зависимостями
xbps-remove -o — пакеты-сироты
xbps-remove -O — очистка кэша
### xbps-reconfigure — настройка пакета
xbps-reconfigure [-f] <package name> — настройка пакета
-a — настройка всех пакетов
-f — принудительная настройка
### xbps-pkgdb - проверка на наличие ошибок в пакетах и pkgdb
Утилита xbps-pkgdb может использоваться для проверки на наличие ошибок в пакетах и в базе данных пакетов. Она также используется для обновления формата базы данных пакетов (если в ней произошли изменения). Она работает точно так же, как и xbps-reconfigure, и ожидает имя пакета или -a, --all для всех пакетов.
xbps-pkgdb -u — обновить формат pkgdb до последней версии
xbps-pkgdb -a — проверь наличие ошибок в установленных пакетах и в pkgdb
xbps-pkgdb <package> | -a —
xbps-pkgdb -m hold <package> — заблокировать версию пакета во время обновления системы
xbps-pkgdb -m unhold <package> — снять блокировку
xbps-pkgdb -m repolock <package> — переблокировать пакет
xbps-pkgdb -m repounlock <package> — снять повторную блокировку
xbps-pkgdb -m auto <package> — перевести пакет в авто режим (установить как зависимость)
xbps-pkgdb -m manual <package> — перевести пакет в ручной режим (не будет определен как потерянный)
Компоненты Xbps
xbps-create - Утилита XBPS для создания двоичных пакетов
xbps-dgraph - Утилита XBPS для создания точечных графиков
xbps-install - Утилита XBPS для установки и обновления пакетов
xbps-pkgdb - Утилита XBPS для сообщения о проблемах и устранения их в pkgdb
xbps-query - Утилита XBPS для запроса информации о пакете и репозитории
xbps-reconfigure - Утилита XBPS для настройки установленных пакетов
xbps-remove - Утилита XBPS для удаления пакетов
xbps-rindex - Утилита XBPS для обработки локальных репозиториев двоичных пакетов
Комментарии
09:49
Вы же сами указываете все команды)
xbps-pkgdb -m manual xfce4
решит Вашу проблему с удалением Parole
12:40
14:10
echo "ignorepkg=parole" | sudo tee -a /etc/xbps.d/10-ignore.conf
Что оставит в системе мета-пакет xfce4, но он не будет требовать parole и его можно спокойно удалить!
14:29
https://bin.disroot.org/?1db0bb4969538468#qH42kdKhY7zzD4hnYyCfqKGR7Lqoq8M3qYSNFaf8tq5
14:33
11:54
Удобнее чем войдовская документация точно, как минимум листать страницы не надо.
14:06
Понравилась дискретность утилит управления пакетами - разработчики могут шлифовать их отдельно, главное сохранять связь между ними. Хороший подход, продуманный. Ключи команд, кеш и общий дух близок к arch.
Вряд ли Parole и Ristretto крепко привязаны к xfce, хотя подход напоминает, как будто есть коммерческая поддержка, а это чтобы клиент меньше напрягал. Желаю вам разобраться с прицельным удалением Parole и, надеюсь, позже вы расскажите здесь об этом.
14:43
Добавил пакет в игнорируемые, как это сделал для не нужных прошивок, xKDE выше подсказал.
https://pingvinus.ru/note/xbps-in-void-linux#c115141
17:59
18:06
18:24
18:46
19:26
19:47
'emerge -av xfce-base/xfce4-meta' или 'emerge -av kde-plasma/plasma-meta', и то для сборки своей. Подобного как в void не встречал пока.
19:51
В сусе они помечены по-своему, например
19:45
P.S. Если пакет как зависимость указан, то apt-mark вряд ли поможет. С рекомендуемыми (а-ля фотокамера для гнома) работает. В ином случае только переупаковка метапакета, но там уж проще вручную всё прописать :)
07:35
14:10
19:29
20:12
Горячо жду больше статей про Void. Поскольку оригинальный Handbook очень немногословен и аскетичен.
20:23
10:04
20:41
нужно быть аккуратным при выполнении данной команды. могут быть удалены нужные вам пакеты, посему советую внимательно читать вывод, а не просто жмякать 'yes', а также дополнить набор маленькой утилитой с записью истории и последующим ее просмотром при необходимости
https://github.com/zakariaGatter/xbps-hist
если что-то пошло не так, потом с помощью данной тулзы легко вычислить, какие действия над какими пакетами производились и переустановить пакет, попавший в список orphans и вычищенный командой
xbps-remove -o
21:52
В истории что-то искал 1 раз, но делал это в браузере, потому что fish устанавливаю. Можно в терминале, но там удобнее искать.
Сегодня устанавливал пакет CPU-X, fuzzypkg его не видит почему-то, через OctoXBPS установил. 'xbps-query -Rs' тоже вполне себе находит. Вот бы ещё кнопку истории добавили в OctoXBPS, а то как-то не порядок.
https://postimg.cc/F7Kqtssj
22:25
...
Многие удивляются, как это я решился на такой шаг, в свои то 55, на что я им отвечаю словами: "Но странный стук зовет: «В дорогу!»
Может сердца, а может стук в дверь.
И когда я обернусь на пороге,
Я скажу одно лишь слово: «Верь!»"
00:11
А можно подробнее, - "я записую"!.. (©)
Что-то типа статейки/скрина?..