Перейти к основному содержимому

Руководство для пользователей

НАЗВАНИЕ:
stplr - Command-line interface for Stapler, a universal Linux package build system

ИСПОЛЬЗОВАНИЕ:
stplr [глобальные опции] команда [опции команды] [аргументы...]

КОМАНДЫ:
install, in Установить новый пакет
remove, rm Удалить установленный пакет
upgrade, up Обновить все установленные пакеты
info Отобразить информацию о пакете
list, ls Список пакетов репозитория Stapler
build Сборка локального пакета
refresh, ref Скачать все изменённые репозитории
fix Попытка устранить проблемы с Stapler
generate, gen Генерация Staplerfile из шаблона
helper Запустить вспомогательную команду Staplerfile
version Показать текущую версию Stapler и выйти
search, s Поиск пакетов
repo Управление репозиториями
config Управление конфигурацией
help, h Shows a list of commands or help for one command

ГЛОБАЛЬНЫЕ ОПЦИИ:
--pm-args value, -P value Аргументы, которые будут переданы менеджеру пакетов
--interactive, -i Включение интерактивных вопросов и запросов (default: true)
--help, -h Показать справку

Команды

install

Команда install устанавливает пакет из репозиториев stplr. Любые пакеты, которых нет в репозиториях stplr, передаются в системный менеджер пакетов для установки. stplr проверит массив и сообщит, если точное совпадение не найдено. Также поддерживается использование % в качестве замены. Если найдено несколько пакетов, вы будете проинформированы о выборе пакета для установки. По умолчанию, если пакет уже был собран, stplr установит кэшированный пакет вместо повторной пересборки. Используйте флаг -c или --clean, чтобы принудительно пересобрать пакет.

Примеры:

stplr install stplr-bin         # найдёт только stplr-bin
stplr in stplr # находит stplr-bin и stplr-git
stplr in it% # находит stplr-bin, stplr-git и itgui-git
stplr in -c stplr-bin # пересоберёт и установит stplr-bin
stplr in pkg+stplr-repo # конкретный пакет с указанием репозитория
stplr in repo/pkg # то же самое другим способом

remove

Команда remove предназначена для удобства. Она просто перенаправляет команду удаления в системный менеджер пакетов.

Пример:

stplr rm firefox

upgrade

Проверяет установленные пакеты и сравнивает их версии с версиями в репозиториях stplr (используется алгоритм rpmvercmp). Если найдена более новая версия — пакет обновляется.

Пример:

stplr up

info

Команда info отображает информацию о пакете в репозиториях stplr.

Если найдено несколько пакетов, вам будет предложено выбрать, какой из них вы хотите просмотреть.

Пример:

stplr info stplr-bin          # находит только stplr-bin
stplr info stplr # находит stplr-bin и stplr-git
stplr info it% # находит stplr-bin, stplr-git и itgui-git
stplr info pkg+stplr-default # конкретный пакет с указанием репозитория
stplr info stplr-default/pkg # то же самое другим способом

list

Команда list отображает все пакеты из репозитория stplr, а также их версии.

Существует флаг -I или --installed, который фильтрует пакеты, установленные в системе.

Примеры:

stplr ls     # выводит все пакеты stplr
stplr ls -I # выводит все установленные пакеты

refresh

Команда refresh загружает все изменения из всех репозиториев stplr, которые были изменены.

Пример:

stplr ref

fix

Команда fix пытается исправить проблемы с stplr, удаляя и пересобирая кэш stplr.

Пример:

stplr fix

version

Команда version возвращает текущую версию stplr и завершает выполнение.

Пример:

stplr version

Команда search позволяет искать пакеты в репозиториях stplr по различным критериям. Вы можете фильтровать результаты поиска по имени, описанию, репозиторию или предоставляемым возможностям (provides). По умолчанию вывод ограничен информацией для текущего дистрибутива, но можно отобразить все результаты, используя флаг --all. Для настройки формата вывода используйте опцию --format с шаблоном Go.

stplr search -n stplr-bin       # поиск пакета по имени
stplr search -d "git" # поиск по описанию, содержащему 'git'
stplr search -p libfoo # поиск пакетов, предоставляющих libfoo

stplr search -f ""{{.Repository}}/{{.Name}} {{.Version}}-{{.Release}}"" # получить вывод как у stplr list

repo

stplr repo
NAME:
stplr repo - Управление репозиториями

