Добавить в корзинуПозвонить
Найти в Дзене

Установка Crux Linux 3.8 часть 2 (настройка репозиториев, обновление системы, установка портов)

Добрый день дорогой читатель, данное повествование не является
истиной в последней инстанции. Это некая инструкция по настройке коллекции портов (репозиториев), обновлению системы и работе с портами в Crux Linux (условия таковы установка с использованием UEFI, на чистый
накопитель c файловой системой BTRFS) с пояснениями и все возможными
мыслями. Действия будут происходить на KVM/QEMU для наглядности. В CRUX имеет три основных коллекции портов это core, opt, xorg. Так же есть compat-32 содержит порты для поддержки 32-битных приложений на 64-битных системах, он по умолчанию отключён и нужен для multilib-сред. Contrib - это коллекция портов от опытных пользователей и некоторых разработчиков, туда попадают неофициальные, но полезные пакеты; тоже отключён по умолчанию. Обе коллекции портов можно включить вручную, чтобы расширить доступные пакеты. Коллекции портов находятся /etc/ports, посмотреть выполнив команду ls -l /etc/ports как видим файлы содержащие .pub это публичные ключи колл

Добрый день дорогой читатель, данное повествование не является
истиной в последней инстанции. Это некая инструкция по настройке коллекции портов (репозиториев), обновлению системы и работе с портами в 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
...
-2

после включения коллекции портов следует выполнить синхронизацию командой

sudo ports -u
На скрине выполнено повторна команда по этому нет обновлений портов
На скрине выполнено повторна команда по этому нет обновлений портов

так же можно посмотреть какие порты были изменены с последнего изменения

sudo ports -d
-4

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

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

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

-6

посмотрим информацию о порте выполнив команду

sudo prt-get info neofetch

Давольно таки информативно

-7

посмотрим зависимости порта с помощью команд

prt-get depends neofetch
prt-get quickdep neofetch
prt-get deptree neofetch

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

-8

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

sudo prt-get install neofetch

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

sudo prt-get depinst neofetch

установка происходит со всеми зависимостями данного порта

-9

ну и конечно же удаление

sudo prt-get remove neofetch

тут мои комментарии излишни

-10

бонусом ради спортивного интереса выкладываю скрины htop и neofetch

-11

немного консольной эстетики

-12

За основу взято Сrux Wiki, а так же информация с форумов по подобной тематике.
За сим откланиваюсь...