New functions 43-repository

master
Dmitry Razumov 2 years ago
parent a1ac34e9eb
commit d0553e9f6d
Signed by: asmeron
GPG Key ID: 50BC1DB583B79706

@ -8,6 +8,8 @@ declare -A JOURNALD
declare -A SYSTEMD_COREDUMP
declare -A DOMAIN
declare -A REPOSITORY
declare -A REPOPUBLIC_CACHE
declare -A AUTOUPDATE
##rc.desktop/all/* is launching when desktop is ready
@ -246,4 +248,13 @@ REPOSITORY[multilib]=/etc/pacman.d/mirrorlist
REPOSITORY[modules]=/etc/pacman.d/mirrorlist
#REPOSITORY[ublinux]=/etc/pacman.d/mirrorlist
REPOPUBLIC_CACHE[port]="8080"
REPOPUBLIC_CACHE[cache_dir]="/memory/layer-base/1/repopublic_cache"
REPOPUBLIC_CACHE[purge_files_after]="0"
REPOPUBLIC_CACHE[download_timeout]="3600"
REPOPUBLIC_CACHE[user_agent]="repopublic/1.0"
AUTOUPDATE[mode]=modsys
AUTOUPDATE[interval]=boot,7d
UBPILE_SECRET_KEY="4a6ed27e0434490028ff63b11f12fb7c"

@ -1432,6 +1432,7 @@ ubconfig_exec_system(){
REPOSITORY\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.local.d/43-repository exec_01_repository "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;;
REPOPUBLIC_NET) ${ROOTFS}/usr/lib/ublinux/rc.local.d/43-repository exec_02_repopublic_net "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;;
REPOPUBLIC_WEB\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.local.d/43-repository exec_03_repopublic_web "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;;
REPOPUBLIC_CACHE) ${ROOTFS}/usr/lib/ublinux/rc.local.d/43-repository exec_04_repopublic_cache "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;;
REPOPUBLIC_CACHE\[*\]) ${ROOTFS}/usr/lib/ublinux/rc.local.d/43-repository exec_04_repopublic_cache "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;;
AUTOUPDATE) ${ROOTFS}/usr/lib/ublinux/rc.local.d/43-repository exec_autoupdate "${COMMAND_MODE_VAR}" "${NAME_VAR}=${VALUE_VAR}" ;;
*) NO_FIND_EXCUTE=1 ;;

