Обновления несут установщик: 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:
@@ -195,7 +195,7 @@ func (u *Updater) ApplyUpdate(ctx context.Context, names []string) (string, erro
|
||||
if installerOutdated {
|
||||
kept := selected[:0]
|
||||
for _, c := range selected {
|
||||
if c.New {
|
||||
if c.New || c.Name == "bj-installer" { // bj-installer прежний установщик обновлений не знает
|
||||
deferred = append(deferred, c.Name)
|
||||
continue
|
||||
}
|
||||
@@ -269,11 +269,24 @@ func (u *Updater) allowed(feature string) bool { return moduleAllowed(u.rc, feat
|
||||
// этих модулей в bj не работают. Раз за запуск bj-server; ошибки — только в журнал и «Последнюю проверку».
|
||||
func (u *Updater) ensureSplitModules(ctx context.Context) {
|
||||
var names []string
|
||||
for _, c := range release.Plan("", nil, release.LoadInstalled(release.InstalledFile), BuildVersion) {
|
||||
installed := release.LoadInstalled(release.InstalledFile)
|
||||
for _, c := range release.Plan("", nil, installed, BuildVersion) {
|
||||
if c.FromCore && !c.Present && u.allowed(c.Feature) {
|
||||
names = append(names, c.Name)
|
||||
}
|
||||
}
|
||||
// bj-installer обновлением ещё не ставился (сервер с образа или обновлён прежним установщиком
|
||||
// обновлений): ставим сразу — с ним приезжают свежие службы и скрипты. Только если на сервере
|
||||
// обновлений он новее, иначе ApplyUpdate вернёт «обновление не требуется» — это не ошибка.
|
||||
if _, ok := installed["bj-installer"]; !ok && licenseStatus(u.rc).AllowsUpdates {
|
||||
if st, err := u.CheckForUpdate(ctx); err == nil {
|
||||
for _, c := range st.Components {
|
||||
if c.Name == "bj-installer" && c.Update {
|
||||
names = append(names, c.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if len(names) == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user