Добрый день дорогой читатель, данное повествование не является
истиной в последней инстанции. Это некая инструкция по настройке коллекции портов (репозиториев), обновлению системы и работе с портами в Crux Linux (условия таковы установка с использованием UEFI, на чистый
накопитель c файловой системой BTRFS) с пояснениями и все возможными
мыслями. Действия будут происходить на KVM/QEMU для наглядности.
В CRUX имеет три основных коллекции портов это core, opt, xorg. Так же есть compat-32 содержит порты для поддержки 32-битных приложений на 64-битных системах, он по умолчанию отключён и нужен для multilib-сред. Contrib - это коллекция портов от опытных пользователей и некоторых разработчиков, туда попадают неофициальные, но полезные пакеты; тоже отключён по умолчанию. Обе коллекции портов можно включить вручную, чтобы расширить доступные пакеты.
Коллекции портов находятся /etc/ports, посмотреть выполнив команду
ls -l /etc/ports
как видим файлы содержащие .pub это публичные ключи коллекции, .rsync - активная коллекция портов (так же rsync является протоколом доставки портов, поддерживаются httpup и git) и .inactive - отключенная коллекция портов
ls /etc/ports | grep rsync
ls /etc/ports | grep inactive
чтобы включить compat-32 и contrib достаточно переименовать соответствующие файлы убрав суффикс .inactive что мы и сделаем
cd /etc/ports
su
mv contrib.rsync.inactive contrib.rsync
mv compat-32.rsync.inactive compat-32.rsync
Нюанс. После включения compat-32 и contrib коллекции следует проверить конфиг менеджера портов prt-get так как пути к дополнительным коллекциям портов за комментированы, следовательно ими не воспользоваться. Для этого следует в /etc/prt-get.conf раз комментировать следующие строки
sudo nano /etc/prt-get.conf
...
prtdir /usr/ports/contrib
prtdir /usr/ports/compat-32
...
после включения коллекции портов следует выполнить синхронизацию командой
sudo ports -u
так же можно посмотреть какие порты были изменены с последнего изменения
sudo ports -d
для выполнения обновления всех установленных портов следует выполнить команду
sudo prt-get sysup
Пока система будет обновляться, процесс не быстрый и займет уйму времени, поговорим о pkgutils для общего понимания.
pkgutils - это набор утилит для управления пакетами в CRUX Linux. Все пакеты здесь - это обычные tar.gz-архивы без сложной метаинформации, обычно с именем вида name#version-release.pkg.tar.gz, что делает систему очень простой и прозрачной для достаточно опытного пользователя.
С помощью pkgutils можно устанавливать (pkgadd), удалять (pkgrm) получать информацию о пакетах (pkginfo) и создавать пакеты (pkgmk). Обычно пользователи работают через prt-get (о нем мы поговорим чуть позже), а pkgutils используется "под капотом".
Команда pkgadd используется для установки пакетов и поддерживает несколько ключей, разберем основные:
- Без ключей: просто устанавливает пакет
Пример: pkgadd nano#8.5-1.pkg.tar.gz
-u: обновляет уже установленный пакет
Пример: pkgadd -u nano#8.5-1.pkg.tar.gz
Обычно этого достаточно, так как pkgadd довольно минималистичен. Более тонкая настройка поведения возможна через файл `/etc/pkgadd.conf`, где можно задать правила для обновления определённых файлов.
Команда pkgrm используется для удаления пакетов и не имеет множества ключей, она максимально проста. Просто указываете имя пакета:
Пример: pkgrm nano
Ключей вроде -f, -y или подтверждений тут нет — пакет удаляется сразу и без лишних вопросов. Так что будьте осторожны: всё, что принадлежит пакету, исчезнет мгновенно!
Команда pkginfo так же минималистична, рассмотрим её ключи
-i — показать список установленных пакетов и их версий
Пример: pkginfo -i
-l имя_пакета — показать список файлов, входящих в пакет
Пример: pkginfo -l nano
-o шаблон — показать, какой пакет владеет файлом/шаблоном
Пример: pkginfo -o nano
А теперь перейдем к самому важному, к менеджеру пакетов, prt-get - это расширенный менеджер пакетов для CRUX Linux. Он помогает устанавливать, обновлять, удалять и искать пакеты, а также автоматически обрабатывает зависимости.
Рассмотрим prt-get, по сравнению с утилитами пакета pkgutils, напичкана обилием ключей на все случаи жизни, поговорим о некоторых конструкциях команды
prt-get install <имя_порта> - установка порта без зависимостей
prt-get depinst <имя_порта> - установка порта с зависимостями
prt-get update <имя_порта> - обновление порта
prt-get remove <имя_порта> - удаление порта
prt-get sysup - обновление всех установленных пакетов в системе
prt-get search <имя_порта> - Поиск порта по имени
prt-get fsearch <имя_файла> - поиск портов по установленному файлу
prt-get dsearch <ключевое слово> - Поиск портов по словам в их описании
prt-get depends <имя_порта> - посмотреть зависимости порта
prt-get quickdep <имя_порта> - посмотреть зависимости порта, вывод списка построчно
prt-get deptree <имя_порта> - посмотреть зависимости порта, вывод в виде дерева
prt-get diff - список установленных портов которые устарели, практически одно и то же что и команда ports -d, обычно выполняется после обновления коллекций портов командой ports -u
prt-get quickdiff - список установленных портов которые устарели, вывод построчно
prt-get listinst - список всех установленных портов
prt-get isinst <имя_порта> - проверяет установлен порт или нет
prt-get info <имя_порта> - информация о порте
prt-get list - список всех портов
С ключами:
prt-get list -v — показать версии
prt-get list -vv — показать версии и описания
prt-get list --path — показать путь к порту
Очень важный нюанс. В настоящее время 'update' и 'sysup' не обрабатывают новые зависимости, введенные после первоначальной установки порта. Чтобы показать такие дополнения к спискам зависимостей установленных портов, вы можете связать вместе несколько вызовов prt-get с одним вызовом awk следующим образом.
prt-get isinst $(prt-get quickdep $(prt-get quickdiff)) | awk '/not installed/ {print $2}'
А теперь по практикуемся, например с neofetch выполнив поиск порта командами
sudo prt-get search neofetch
sudo prt-get fsearch neofetch
sudo prt-get dsearch neofetch
как видим порт доступен для установке
посмотрим информацию о порте выполнив команду
sudo prt-get info neofetch
Давольно таки информативно
посмотрим зависимости порта с помощью команд
prt-get depends neofetch
prt-get quickdep neofetch
prt-get deptree neofetch
как видим все используемые зависимости уже установлены
установим в данном случае в нашей системе есть все зависимости для работы neofetch для его установки достаточно выполнить
sudo prt-get install neofetch
но ведь не всегда так будет, отдельно ставить зависимости да еще история о главном, по этому рекомендуется искользовать следующую конструкцию команды
sudo prt-get depinst neofetch
установка происходит со всеми зависимостями данного порта
ну и конечно же удаление
sudo prt-get remove neofetch
тут мои комментарии излишни
бонусом ради спортивного интереса выкладываю скрины htop и neofetch
немного консольной эстетики
За основу взято Сrux Wiki, а так же информация с форумов по подобной тематике.
За сим откланиваюсь...