@ -12,11 +12,12 @@ SOURCE=${SYSCONF}/update; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null
debug_mode "$0" "$@"
## Настройка подключения репозиториев
## REPOSITORY=disable|enable
## REPOSITORY=disable|enable|only
## *disable # Отключить управление списком репозиториев, по умолчанию
## # Используются репозитории из пакета pacman, по умолчанию: core,extra,community,multilib,modules
## enable # Включить управление списком репозиториев
## # Используются системные репозитории core,extra,community,multilib,modules и указанные в параметре REPOSITORY[*]
## # Если не указаны дополнитеьные репозитории в параметре REPOSITORY[*] и включен любой режим песочницы, то активен только репозиторий 'modules'
## only # Включить управление списком репозиториев
## # Используются только репозитории указанные в параметре REPOSITORY[*]
## Порядок указания репозиториев важен
@ -56,31 +57,44 @@ debug_mode "$0" "$@"
## Install # Включать установку пакетов из этого репозитория во время операции --sync
## Upgrade # Позволить этому репозиторию быть действительным источником пакетов при выполнении --sysupgrade
## disable # Временно отключить управление репозиторием, либо после = указать - пример: REPOSITORY[modules]=-/etc/pacman.d/mirrorlist
## Если требуется создать файл зеркала в пакетном режиме, то пример: ubconfig set [/etc/pacman.d/ub-mirrorlist] "|SERVER=http://repo.ublinux.ru/2405/\$repo/\$arch" "|SERVER=https://repo.ublinux.ru/2405/\$repo/\$arch"
##
## REPOSITORY[core]=/etc/pacman.d/mirrorlist;;;disable
## REPOSITORY[modules]="https://repo.ublinux.ru/2405/\$repo/\$arch"
## REPOSITORY[modules]='https://repo.ublinux.ru/2405/$repo/$arch'
## REPOSITORY[mymodules]=http://192.168.0.1:8080/repo/2204;;;disable
## REPOSITORY[webmyrepo]=http://myweb.org/myrepo;never
## REPOSITORY[localmyrepo]=file:///home/myrepo;never;All
## REPOSITORY[webmyrepo]=http://myweb.org/myrepo;Never
## REPOSITORY[localmyrepo]=file:///home/myrepo;Never;All
## REPOSITORY[myrepo]=/home/myrepo/mirrorlist
exec_01_repository(){
repository_enable_only(){
repository_enable(){
local FILE_SOURCE_DEFAULT="/usr/lib/ublinux/default"
local FILE_SOURCE_UPDATE="${SYSCONF}/update"
local FILE_PACMAN_CONF="${ROOTFS}/etc/pacman.conf"
local REPOSITORY_LIST=
local PACMAN_CONF_DATA=
local ARG_UBCONFIG=
# Удалим все действующие репозитории
awk -i inplace -v b=2 '/^\[.*\]$/{f=1; c++} !(f && c>=b); /^\s*$/{f=0}' ${FILE_PACMAN_CONF}
# Удалить в конце файла все пустые строки
sed -e :a -e '/^\n*$/{$d;N;ba' -e '}' -i ${FILE_PACMAN_CONF}
[[ ${REPOSITORY[0]} == "enable" ]] && REPOSITORY_LIST+=$(grep -oE "^[[:blank:]]*REPOSITORY\[.*]=" ${FILE_SOURCE_DEFAULT} 2>/dev/null)$'\n'
REPOSITORY_LIST+=$(grep -oE "^[[:blank:]]*REPOSITORY\[.*]=" ${FILE_SOURCE_UPDATE} 2>/dev/null)
local REPOSITORY_LIST= REPOSITORY_LIST_DEFAULT= REPOSITORY_LIST_SOURCE=
REPOSITORY_LIST_SOURCE=$(grep -oE "^[[:blank:]]*REPOSITORY\[.*\]" ${FILE_SOURCE_UPDATE} 2>/dev/null)
if [[ ${REPOSITORY[0]} == "enable" ]]; then
# Если включено управление репозиториями 'enable' + не заданы пользовательские репозитории + режим песочницы, то включить только модули
if [[ ${SYSTEMBOOT_STATEMODE,,} == @("sandbox"|"sandbox_ram_home"|"sandbox_hdd"|"sandbox_hdd_home") && ${REPOSITORY_LIST_SOURCE} == "" ]]; then
REPOSITORY_LIST_DEFAULT=$(grep -oE "^[[:blank:]]*REPOSITORY\[modules\]" ${FILE_SOURCE_DEFAULT} 2>/dev/null)$'\n'
else
REPOSITORY_LIST_DEFAULT=$(grep -oE "^[[:blank:]]*REPOSITORY\[.*\]" ${FILE_SOURCE_DEFAULT} 2>/dev/null)$'\n'
fi
ARG_UBCONFIG="--default"
fi
REPOSITORY_LIST="${REPOSITORY_LIST_DEFAULT}${REPOSITORY_LIST_SOURCE}"
local REPOSITORY_NAME= REPOSITORY_VAR=
while IFS='=' read -u3 REPOSITORY_NAME REPOSITORY_VAR; do
while IFS='' read -u3 REPOSITORY_NAME; do
[[ ${REPOSITORY_NAME} =~ ^.*'['(.*)']' ]] && REPOSITORY_NAME=${BASH_REMATCH[1]} || continue
[[ -n ${REPOSITORY[${REPOSITORY_NAME}]} ]] \
&& while IFS=';' read -u4 REPOSITORY_SERVER_PATHS REPOSITORY_SIGLEVEL REPOSITORY_USAGE REPOSITORY_DISABLE NULL; do
REPOSITORY_VAR=$(ubconfig --quiet --raw ${ARG_UBCONFIG} --source system get [update] REPOSITORY[${REPOSITORY_NAME}] 2>/dev/null)
[[ -n ${REPOSITORY_VAR} ]] \
&& while IFS=';' read -r -u4 REPOSITORY_SERVER_PATHS REPOSITORY_SIGLEVEL REPOSITORY_USAGE REPOSITORY_DISABLE NULL; do
[[ ${REPOSITORY_SERVER_PATHS} =~ ^("disable"|"-") ]] && continue
[[ ${REPOSITORY_DISABLE} = @("disable"|"off"|"no") ]] && continue
PACMAN_CONF_DATA+=$'\n'
@ -88,7 +102,7 @@ exec_01_repository(){
[[ -n ${REPOSITORY_SIGLEVEL} ]] && PACMAN_CONF_DATA+="SigLevel = ${REPOSITORY_SIGLEVEL}"$'\n'
[[ -n ${REPOSITORY_USAGE} ]] && PACMAN_CONF_DATA+="Usage = ${REPOSITORY_USAGE}"$'\n'
[[ -n ${REPOSITORY_SERVER_PATHS} ]] \
&& while IFS= read -u5 REPOSITORY_SERVER_PATH; do
&& while IFS= read -r -u5 REPOSITORY_SERVER_PATH; do
if [[ ${REPOSITORY_SERVER_PATH} =~ ^"/" ]]; then
PACMAN_CONF_DATA+="Include = ${REPOSITORY_SERVER_PATH}"$'\n'
elif [[ ${REPOSITORY_SERVER_PATH} =~ ^("file:"|"ftp:"|"http:"|"https:") ]]; then
@ -96,7 +110,8 @@ exec_01_repository(){
fi
done 5<<< "${REPOSITORY_SERVER_PATHS//,/$'\n'}"
#echo "${REPOSITORY_NAME} == ${REPOSITORY_SERVER_PATHS} :: ${REPOSITORY_SIGLEVEL} :: ${REPOSITORY_USAGE} :: ${REPOSITORY_DISABLE} :: ${NULL}"
done 4<<< "${REPOSITORY[${REPOSITORY_NAME}]}"
done 4<<< "${REPOSITORY_VAR}"
# awk - Из списка удалить вторые дубликаты, не меняя порядок
done 3< <(awk -v RS="[\n]+" '!n[$0]++' <<< "${REPOSITORY_LIST}")
echo "${PACMAN_CONF_DATA}" >> ${FILE_PACMAN_CONF}
}
@ -114,14 +129,14 @@ exec_01_repository(){
if [[ ${COMMAND} == @("set="|"set+="|"set++=") ]] && [[ ${#REPOSITORY[@]} != 0 ]]; then
if [[ ${REPOSITORY[0]} == @("enable"|"only") ]]; then
repository_enable_only
repository_enable
elif [[ ${REPOSITORY[0]} == "disable" ]]; then
repository_disable
ubconfig --noexecute remove [update] REPOSITORY
ubconfig --quiet --nocolor --noexecute remove [update] REPOSITORY
fi
elif [[ ${COMMAND} == @("set-="|"set--="|"remove") ]]; then
if [[ ${REPOSITORY[0]} == @("enable"|"only") ]]; then
repository_enable_only
repository_enable
elif [[ ${REPOSITORY_NAME} == "REPOSITORY" ]]; then
# Удаление параметра REPOSITORY= . Отключить управление репозиториями
repository_disable
@ -131,18 +146,18 @@ exec_01_repository(){
## pacredir (https://github.com/eworm-de/pacredir)
## Опубликовать локальный репозиторий в локальной сети и подключиться к сети распределённых репозиториев
## При установке пакета пакет ищется в распределённой сети репозиториев и устанавливается самой последней доступной версией
## При установке, пакет ищется в распределённой сети репозиториев и устанавливается самой последней доступной версией
## REPOPUBLIC_NET=disable|no|none|enable|yes,db,<name_repos_1>,...,<name_repos_n>
## disable|no|none # Отключить все репозитории от сети распределённых репозиториев
## enable|yes # Подключить все репозитории к сети распределённых репозиториев
## enable|yes # Подключить репозитории к сети распределённых репозиториев. Если не указаны конкретные имена, то будут подключены все
## db # Получать БД пакетов pacman от сети распределённых репозиториев
## <name_repo> # Подключенное имя репозитория, например: core,extra,community,multilib,modules
## <name_repo> # Подключить только выбранные имена репозиториев, например: core,extra,community,multilib,modules
## REPOPUBLIC_NET=enable,db
## REPOPUBLIC_NET=db,community,modules
## REPOPUBLIC_NET=enable,db,community,modules
exec_02_repopublic_net(){
disable_pacredir(){
systemctl disable pacserve.service pacredir.service
systemctl stop pacserve.service pacredir.service
systemctl --quiet disable pacserve.service pacredir.service
systemctl --quiet stop pacserve.service pacredir.service
sed -E "/Include = \/etc\/pacman.d\/pacredir/d" -i ${FILE_PACMAN_CONF}
}
[[ $1 == @("set="|"set+="|"set++="|"set-="|"set--="|"remove") ]] && COMMAND=$1 && shift
@ -151,32 +166,36 @@ exec_02_repopublic_net(){
local FILE_PACREDIR_CONF="${ROOTFS}/etc/pacman.d/pacredir"
if [[ ${COMMAND} == @("set="|"set+="|"set++=") ]] && [[ ${#REPOPUBLIC_NET[@]} != 0 ]]; then
local DB_CACHE=
local REPOPUBLIC_NET_DISABLE=
local REPOPUBLIC_NET_ENABLE=
local REPOPUBLIC_NET_ENABLE_MANUAL=
local DATA_PACMAN_CONF=$(cat ${FILE_PACMAN_CONF})
#sed -E "/Include = \/etc\/pacman.d\/pacredir/d" <<< ${DATA_PACMAN_CONF}
local DATA_PACMAN_CONF=${DATA_PACMAN_CONF//$'\n'Include = \/etc\/pacman.d\/pacredir/}
while IFS= read -u3 REPOPUBLIC_NET_REPOSITORY; do
if [[ ${REPOPUBLIC_NET_REPOSITORY,,} == @("disable"|"no"|"none") ]]; then
# Отключить управление
REPOPUBLIC_NET_DISABLE=yes
REPOPUBLIC_NET_ENABLE=
break
elif [[ ${REPOPUBLIC_NET_REPOSITORY,,} == @("enable"|"yes") ]]; then
# Включить управление
REPOPUBLIC_NET_ENABLE=yes
elif [[ ${REPOPUBLIC_NET_REPOSITORY,,} == "db" ]]; then
# Включить запрос БД pacman из кеш сервера
DB_CACHE=yes
elif [[ ${REPOPUBLIC_NET_REPOSITORY,,} == @("enable"|"yes") ]]; then
# Добавить ко всем репозиториям в pacman.conf: Include = /etc/pacman.d/pacredir
DATA_PACMAN_CONF=$(sed -E "0,/^\[.*\]$/! s/(^\[.*\]$)/\1\nInclude = \/etc\/pacman.d\/pacredir/" <<< ${DATA_PACMAN_CONF}) #"
else
REPOPUBLIC_NET_ENABLE="manual"
# Добавить к указанному репозиторию, работать через кеш сервер
DATA_PACMAN_CONF=$(sed -E "/\[${REPOPUBLIC_NET_REPOSITORY}\]/a Include = \/etc\/pacman.d\/pacredir" <<< ${DATA_PACMAN_CONF})
fi
done 3<<< "${REPOPUBLIC_NET//,/$'\n'}"
if [[ -n ${REPOPUBLIC_NET_DISABLE} ]]; then
if [[ -z ${REPOPUBLIC_NET_ENABLE} ]]; then
disable_pacredir
else
# Если не укзаны репозитории, то добавить ко всем репозиториям в pacman.conf: Include = /etc/pacman.d/pacredir
[[ ${REPOPUBLIC_NET_ENABLE} == "manual" ]] && DATA_PACMAN_CONF=$(sed -E "0,/^\[.*\]$/! s/(^\[.*\]$)/\1\nInclude = \/etc\/pacman.d\/pacredir/" <<< ${DATA_PACMAN_CONF}) #"
[[ -n ${DB_CACHE} ]] && sed -E "s/^#(Server = )/\1/" -i ${FILE_PACREDIR_CONF} || sed -E "s/^(Server = )/#\1/" -i ${FILE_PACREDIR_CONF}
echo "${DATA_PACMAN_CONF}" > ${FILE_PACMAN_CONF}
systemctl restart pacserve.service pacredir.service
systemctl --quiet restart pacserve.service pacredir.service
fi
elif [[ ${COMMAND} == @("set-="|"set--="|"remove") ]]; then
disable_pacredir
@ -192,7 +211,7 @@ exec_02_repopublic_net(){
## enable|yes # Включить публикацию
## disable|no|none # Выключить публикацию
## listing # Включить WEB обозреватель файлов. Не обязятельный
## <port> # Порт по которому доступен репозиторий. По умолчанию: 8080. Не обязательный
## <port> # Порт по которому доступен репозиторий. По умолчанию: 80. Не обязательный
## <auth_name> # Параметры авторизации, имя пользователя. Не обязательный
## <auth_pass> # Параметры авторизации, открытый пароль или тип хеша. Не обязательный
## <password> # Не зашифрованный пароль
@ -295,42 +314,278 @@ exec_03_repopublic_web(){
## pacoloco (https://github.com/anatol/pacoloco)
## Опубликовать ленивое зеркало подключенных репозиториев в виде локального WEB ресурса.
## Получая запрос от пользователя, загружает с удалённого репозитория пакет и сохраняет в кеше передавая его пользователю.
## REPOPUBLIC_CACHE[<path>]=enable|disable:<port>:<server_name_1>@<server_url_1>,...,<server_name_n>@<server_url_n>
## <path> # Путь до каталога файлов кеша, если не указан, то по умолчанию: /mnt/livedata/ublinux-data/repopublic_cache
## enable # Включить публикацию
## disable # Выключить публикацию
## <port> # Порт по которому доступен репозиторий. По умолчанию: 8080. Не обязательный
## REPOPUBLIC_CACHE=enable|yes|disable|no|none
## enable|yes # Включить ленивое зеркало
## disable|no|none # Выключить ленивое зеркало
##
## Если задано только "REPOPUBLIC_CACHE=enable" без указания рпозиториев пользователем, то создаётся зеркало по умолчанию, где "2204" версия текущего дистрибутива:
## : REPOPUBLIC_CACHE[ublinux_2405]=url@http://repo.ublinux.ru/2405,url@https://repo.ublinux.ru/2405
## На клиенте необходимо указать:
## либо в файле "/etc/pacman.conf" у каждого репозитория: Server=http://ipadress:8080/repo/ublinux_2204/$repo/$arch
## либо в файле "/etc/pacman.d/mirrorlist" для всех репозиториев: Server=http://ipadress:8080/repo/ublinux_2204/$repo/$arch
## либо параметры в конфигурации REPOSITORY[core]='http://ipadress:8080/repo/ublinux_2204/$repo/$arch'
##
## <server_name> # Произвольное имя репозитория
## <server_url> # Полный адрес репозитория URL или файл
## # Если не указано <server_name>@<server_url>, то по умолчанию системные /etc/pacman.d/mirrorlist
## # Возможно указать несколько, через запятую.
## <file> # Файл списка зеркал, подключается как список зеркал с синтаксисом /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
## REPOPUBLIC_CACHE[<var>]=<value>
## <var>: # Параметр управления, возможные варианты:
## port # Порт сервиса, по умолчанию: 80
## cache_dir # Каталог кэша, по умолчанию: /memory/layer-base/1/repopublic_cache
## purge_files_after # Продолжительность бездействия (в секундах), по истечении которой файл должен быть удален из кэша, по умолчанию: 360000
## # =360000 секунд или 100 часов, =0 никогда не выполнять
## download_timeout # Таймаут (в секундах) для загрузки интернет-кэша, по умолчанию: 3600
## http_proxy # Работать через прокси. Пример: http://foo.company.com:8989
## user_agent # Пользовательский агент, используемый для извлечения файлов из репозиториев, по умолчанию: repopublic/1.0
## prefetch.cron # Cтандартное выражение cron, пример: 0 0 3 * * * *
## # (https://en.wikipedia.org/wiki/Cron#CRON_expression) (https://github.com/gorhill/cronexpr#implementation )
## prefetch.ttl_unaccessed_in_days # Количество дней подряд, в течение которых не обновляются системы в сети, по умолчанию: 30
## # Удалять и останавливать пакеты предварительной выборки (и ссылки на базы данных), если они не загружены после ttl_unaccessed_in_days дней, после обновления
## prefetch.ttl_unupdated_in_days # Количество дней подряд, в течение которых не было запрошено обновление, по умолчанию: 300
## # Удалять и останавливать пакеты предварительной выборки, которые не были обновлены в исходной версии или запрошены в течение ttl_unupdated_in_days
## REPOPUBLIC_CACHE[<repository>]=<type>@<url>
## <repository> # Имя репозитория, для подключения клиентов
## <type>: # Тип подключаемого репозитория
## url # Вэб ссылка на репозиторий
## http_proxy # Прокси-сервер, может быть включен для каждого репозитория, затеняя глобальный 'http_proxy'
## mirrorlist # Файл зеркал. Будьте осторожны! Убедитесь, что URL текущего сервера НЕ включен в этот файл!
## <url> # Ресурс, можно указать несколько черз зпятую (,)
## REPOPUBLIC_CACHE[ublinux_2405]="url@http://repo.ublinux.ru/2405,url@https://repo.ublinux.ru/2405"
## REPOPUBLIC_CACHE[myrepo_x86_64]="url@http://my.repo.ru/myrepo/x86_64"
## REPOPUBLIC_CACHE[newrepo]="http_proxy@http://proxy.localnet.ru:8080,url@http://192.168.1.1/newrepo/x86_64"
## REPOPUBLIC_CACHE[ublinux-reflector]="mirrorlist@/etc/pacman.d/reflector_mirrorlist"
exec_04_repopublic_cache(){
enable_pacoloco(){
local FILE_PACOLOCO_CONF="${ROOTFS}/etc/pacoloco.yaml"
local REPOPUBLIC_CACHE_REPO_MANUAL=
[[ -d ${REPOPUBLIC_CACHE[cache_dir]} ]] || install -dm755 ${REPOPUBLIC_CACHE[cache_dir]}
chown -R pacoloco:pacoloco ${REPOPUBLIC_CACHE[cache_dir]}
true > ${FILE_PACOLOCO_CONF}
[[ ${REPOPUBLIC_CACHE[port]} ]] && yq '.port = '${REPOPUBLIC_CACHE[port]}'' --inplace ${FILE_PACOLOCO_CONF}
[[ ${REPOPUBLIC_CACHE[cache_dir]} ]] && yq '.cache_dir = "'${REPOPUBLIC_CACHE[cache_dir]}'"' --inplace ${FILE_PACOLOCO_CONF}
[[ ${REPOPUBLIC_CACHE[purge_files_after]} ]] && yq '.purge_files_after = '${REPOPUBLIC_CACHE[purge_files_after]}'' --inplace ${FILE_PACOLOCO_CONF}
[[ ${REPOPUBLIC_CACHE[download_timeout]} ]] && yq '.download_timeout = '${REPOPUBLIC_CACHE[download_timeout]}'' --inplace ${FILE_PACOLOCO_CONF}
[[ ${REPOPUBLIC_CACHE[user_agent]} ]] && yq '.user_agent = "'${REPOPUBLIC_CACHE[user_agent]}'"' --inplace ${FILE_PACOLOCO_CONF}
[[ ${REPOPUBLIC_CACHE[http_proxy]} ]] && yq '.http_proxy = "'${REPOPUBLIC_CACHE[http_proxy]}'"' --inplace ${FILE_PACOLOCO_CONF}
[[ ${REPOPUBLIC_CACHE[prefetch.cron]} ]] && yq '.prefetch.cron = "'${REPOPUBLIC_CACHE[prefetch.cron]}'"' --inplace ${FILE_PACOLOCO_CONF}
[[ ${REPOPUBLIC_CACHE[prefetch.ttl_unaccessed_in_days]} ]] && yq '.prefetch.ttl_unaccessed_in_days = '${REPOPUBLIC_CACHE[prefetch.ttl_unaccessed_in_days]}'' --inplace ${FILE_PACOLOCO_CONF}
[[ ${REPOPUBLIC_CACHE[prefetch.ttl_unupdated_in_days]} ]] && yq '.prefetch.ttl_unupdated_in_days = '${REPOPUBLIC_CACHE[prefetch.ttl_unupdated_in_days]}'' --inplace ${FILE_PACOLOCO_CONF}
while IFS= read -u3 SELECT_REPOPUBLIC_CACHE; do
if [[ ${SELECT_REPOPUBLIC_CACHE,,} == @(0|"port"|"cache_dir"|"purge_files_after"|"download_timeout"|"user_agent"|"http_proxy"|"prefetch.cron"|"prefetch.ttl_unaccessed_in_days"|"prefetch.ttl_unupdated_in_days") ]]; then
# Название параметра, не репозиторий
true
else
# Имя репозитория
REPOPUBLIC_CACHE_REPO_MANUAL=yes
REPOPUBLIC_CACHE_URL_LIST=()
while IFS= read -u4 SELECT_REPOPUBLIC_CACHE_URL; do
if [[ ${SELECT_REPOPUBLIC_CACHE_URL} =~ (.*)"@"(.*) ]]; then
REPOPUBLIC_CACHE_TYPE=${BASH_REMATCH[1]}
REPOPUBLIC_CACHE_URL=${BASH_REMATCH[2]}
if [[ ${REPOPUBLIC_CACHE_TYPE} == @("url"|"urls") ]]; then
REPOPUBLIC_CACHE_URL_LIST+=(${REPOPUBLIC_CACHE_URL})
else
yq -p yaml -o yaml '.repos.'${SELECT_REPOPUBLIC_CACHE}'.'${REPOPUBLIC_CACHE_TYPE}' = "'${REPOPUBLIC_CACHE_URL}'"' --inplace ${FILE_PACOLOCO_CONF}
fi
fi
done 4<<< "${REPOPUBLIC_CACHE[${SELECT_REPOPUBLIC_CACHE}]//,/$'\n'}"
if [[ ${#REPOPUBLIC_CACHE_URL_LIST[@]} -ge 2 ]]; then
REPOPUBLIC_CACHE_TYPE="urls"
for SELECT_REPOPUBLIC_CACHE_URL in ${REPOPUBLIC_CACHE_URL_LIST[@]}; do
yq -p yaml -o yaml '.repos.'${SELECT_REPOPUBLIC_CACHE}'.'${REPOPUBLIC_CACHE_TYPE}' += ["'${SELECT_REPOPUBLIC_CACHE_URL}'"]' --inplace ${FILE_PACOLOCO_CONF}
done
else
REPOPUBLIC_CACHE_TYPE="url"
yq -p yaml -o yaml '.repos.'${SELECT_REPOPUBLIC_CACHE}'.'${REPOPUBLIC_CACHE_TYPE}' = "'${REPOPUBLIC_CACHE_URL}'"' --inplace ${FILE_PACOLOCO_CONF}
fi
fi
done 3< <(printf "%s\n" "${!REPOPUBLIC_CACHE[@]}")
if [[ ${REPOPUBLIC_CACHE_REPO_MANUAL} == "" ]]; then
VERSION_ID=$(grep "VERSION_ID" ${ROOTFS}/etc/os-release | cut -d= -f2)
yq -p yaml -o yaml \
'.repos.ublinux_'${VERSION_ID}'.urls += ["http://repo.ublinux.ru/'${VERSION_ID}'"] |
.repos.ublinux_'${VERSION_ID}'.urls += ["https://repo.ublinux.ru/'${VERSION_ID}'"]' --inplace ${FILE_PACOLOCO_CONF}
fi
systemctl --quiet restart pacoloco.service
}
disable_pacoloco(){
systemctl --quiet disable pacoloco.service
systemctl --quiet stop pacoloco.service
find ${ROOTFS}/memory/bundles -maxdepth 3 -path "*/etc/*" -type f -name "pacoloco.yaml" -exec cp -af {} "/etc/" \; -quit
}
[[ $1 == @("set="|"set+="|"set++="|"set-="|"set--="|"remove") ]] && COMMAND=$1 && shift
[[ -n ${COMMAND} ]] || COMMAND="set="
local PARAM="$@"
if [[ -n ${PARAM} ]]; then
REPOPUBLIC_CACHE_NAME=${PARAM%%=*}
REPOPUBLIC_CACHE_VAR=${PARAM#*=}
fi
if [[ ${COMMAND} == @("set="|"set+="|"set++=") ]] && [[ ${#REPOPUBLIC_CACHE[@]} != 0 ]]; then
if [[ ${REPOPUBLIC_CACHE[0]} == @("enable"|"yes") ]]; then
# Включить управление
enable_pacoloco
elif [[ ${REPOPUBLIC_CACHE[0]} == @("disable"|"no"|"none") ]]; then
# Отключить управление
disable_pacoloco
fi
elif [[ ${COMMAND} == @("set-="|"set--="|"remove") ]]; then
if [[ ${REPOPUBLIC_CACHE[0]} == @("enable"|"yes") ]]; then
# Включить управление
enable_pacoloco
elif [[ ${REPOPUBLIC_CACHE_NAME} == "REPOPUBLIC_CACHE" ]]; then
# Отключить управление
disable_pacoloco
fi
fi
}
## Настройка автообновления системы
## AUTOUPDATE=enable | <mode>:<interval>:<repository>
## enable # Включает автообновление с параметрами modsys:boot:core,extra,community,multilib,ublinux,modules
## <mode> # Режимы обновления
## *modsys # Вначале обновлять все модули и после систему
## module # Обновлять только модули
## AUTOUPDATE=enable
## enable # Включает автообновление. Параметрами по умолчанию: modsys boot core,extra,community,multilib,modules
## Настройка режимов обновления
## AUTOUPDATE[mode]=*modsys|modules|system
## *modsys # Вначале обновлять все модули и после систему. Использует [update] REPOSITORY[modules]=
## modules # Обновлять только модули. Использует [update] REPOSITORY[modules]=
## system # Обновлять всё в порядке указанных репозиториев
## <interval> # Интервал обновления
## Настройка интервала обновления
## AUTOUPDATE[interval]=*boot,30min|12h|*7d|1M
## *boot # Каждую загрузку
## 12h # Каждые 12 часов
## 7d # Каждые 7 дней
## 1m # Один раз в месяц
## <repository> # Имена репозиториев с которых будет происходить обновление. Если не указано, то по умолчанию: core,extra,community,multilib,ublinux,modules
## 30min # Каждые 30 минут, возможно указать любую цифру
## 12h # Каждые 12 часов, возможно указать любую цифру
## *7d # Каждые 7 дней, возможно указать любую цифру
## 1M # Один раз в месяц, возможно указать любую цифру
## Настройка репозиториев обновления
## AUTOUPDATE[repos]=<repository>
## <repository> # Имена репозиториев с которых будет происходить обновление. Если не указано, то по умолчанию системные
## AUTOUPDATE=enable
exec_autoupdate(){
true
enable_autoupdate(){
ONBOOTSEC=
ONACTIVESEC=
AUTOUPDATE_INTERVAL_SEC=
while read -u3 AUTOUPDATE_INTERVAL; do
[[ ${AUTOUPDATE_INTERVAL} == "boot" ]] && ONBOOTSEC="OnBootSec=" || ONACTIVESEC="OnActiveSec="
if [[ ${AUTOUPDATE_INTERVAL} =~ ^([[:digit:]])"min"$ ]]; then
AUTOUPDATE_INTERVAL_SEC="${BASH_REMATCH[1]}min"
elif [[ ${AUTOUPDATE_INTERVAL} =~ ^([[:digit:]])"h"$ ]]; then
AUTOUPDATE_INTERVAL_SEC="${BASH_REMATCH[1]}h"
elif [[ ${AUTOUPDATE_INTERVAL} =~ ^([[:digit:]])"d"$ ]]; then
AUTOUPDATE_INTERVAL_SEC="$((${BASH_REMATCH[1]}*24))h"
elif [[ ${AUTOUPDATE_INTERVAL} =~ ^([[:digit:]])"M"$ ]]; then
AUTOUPDATE_INTERVAL_SEC="$((${BASH_REMATCH[1]}*24*30))h"
fi
done 3<<< ${AUTOUPDATE[interval]//,/$'\n'}
ONUNITACTIVESEC="OnUnitActiveSec=${AUTOUPDATE_INTERVAL_SEC}"
[[ -n ${ONBOOTSEC} ]] & ONBOOTSEC+="${AUTOUPDATE_INTERVAL_SEC}"
[[ -n ${ONACTIVESEC} ]] & ONACTIVESEC+="${AUTOUPDATE_INTERVAL_SEC}"
cat <<-EOF > "${PATH_AUTOUPDATE_SERVICE}"
[Unit]
Description=Automatic Update UBLinux
After=network-online.target
[Service]
Type=simple
SyslogIdentifier=autoupdate
ExecStart=${FILE_LIVE_AUTOUPDATE}
TimeoutStopSec=300
KillMode=process
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
EOF
cat <<-EOF > "${PATH_AUTOUPDATE_TIMER}"
[Unit]
Description=Automatic Update UBLinux
[Timer]
${ONBOOTSEC}
${ONACTIVESEC}
${ONUNITACTIVESEC}
Unit=${AUTOUPDATE_SERVICE}
[Install]
WantedBy=multi-user.target
EOF
systemctl --quiet daemon-reload
systemctl --quiet restart ${AUTOUPDATE_TIMER}
}
disable_autoupdate(){
systemctl --quiet disable ${AUTOUPDATE_TIMER} ${AUTOUPDATE_SERVICE} 2>/dev/null
systemctl --quiet stop ${AUTOUPDATE_TIMER} ${AUTOUPDATE_SERVICE} 2>/dev/null
rm -f "${PATH_AUTOUPDATE_SERVICE}" "${PATH_AUTOUPDATE_TIMER}"
systemctl --quiet daemon-reload
}
[[ $1 == @("set="|"set+="|"set++="|"set-="|"set--="|"remove") ]] && COMMAND=$1 && shift
[[ -n ${COMMAND} ]] || COMMAND="set="
local PARAM="$@"
if [[ -n ${PARAM} ]]; then
AUTOUPDATE_NAME=${PARAM%%=*}
AUTOUPDATE_VAR=${PARAM#*=}
fi
FILE_LIVE_AUTOUPDATE="/usr/lib/ublinux/rc.local.d/43-repository live_autoupdate"
AUTOUPDATE_SERVICE="ubconfig-autoupdate.service"
PATH_AUTOUPDATE_SERVICE="/usr/lib/systemd/system/${AUTOUPDATE_SERVICE}"
AUTOUPDATE_TIMER="ubconfig-autoupdate.timer"
PATH_AUTOUPDATE_TIMER="/usr/lib/systemd/system/${AUTOUPDATE_TIMER}"
if [[ ${COMMAND} == @("set="|"set+="|"set++=") ]]; then
if [[ ${AUTOUPDATE[0]} == @("enable"|"yes") ]]; then
enable_autoupdate
elif [[ ${AUTOUPDATE[0]} == @("disable"|"no") ]]; then
disable_autoupdate
fi
elif [[ ${COMMAND} == @("set-="|"set--="|"remove") ]]; then
if [[ ${AUTOUPDATE[0]} == @("enable"|"yes") ]]; then
enable_autoupdate
elif [[ ${AUTOUPDATE_NAME} == "AUTOUPDATE" ]]; then
disable_autoupdate
fi
fi
}
# Обновление системы, выполняемое сервисом "ubconfig-autoupdate.service" по таймеру "ubconfig-autoupdate.timer"
live_autoupdate(){
autoupdate_only_modules(){
# Обновить систему только из репозитория [modules]
# Соханить параметры до обновления
SAVE_REPOSITORY=$(ubconfig --nocolor --source system get [update] REPOSITORY)
SAVE_REPOSITORY_ARRAY=$(ubconfig --nocolor --source system get [update] REPOSITORY[*])
REPOSITORY_MODULES=$(ubconfig --nocolor --source system get [update] REPOSITORY[modules])
[[ ${REPOSITORY_MODULES} == @(""|"(null)") ]] && REPOSITORY_MODULES="REPOSITORY[modules]=/etc/pacman.d/mirrorlist"
ubconfig --quiet --nocolor --target system set [update] REPOSITORY=disable
ubconfig --quiet --nocolor --target system remove [update] "REPOSITORY[*]"
ubconfig --quiet --nocolor --target system set [update] ${REPOSITORY_MODULES}
ubconfig --quiet --nocolor --target system set [update] REPOSITORY=only
/usr/bin/nice -n 19 /usr/bin/pacman -Syuwq --noconfirm
/usr/bin/nice -n 19 /usr/bin/pacman -Suu --noconfirm
ubconfig --quiet --nocolor --target system set [update] REPOSITORY=disable
ubconfig --quiet --nocolor --target system remove [update] "REPOSITORY[*]"
# Восстановить параметры после обновления
[[ ${SAVE_REPOSITORY} == @(""|"(null)") ]] || ubconfig --quiet --nocolor --target system set [update] ${SAVE_REPOSITORY}
[[ ${SAVE_REPOSITORY_ARRAY} == @(""|"(null)") ]] || ubconfig --quiet --nocolor --target system set [update] ${SAVE_REPOSITORY_ARRAY}
}
if [[ ${AUTOUPDATE[0]} == @("enable"|"yes") ]]; then
FILE_LOG_AUTOUPDATE="/var/log/ubconfig_autoupdate.log"
exec &> >(tee -a "${FILE_LOG_AUTOUPDATE}")
echo
date
if [[ ${AUTOUPDATE[mode]} == "modsys" ]]; then
# Обновить систему из репозитория [modules]
autoupdate_only_modules
# Обновить систему из всех подключеных репозиториев
/usr/bin/nice -n 19 /usr/bin/pacman -Syuwq --noconfirm
/usr/bin/nice -n 19 /usr/bin/pacman -Suu --noconfirm
elif [[ ${AUTOUPDATE[mode]} == "modules" ]]; then
# Обновить систему из репозитория [modules]
autoupdate_only_modules
elif [[ ${AUTOUPDATE[mode]} == "system" ]]; then
# Обновить систему из всех подключеных репозиториев
/usr/bin/nice -n 19 /usr/bin/pacman -Syuwq --noconfirm
/usr/bin/nice -n 19 /usr/bin/pacman -Suu --noconfirm
fi
UPDATE_TIMESTAMP=$(date +'%Y-%m-%d %H:%M')
ubconfig --quiet --nocolor set [update] AUTOUPDATE[timestamp]="${UPDATE_TIMESTAMP}"
#notify_send "Update ${UPDATE_TIMESTAMP}" -i dialog-warning
#notify-send --action 'STOPUPDATE=Остановить обновление' test
fi
}
## Удалить старые версии дубликато пакетов в базе pacman

@ -9,7 +9,7 @@
# UBLinux настройка системы
################################################################################
# How it works.
# How it works
# Краткое описание как работает этот файл конфигурации
# [/path/filename]755 # select file for changing. if its not exists it will be created with 755 permisions
# [/path/filename]a+x # выбор файла для изменений, если файла нет, он будет создан с правами по умолчанию плюс chmod a+x
@ -17,16 +17,20 @@
# # [/bin/bash/] запустит с башем
# # [.] выполнить как часть init
# # [chroot . ] сделать чрут в sysroot и выполнить там
# Parameter=value # it will change string Parameter=* in file to Parameter=value. If there is no parameter the string will be added to end of file.
# Параметр=значение # меняет параметр в файле на нужное значение. Если параметра нет, строка будет добавлена в конец файла.
# +string # add string to end of file in case it's not already in file.
# +строка # добавит строку в файл, если она ещё не прописана в нём.
# |string # add string to end of file in any case.
# |строка # добавит строку в файл без проверки.
# -expression # remove all string with expression (see info sed). symbols .* matches all strings in file.
# -выражение # удаляет строки соответствующие выражению (см info sed). Если указать .* то будут удалены все строки.
# Parameter=value # it will change string Parameter=* in file to Parameter=value. If there is no parameter the string will be added to end of file
# Параметр=значение # меняет параметр в файле на нужное значение. Если параметра нет, строка будет добавлена в конец файла
# +string # add string to end of file in case it's not already in file
# +строка # добавит строку в файл, если она ещё не прописана в нём
# |string # add string to end of file in any case
# |строка # добавит строку в файл без проверки
# -expression # remove all string with expression (see info sed). symbols .* matches all strings in file
# -выражение # удаляет строки соответствующие выражению (см info sed). Если указать .* то будут удалены все строки
################################################################################
# Примеры:
# ubconfig set [/etc/pacman.d/ub-mirrorlist] '|SERVER=http://repo.ublinux.ru/2405/$repo/$arch' '|SERVER=https://repo.ublinux.ru/2405/$repo/$arch'
#
#
#
################################################################################
# Поддерживаемые параметры Grub
# services_enable=item_1,item_2,...,item_n # Перечень сервисов/юнитов которые должны быть запущены, разделитель (,) или (;). Пример: services_enable=sbm,nmb,cockpit.socket
@ -312,11 +316,12 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,swapspace,systemd-timesyncd,cups
## Настройка репозиториев и обновления системы
################################################################################
## Настройка подключения репозиториев
## REPOSITORY=disable|enable
## REPOSITORY=disable|enable|only
## *disable # Отключить управление списком репозиториев, по умолчанию
## # Используются репозитории из пакета pacman, по умолчанию: core,extra,community,multilib,modules
## enable # Включить управление списком репозиториев
## # Используются системные репозитории core,extra,community,multilib,modules и указанные в параметре REPOSITORY[*]
## # Если не указаны дополнитеьные репозитории в параметре REPOSITORY[*] и включен любой режим песочницы, то активен только репозиторий 'modules'
## only # Включить управление списком репозиториев
## # Используются только репозитории указанные в параметре REPOSITORY[*]
## Порядок указания репозиториев важен
@ -356,23 +361,25 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,swapspace,systemd-timesyncd,cups
## Install # Включать установку пакетов из этого репозитория во время операции --sync
## Upgrade # Позволить этому репозиторию быть действительным источником пакетов при выполнении --sysupgrade
## disable # Временно отключить управление репозиторием, либо после = указать - пример: REPOSITORY[modules]=-/etc/pacman.d/mirrorlist
## Если требуется создать файл зеркала в пакетном режиме, то пример: ubconfig set [/etc/pacman.d/ub-mirrorlist] "|SERVER=http://repo.ublinux.ru/2405/\$repo/\$arch" "|SERVER=https://repo.ublinux.ru/2405/\$repo/\$arch"
##
## REPOSITORY[core]=/etc/pacman.d/mirrorlist;;;disable
## REPOSITORY[modules]="https://repo.ublinux.ru/2405/\$repo/\$arch"
## REPOSITORY[modules]='https://repo.ublinux.ru/2405/$repo/$arch'
## REPOSITORY[mymodules]=http://192.168.0.1:8080/repo/2204;;;disable
## REPOSITORY[webmyrepo]=http://myweb.org/myrepo;never
## REPOSITORY[localmyrepo]=file:///home/myrepo;never;All
## REPOSITORY[webmyrepo]=http://myweb.org/myrepo;Never
## REPOSITORY[localmyrepo]=file:///home/myrepo;Never;All
## REPOSITORY[myrepo]=/home/myrepo/mirrorlist
## Опубликовать локальный репозиторий в локальной сети и подключиться к сети распределённых репозиториев
## При установке пакета пакет ищется в распределённой сети репозиториев и устанавливается самой последней доступной версией
## При установке, пакет ищется в распределённой сети репозиториев и устанавливается самой последней доступной версией
## REPOPUBLIC_NET=disable|no|none|enable|yes,db,<name_repos_1>,...,<name_repos_n>
## disable|no|none # Отключить все репозитории от сети распределённых репозиториев
## enable|yes # Подключить все репозитории к сети распределённых репозиториев
## enable|yes # Подключить репозитории к сети распределённых репозиториев. Если не указаны конкретные имена, то будут подключены все
## db # Получать БД пакетов pacman от сети распределённых репозиториев
## <name_repo> # Подключенное имя репозитория, например: core,extra,community,multilib,modules
## <name_repo> # Подключить только выбранные имена репозиториев, например: core,extra,community,multilib,modules
## REPOPUBLIC_NET=enable,db
## REPOPUBLIC_NET=db,community,modules
## REPOPUBLIC_NET=enable,db,community,modules
## Опубликовать хранилище или репозиторий в виде локального WEB ресурса
## Если необходимо опубликовать выборочные репозитории, то создать новый каталог хранилища в который переместить симлинки выбранных репозиториев. Опубликовать новый каталог хранилища.
@ -382,7 +389,7 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,swapspace,systemd-timesyncd,cups
## enable|yes # Включить публикацию
## disable|no|none # Выключить публикацию
## listing # Включить WEB обозреватель файлов. Не обязятельный
## <port> # Порт по которому доступен репозиторий. По умолчанию: 8080. Не обязательный
## <port> # Порт по которому доступен репозиторий. По умолчанию: 80. Не обязательный
## <auth_name> # Параметры авторизации, имя пользователя. Не обязательный
## <auth_pass> # Параметры авторизации, открытый пароль или тип хеша. Не обязательный
## <password> # Не зашифрованный пароль
@ -395,45 +402,55 @@ SERVICES_ENABLE=dbus-broker,NetworkManager,sshd,swapspace,systemd-timesyncd,cups
## REPOPUBLIC_WEB[/home/storage:repo-1,repo-2]=enable:listing::ublinux:sha512:123
## REPOPUBLIC_WEB[/home/storage:repo-1,repo-2]=enable:listing::ublinux:sha256:a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
## Опубликовать ленивое зеркало подключенных репозиториев в виде локального WEB ресурса
## Опубликовать ленивое зеркало подключенных репозиториев в виде локального WEB ресурса.
## Получая запрос от пользователя, загружает с удалённого репозитория пакет и сохраняет в кеше передавая его пользователю.
## REPOPUBLIC_CACHE[<path>]=enable|disable:<port>:<server_name_1>@<server_url_1>,...,<server_name_n>@<server_url_n>
## <path> # Путь до каталога файлов кеша, если не указан, то по умолчанию: /mnt/livedata/ublinux-data/repopublic_cache
## enable # Включить публикацию
## disable # Выключить публикацию
## <port> # Порт по которому доступен репозиторий. По умолчанию: 8080. Не обязательный
## REPOPUBLIC_CACHE=enable|yes|disable|no|none
## enable|yes # Включить ленивое зеркало
## disable|no|none # Выключить ленивое зеркало
##
## Если задано только "REPOPUBLIC_CACHE=enable" без указания рпозиториев пользователем, то создаётся зеркало по умолчанию, где "2204" версия текущего дистрибутива:
## : REPOPUBLIC_CACHE[ublinux_2405]=url@http://repo.ublinux.ru/2405,url@https://repo.ublinux.ru/2405
## На клиенте необходимо указать:
## либо в файле "/etc/pacman.conf" у каждого репозитория: Server=http://ipadress:8080/repo/ublinux_2204/$repo/$arch
## либо в файле "/etc/pacman.d/mirrorlist" для всех репозиториев: Server=http://ipadress:8080/repo/ublinux_2204/$repo/$arch
## либо параметры в конфигурации REPOSITORY[core]='http://ipadress:8080/repo/ublinux_2204/$repo/$arch'
##
## <server_name> # Произвольное имя репозитория
## <server_url> # Полный адрес репозитория URL или файл
## # Если не указано <server_name>@<server_url>, то по умолчанию системные /etc/pacman.d/mirrorlist
## # Возможно указать несколько, через запятую.
## <file> # Файл списка зеркал, подключается как список зеркал с синтаксисом /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
## REPOPUBLIC_CACHE[<repository>]=<type>@<url>
## <repository> # Имя репозитория, для подключения клиентов
## <type>: # Тип подключаемого репозитория
## url # Вэб ссылка на репозиторий
## http_proxy # Прокси-сервер, может быть включен для каждого репозитория, затеняя глобальный 'http_proxy'
## mirrorlist # Файл зеркал. Будьте осторожны! Убедитесь, что URL текущего сервера НЕ включен в этот файл!
## <url> # Ресурс, можно указать несколько черз зпятую (,)
## REPOPUBLIC_CACHE[ublinux_2405]="url@http://repo.ublinux.ru/2405,url@https://repo.ublinux.ru/2405"
## REPOPUBLIC_CACHE[myrepo_x86_64]="url@http://my.repo.ru/myrepo/x86_64"
## REPOPUBLIC_CACHE[newrepo]="http_proxy@http://proxy.localnet.ru:8080,url@http://192.168.1.1/newrepo/x86_64"
## REPOPUBLIC_CACHE[ublinux-reflector]="mirrorlist@/etc/pacman.d/reflector_mirrorlist"
## Настройка автообновления системы
## AUTOUPDATE=enable | <mode>:<interval>:<repository>
## enable # Включает автообновление с параметрами modsys:boot:core,extra,community,multilib,modules
## <mode> # Режимы обновления
## *modsys # Вначале обновлять все модули и после систему
## module # Обновлять только модули
## AUTOUPDATE=enable
## enable # Включает автообновление. Параметрами по умолчанию: modsys boot core,extra,community,multilib,modules
## Настройка режимов обновления
## AUTOUPDATE[mode]=*modsys|modules|system
## *modsys # Вначале обновлять все модули и после систему. Очищает параметр [update] REPOSITORY=
## modules # Обновлять только модули. Очищает параметр [update] REPOSITORY=
## system # Обновлять всё в порядке указанных репозиториев
## <interval> # Интервал обновления
## Настройка интервала обновления
## AUTOUPDATE[interval]=*boot,30min|12h|*7d|1M
## *boot # Каждую загрузку
## 12h # Каждые 12 часов
## 7d # Каждые 7 дней
## 1m # Один раз в месяц
## <repository> # Имена репозиториев с которых будет происходить обновление. Репозитории из списка по умолчанию или параметра REPOSITORY
## # Если не указано, то по умолчанию: core,extra,community,multilib,modules
## 30min # Каждые 30 минут, возможно указать любую цифру
## 12h # Каждые 12 часов, возможно указать любую цифру
## *7d # Каждые 7 дней, возможно указать любую цифру
## 1M # Один раз в месяц, возможно указать любую цифру
## Настройка репозиториев обновления
## AUTOUPDATE[repos]=<repository>
## <repository> # Имена репозиториев с которых будет происходить обновление. Если не указано, то по умолчанию системные
## AUTOUPDATE=enable
##
## Врямя проведения последнего обновления
## AUTOUPDATE_TIMESTAMP=<datetime>
## <datetime> # Дата и время, в формате: DD/MM/YYYY HH:MM
## AUTOUPDATE_TIMESTAMP="31/12/2023 12:00"
## AUTOUPDATE[timestamp]=<datetime>
## <datetime> # Дата и время, в формате: DD-MM-YYYY HH:MM
## AUTOUPDATE[timestamp]="31-12-2023 12:00"
[/etc/ublinux/mount]
## Настройка подключения сетевых ресурсов

Loading…
Cancel
Save