#!/usr/bin/env bash ENABLED=yes [[ ${ENABLED} == "yes" ]] || exit 0 DEBUGMODE=no SOURCE=/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 SOURCE=/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0 SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null SOURCE=${SYSCONF}/update; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null debug_mode "$0" "$@" ## Настройка подключения репозиториев ## REPOSITORY[]=disable | ::,,..., ## # Произвольное имя репозитория. Обязательный ## disable # Отключить отдин из репозиториев по умолчанию: core,extra,community,multilib,ublinux,modules ## # Уровень проверки подписи репозитория, можно выбрать одну из основных и вторую из дополнительных, разделитель запятая. Не обязательный ## # Последовательность имеет значение, т.к. накладываются правила каскадно. По умолчанию: Required,DatabaseOptional ## Never # Проверка подписи выполняться не будет. Основная ## PackageNever # Только для пакетов. Дополнительная ## DatabaseNever # Только для базы данных. Дополнительная ## Optional # Подписи будут проверяться при их наличии, но неподписанные базы данных и пакеты также будут приниматься. Основная ## PackageOptional # Только для пакетов. Дополнительная ## *DatabaseOptional # Только для базы данных. Дополнительная ## *Required # Подписи будут необходимы для всех пакетов и баз данных. Основная ## PackageRequired # Только для пакетов. Дополнительная ## DatabaseRequired # Только для базы данных. Дополнительная ## TrustedOnly # Если подпись проверяется для пакетов и базы, она должна находиться в связке ключей и быть полностью доверенной; маргинальное доверие не применимо ## PackageTrustedOnly # Если подпись проверяется только для пакетов ## DatabaseTrustedOnly # Если подпись проверяется только для базы данных ## TrustAll # Если подпись проверена, она должна находиться в связке ключей, но ей не требуется назначать уровень доверия (например, неизвестное или предельное доверие) ## PackageTrustAll # Если подпись проверена только для пакетов ## DatabaseTrustAll # Если подпись проверена только для базы данных ## # Уровень использования этого репозитория. Не обязательный ## *All # Включать все перечисленные функции для репозитория. Это значение по умолчанию ## Sync # Включать обновления для этого репозитория ## Search # Включать поиск этого репозитория ## Install # Включать установку пакетов из этого репозитория во время операции --sync ## Upgrade # Позволить этому репозиторию быть действительным источником пакетов при выполнении --sysupgrade ## # Полный URL-адрес места, где можно найти базу данных, пакеты и подписи (если доступны) для этого репозитория. Обязательный ## # Возможно указать несколько, через запятую. ## # Если указан доступный файл, то подключить как дополнительный файл расширения конфигурации ## file:// # URL префикс для репозитория в каталоге ## ftp:// # URL префикс для репозитория FTP ## http:// # URL префикс для репозитория HTTP ## https:// # URL префикс для репозитория HTTPS ## REPOSITORY[modules]=::http://192.168.0.1:8080/repo/2204 ## REPOSITORY[webmyrepo]=never::http://myweb.org/myrepo ## REPOSITORY[localmyrepo]=never::file:///home/myrepo exec_repository(){ true } ## Опубликовать локальный репозиторий в локальной сети, подключиться к сети распределённых репозиториев. ## При установке пакета пакет ищется в распределённой сети репозиториев и устанавливается самой последней доступной версией. ## REPOPUBLIC_NET=,..., ## # Подключенное имя репозитория, например: core,extra,community,multilib,ublinux,modules ## all # Если name_repo=all, то опубликовать все подключенные репозитории ## REPOPUBLIC_NET=all ## REPOPUBLIC_NET=modules exec_repopublic_net(){ true } ## Опубликовать локальный репозиторий в виде локального WEB ресурса ## REPOPUBLIC_WEB[]=enable|disable,listing:::: ## # Путь до каталога репозитория, который будет опубликован ## enable # Включить публикацию ## disable # Выключить публикацию ## listing # Включить WEB обозреватель файлов. Не обязятельный ## # Порт по которому доступен репозиторий. По умолчанию: 8080. Не обязательный ## # Параметры авторизации, имя пользователя. Не обязательный ## # Параметры авторизации, открытый пароль или тип хеша. Не обязательный ## password # Не зашифрованный пароль ## sha256 # Использовать зашифрованный пароль SHA256 ## sha512 # Использовать зашифрованный пароль SHA512 ## # Параметры авторизации, зашифроваггый пароль SHA256 или SHA512. Не обязательный ## REPOPUBLIC_WEB[/home/myrepo]=enable exec_repopublic_web(){ true } ## Опубликовать ленивое зеркало подключенных репозиториев в виде локального WEB ресурса. ## Получая запрос от пользователя, загружает с удалённого репозитория пакет и сохраняет в кеше передавая его пользователю. ## REPOPUBLIC_CACHE[]=enable|disable::@,...,@ ## # Путь до каталога файлов кеша, если не указан, то по умолчанию: /mnt/livedata/ublinux-data/repopublic_cache ## enable # Включить публикацию ## disable # Выключить публикацию ## # Порт по которому доступен репозиторий. По умолчанию: 8080. Не обязательный ## ## # Произвольное имя репозитория ## # Полный адрес репозитория URL или файл ## # Если не указано @, то по умолчанию системные /etc/pacman.d/mirrorlist ## # Возможно указать несколько, через запятую. ## # Файл списка зеркал, подключается как список зеркал с синтаксисом /etc/pacman.d/mirrorlist ## # Важно: в подключенном списке не должно быть адреса текущего сервера ## http:// # URL префикс для репозитория на HTTP ## https:// # URL префикс для репозитория на HTTPS ## REPOPUBLIC_CACHE[/mnt/livedata/ublinux-data/repopublic_cache]=enable ## REPOPUBLIC_CACHE[/mnt/livedata/ublinux-data/repopublic_cache]=enable:80:myrepo@http://192.168.0.1:8080/repo/2204 exec_repopublic_cache(){ true } ## Настройка автообновления системы ## AUTOUPDATE=enable | :: ## enable # Включает автообновление с параметрами modsys:boot:core,extra,community,multilib,ublinux,modules ## # Режимы обновления ## *modsys # Вначале обновлять все модули и после систему ## module # Обновлять только модули ## system # Обновлять всё в порядке указанных репозиториев ## # Интервал обновления ## *boot # Каждую загрузку ## 12h # Каждые 12 часов ## 7d # Каждые 7 дней ## 1m # Один раз в месяц ## # Имена репозиториев с которых будет происходить обновление. Если не указано, то по умолчанию: core,extra,community,multilib,ublinux,modules ## AUTOUPDATE=enable exec_autoupdate(){ true } ################ ##### MAIN ##### ################ # Если файл подключен как ресурс с функциями, то выйти return 0 2>/dev/null && return 0 if [[ -z $@ ]]; then while read -ru3 FUNCTION; do $"${FUNCTION##* }" done 3< <(declare -F | grep "declare -f exec_") else while [[ $# -gt 0 ]]; do declare -f ${1} &>/dev/null && FUNCTION+="; ${1}" && shift || { FUNCTION+=" '${1}'" && shift; } done eval ${FUNCTION#*; } fi