Обновления несут установщик: bj-installer — компонент ядра, refresh-system переписывает службы и скрипты; мастер предлагает обновиться сразу после ввода ключа
Правки установки приезжают обновлением с сервера лицензий, образ ISO пересобирать не нужно. Прежний установщик обновлений bj-installer не знает — он откладывается и ставится после перезапуска bj-server (ensureSplitModules). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -81,6 +81,8 @@ func main() {
|
||||
switch os.Args[1] {
|
||||
case "install":
|
||||
cmdInstall(os.Args[2:])
|
||||
case "refresh-system":
|
||||
os.Exit(refreshSystem())
|
||||
case "first-run-code":
|
||||
cmdFirstRunCode(os.Args[2:])
|
||||
case "version":
|
||||
@@ -93,6 +95,7 @@ func main() {
|
||||
func usage() {
|
||||
fmt.Fprintln(os.Stderr, "bj-installer install --code BJ-XXXX-XXXX-XXXX [--server https://lic.zetit.ru] [--channel stable] [--dry-run]")
|
||||
fmt.Fprintln(os.Stderr, "bj-installer first-run-code")
|
||||
fmt.Fprintln(os.Stderr, "bj-installer refresh-system (переписать службы и скрипты из этой версии установщика)")
|
||||
fmt.Fprintln(os.Stderr, "bj-installer version")
|
||||
os.Exit(2)
|
||||
}
|
||||
@@ -742,6 +745,26 @@ func (in *installer) stepServices() (string, error) {
|
||||
return strings.Join(files, ", ") + "; криптосервис включается после настройки ключей в bj", nil
|
||||
}
|
||||
|
||||
// refreshSystem — «bj-installer refresh-system»: переписать службы systemd и служебные скрипты
|
||||
// из этой версии установщика (вызывается root-установщиком обновлений после обновления самого
|
||||
// bj-installer). Работающие службы не перезапускаются: ядро перезапустит обновление, а служба
|
||||
// root-операций bj-keymedia — через минуту, когда обновление, которое она выполняет, закончится.
|
||||
func refreshSystem() int {
|
||||
if os.Geteuid() != 0 {
|
||||
fmt.Fprintln(os.Stderr, "refresh-system: нужны права root")
|
||||
return 1
|
||||
}
|
||||
in := &installer{}
|
||||
msg, err := in.stepServices()
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "refresh-system:", err)
|
||||
return 1
|
||||
}
|
||||
_, _ = run("systemd-run", "--on-active=60", "--unit=bj-keymedia-refresh", "systemctl", "try-restart", "bj-keymedia.service")
|
||||
fmt.Println("системные файлы обновлены:", msg)
|
||||
return 0
|
||||
}
|
||||
|
||||
func (in *installer) stepFirstRun() (string, error) {
|
||||
code, err := in.newFirstRunCode()
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user