USAGE:
stplr repo command [command options] [arguments...]

COMMANDS:
remove, rm Удалить существующий репозиторий
add Добавить новый репозиторий
set-ref Установить ссылку на версию репозитория
mirror Управление зеркалами репозитория
set-url Установить главный URL репозитория
help, h Shows a list of commands or help for one command

OPTIONS:
--help, -h Показать справку

repo remove

Команда repo remove (repo rm) удаляет репозиторий из stplr и удаляет его содержимое, если он существует.

Пример:

stplr repo remove stplr-repo

repo add

Команда repo add добавляет репозиторий в stplr, если он еще не существует.

Пример:

stplr repo add stplr-repo https://gitea.plemya-x.ru/Plemya-x/stplr-repo.git

repo set-ref

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

Пример:

stplr repo set-ref [опции команды] <имя> <ссылка_на_версию>

repo mirror

Команда repo mirror позволяет управлять зеркалами репозиториев в stplr. Вы можете добавлять новые зеркала, удалять одно или все зеркала для указанного репозитория. Зеркала используются как резервные источники: если основной URL репозитория недоступен, stplr автоматически пробует скачать пакеты с доступных зеркал по порядку, пока не найдёт работающий. Это повышает надёжность.

Вы можете добавлять новые зеркала, удалять одно или все зеркала для указанного репозитория. При удалении можно указать частичный URL или игнорировать отсутствие зеркала.

stplr repo mirror add my-repo https://mirror.example.com  # добавить зеркало для репозитория my-repo
stplr repo mirror rm my-repo https://mirror.example.com # удалить конкретное зеркало из my-repo
stplr repo mirror rm -p my-repo github.com # удалить все зеркала с частичным совпадением github.com
stplr repo mirror clear my-repo # удалить все зеркала из my-repo

config

NAME:
stplr config - Управление конфигурацией

USAGE:
stplr config command [command options] [arguments...]

COMMANDS:
show Показать конфигурацию
set Установить значение в конфигурации
get Получить значение из конфигурации
help, h Shows a list of commands or help for one command

OPTIONS:
--help, -h Показать справку

config show

Показать конфигурацию

$ stplr config show
rootCmd: sudo
useRootCmd: true
pagerStyle: github
ignorePkgUpdates: []
repo:
- name: plemya-x-repo
url: https://gitea.plemya-x.ru/Plemya-x/stplr-repo.git
ref: ""
mirrors: []
autoPull: true
logLevel: INFO

config set

Установить значение в конфигурации

stplr config set rootCmd doas
Успешно установлено rootCmd = doas

config get

Получить значение из конфигурации

stplr config get rootCmd
doas



build

Команда build собирает пакет с использованием скрипта сборки Staplerfile в текущем каталоге. Путь к скрипту можно изменить с помощью флага -s.

Пример:

# Собрать локальный пакет (например, перед добавлением в репозиторий)
stplr build -s ./Staplerfile
# Собрать пакет из репозитория
stplr build -p repo/pkg

Также можно воспользоваться вспомогательным инструментом stplr-spec.

stplr-spec clean-build 

Кросс-упаковка для других дистрибутивов

Вы можете создавать пакеты для различных дистрибутивов, устанавливая переменные окружения STPLR_DISTRO и STPLR_PKG_FORMAT

Примеры:

STPLR_DISTRO=arch     STPLR_PKG_FORMAT=archlinux stplr build
STPLR_DISTRO=alpine STPLR_PKG_FORMAT=apk stplr build
STPLR_DISTRO=opensuse STPLR_PKG_FORMAT=rpm stplr build
STPLR_DISTRO=debian STPLR_PKG_FORMAT=deb stplr build

WORK IN PROGRESS

STPLR_DISTRO

Переменная окружения STPLR_DISTRO должна быть установлена в дистрибутив, для которого должен быть собран пакет. Значения должны совпадать с полем ID в /etc/os-release или /usr/lib/os-release.

Примеры значений:

    arch
alpine
opensuse
debian
STPLR_PKG_FORMAT

Переменная окружения STPLR_PKG_FORMAT должна быть установлена в формат упаковки, который следует использовать.

Допустимые значения:

    archlinux
apk
rpm
deb
STPLR_ARM_VARIANT

Переменная окружения STPLR_ARM_VARIANT указывает, для какого варианта ARM следует собирать, если stplr работает на ARM-системе. Возможные значения включают:

    arm5
arm6
arm7