From a6fc0155e7bae26f4dc9c56eea03580c5b26cca7 Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Sat, 23 Oct 2021 23:37:44 +0300 Subject: [PATCH] edited build --- SolusProject/README.md | 1 + SolusProject/doc/README.md | 1 + SolusProject/doc/build_eopkg.md | 50 +++++++++++++- SolusProject/doc/repositories.md | 109 +++++++++++++++++++++++++++++++ SolusProject/img/README.md | 1 + 5 files changed, 159 insertions(+), 3 deletions(-) create mode 100644 SolusProject/doc/repositories.md diff --git a/SolusProject/README.md b/SolusProject/README.md index 5ec430b..679ca21 100644 --- a/SolusProject/README.md +++ b/SolusProject/README.md @@ -4,4 +4,5 @@ ![Image of Yaktocat](img/budgie_desktop.png) +- [Работа с репозиториями](doc/repositories.md) - [Сборка eopkg пакета](doc/build_eopkg.md) diff --git a/SolusProject/doc/README.md b/SolusProject/doc/README.md index d6a5247..0de72a7 100644 --- a/SolusProject/doc/README.md +++ b/SolusProject/doc/README.md @@ -4,4 +4,5 @@ ![Image of Yaktocat](../img/budgie_desktop.png) +- [Работа с репозиториями](repositories.md) - [Сборка eopkg пакета](build_eopkg.md) diff --git a/SolusProject/doc/build_eopkg.md b/SolusProject/doc/build_eopkg.md index 81db60a..ba84802 100644 --- a/SolusProject/doc/build_eopkg.md +++ b/SolusProject/doc/build_eopkg.md @@ -5,6 +5,7 @@ ## Процесс сборки * [Предварительная подготовка](#предварительная-подготовка) +* [Использование локального репозитория](#использование-локального-репозитория) * [Подготовка сборки пакета](#подготовка-сборки-пакета) ## Предварительная подготовка @@ -18,7 +19,7 @@ nano ~/.solus/packager Внутри файла необходимо указать два ключа, идентифицирующие собирающего пакеты: -``` +```shell [Packager] Name=Your Name Here Email=your.email@address @@ -36,12 +37,24 @@ sudo eopkg install -c system.devel sudo eopkg it solbuild ``` -Так же можно (желательно) установить `solbuild-config-unstable` для сборки нестабильной версии пакета: +Если нужно использовать только [unstable](repositories.md#список-репозиториев) репозиторий по умолчанию, также [установить конфигурацию для нестабильного репозитория](https://getsol.us/articles/packaging/building-a-package/en/#initializing-solbuild) `solbuild-config-unstable`: ```shell sudo eopkg it solbuild-config-unstable ``` +Если нужно использовать только [local](repositories.md#инициализация-локального-репозитория) репозиторий по умолчанию, также [установить конфигурацию для локального нестабильного репозитория](https://getsol.us/articles/packaging/local-repository/en/#install-the-local-profile): + +```shell +sudo eopkg install solbuild-config-local-unstable +``` + +Также понадобятся `git` и `arcanist`: + +```shell +sudo eopkg it git arcanist +``` + После установки необходимо инициализировать `solbuild`: ```shell @@ -77,11 +90,42 @@ ln -sv common/Makefile.iso . В результате выполненных действий каталог `building` примет следующий вид: -``` +```shell ├── common ├── Makefile ├── Makefile.common └── Makefile.iso ``` +## Использование локального репозитория + +После выполнения установки `solbuild-config-local-unstable` создаётся путь `/var/lib/solbuild/local/` локального репозитория. При использовании локального репозитория необходимо выполнить [индексацию](repositories.md#инициализация-локального-репозитория) списка: + +```shell +sudo eopkg index --skip-signing /var/lib/solbuild/local/ --output /var/lib/solbuild/local/eopkg-index.xml +``` + +Стоит заметить, что в своей работе `eopkg` всегда будет отдавать предпочтение пакетам из самого верхнего репозитория, указанного в списке `eopkg lr`. Другими словами - если пакет существует как в локальном репозитории `solbuild`, так и в официальном вышестоящем репозитории Solus, `eopkg` будет рассматривать только пакет из первого репозитория, указанного в `eopkg lr`, независимо от его номера выпуска. + +Для того, чтобы изменить порядок следования репозиториев (их приоритетов) необходимо передобавить их в нужном порядке, например: + +```shell +sudo eopkg ar Local /var/lib/solbuild/local/eopkg-index.xml.xz +sudo eopkg ar Solus https://mirrors.rit.edu/solus/packages/unstable/eopkg-index.xml.xz +``` + +Таким образом локальный репозиторий будет иметь высокий приоритет для `eopkg`: + +```shell +eopkg lr +Local [active] + /var/lib/solbuild/local/eopkg-index.xml.xz +Solus [active] + https://mirrors.rit.edu/solus/packages/unstable/eopkg-index.xml.xz +``` + +Стоит обратить внимание, что пакеты, отсутствующие в локальном репозитории сборки `solbuild`, будут извлечены из вышестоящего официального репозитория Solus (`unstable`). Индексацию `eopkg` необходимо обновлять всякий раз, когда добавляется или удаляется локально созданные пакеты в локальном репозитории `solbuild` – в противном случае `eopkg` не будет знать, что новые пакеты доступны/были удалены из репозитория. + ## Подготовка сборки пакета + +Все пакеты создаются из [одного файла сборки](https://getsol.us/articles/packaging/package.yml/en/#format), который предоставляет все необходимые метаданные для менеджера пакетов, а также этапы упаковки, необходимые для создания пакета. Это соответствует спецификации YAML. diff --git a/SolusProject/doc/repositories.md b/SolusProject/doc/repositories.md new file mode 100644 index 0000000..988b132 --- /dev/null +++ b/SolusProject/doc/repositories.md @@ -0,0 +1,109 @@ +# Работа с репозиториями + +* [Список репозиториев](#список-репозиториев) +* [Инициализация локального репозитория](#инициализация-локального-репозитория) +* [Добавление репозитория](#добавление-репозитория) +* [Удаление репозитория](#удаление-репозитория) +* [Включение репозитория](#включение-репозитория) +* [Выключение репозитория](#выключение-репозитория) +* [Обновление репозитория](#обновление-репозитория) + +## Список репозиториев + +Solus предоставляет только два репозитория - стабильный `shannon` и нестабильный `unstable`. После установки Solus по умолчанию подключён стабильный репозиторий . Для того, чтобы получить список установленных репозиториев на текущий момент необходимо выполнить: + +```shell +eopkg lr +``` + +Терминальный вывод: + +```shell +Solus [активен] + https://mirrors.rit.edu/solus/packages/shannon/eopkg-index.xml.xz +``` + +## Инициализация локального репозитория + +Для инициализации локального репозитория `~/Repository` из домашнего каталога используется команда: + +```shell +sudo eopkg index --skip-signing $HOME/Repository/ --output $HOME/Repository/eopkg-index.xml +``` +Эта команда ищет все файлы eopkg в директории, собирает тэги из них и суммирует всю информацию в одном выходном файле XML, который по умолчанию называется `eopkg-index.xml`. В частности он индексирует и файлы исходников и бинарные пакеты. + +В данном случае `Repository` может быть любым именем вашего каталога. + +## Добавление репозитория + +Для добавления нового репозитория используется команда: + +```shell +sudo eopkg ar Name Url +``` + +Например, добавление нестабильного репозитория `unstable`: + +```shell +sudo eopkg ar Solus https://mirrors.rit.edu/solus/packages/unstable/eopkg-index.xml.xz +``` + +Или локального репозитория `~/Repository` из домашнего каталога: + +```shell +sudo eopkg ar MyRepository $HOME/Repository/eopkg-index.xml.xz +``` + +## Удаление репозитория + +Для удаления имеющегося репозитория используется команда: + +```shell +sudo eopkg rr Name +``` + +Например, добавление нестабильного репозитория `unstable`: + +```shell +sudo eopkg rr MyRepository +``` + +## Включение репозитория + +Для включения репозитория используется команда: + +```shell +sudo eopkg er Name +``` + +Например: + +```shell +sudo eopkg er MyRepository +``` + +## Выключение репозитория + +Для выключения репозитория используется команда: + +```shell +sudo eopkg dr Name +``` + +Например: + +```shell +sudo eopkg dr MyRepository +``` + +## Обновление репозитория + +```shell +sudo eopkg ur Name +``` + +Например: + +```shell +sudo eopkg ur MyRepository +``` diff --git a/SolusProject/img/README.md b/SolusProject/img/README.md index 66f70ee..23e1301 100644 --- a/SolusProject/img/README.md +++ b/SolusProject/img/README.md @@ -4,4 +4,5 @@ ![Image of Yaktocat](budgie_desktop.png) +- [Работа с репозиториями](../doc/repositories.md) - [Сборка eopkg пакета](../doc/build_eopkg.md)