Образ Ubuntu: слой обновлений (full-upgrade + ядро) и пакеты bj на диске — установка почти не качает из сети
- deploy/iso/build-ubuntu-updates-layer.sh: слой ubuntu-server-minimal.ubuntu-server.bj.squashfs поверх «Ubuntu Server» (оригинальные слои и среда установщика не меняются) + debs/ для bj-installer; - build-iso-ubuntu.sh LAYER=<каталог>: слой — источник установки по умолчанию, старые ядро HWE и прошивки из репозитория образа убираются; - bj-installer: пакеты из /var/lib/bj/debs ставятся с диска, иначе — из репозитория. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -259,6 +259,15 @@ func memTotal() uint64 {
|
||||
func (in *installer) stepPackages() (string, error) {
|
||||
pkgs := []string{"ca-certificates", "curl", "postgresql", "postgresql-client", "default-jre-headless", "pcscd", "python3"}
|
||||
env := append(os.Environ(), "DEBIAN_FRONTEND=noninteractive")
|
||||
// Образ кладёт пакеты со всеми зависимостями в /var/lib/bj/debs — ставим с диска, без сети.
|
||||
// Не вышло (другая система, не хватает зависимости) — обычная установка из репозитория.
|
||||
if debs, _ := filepath.Glob(in.P(debsDir) + "/*.deb"); len(debs) > 0 && in.root == "" {
|
||||
args := append([]string{"install", "-y", "-qq", "--no-install-recommends"}, debs...)
|
||||
if _, err := runEnv(env, "apt-get", append(args, pkgs...)...); err == nil {
|
||||
_ = os.RemoveAll(in.P(debsDir))
|
||||
return strings.Join(pkgs, ", ") + " (с образа, без загрузки)", nil
|
||||
}
|
||||
}
|
||||
if out, err := runEnv(env, "apt-get", "update", "-qq"); err != nil {
|
||||
return "", fmt.Errorf("apt-get update: %v\n%s", err, tail(out, 8))
|
||||
}
|
||||
@@ -682,6 +691,9 @@ func (in *installer) componentsFromBundle() (string, error) {
|
||||
return detail, nil
|
||||
}
|
||||
|
||||
// debsDir — системные пакеты для bj (PostgreSQL, Java, pcscd…), положенные образом ISO.
|
||||
const debsDir = "/var/lib/bj/debs"
|
||||
|
||||
// validataDir — пакеты «Валидата Клиент L», положенные образом ISO (zpki, zsdk и совместимая libldap-2.4-2).
|
||||
const validataDir = "/var/lib/bj/validata"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user