====== Chroot környezetek kialakítása ====== ===== SLES15 ===== === Telepítő média csatlakoztatása === # mkdir /mnt/sles15sp5 # mount -o ro,loop SLE-15-SP5-Full-x86_64-GM-Media1.iso /mnt/sles15sp5 === Átmeneti DNF konfiguráció készítése === ISO=/mnt/sles15sp5 WORK=/var/tmp/sles15-dnf mkdir -p "$WORK/repos" "$WORK/cache" for repo in "$ISO"/*; do [ -f "$repo/repodata/repomd.xml" ] || continue name=${repo##*/} cat > "$WORK/repos/${name}.repo" < === Telepítési környezet előkészítése === ROOT=/var/lib/machines/sles15sp5 WORK=/var/tmp/sles15-dnf mkdir -p "$ROOT"/{dev,proc,sys,run,etc/rpm,usr/lib/sysimage/rpm} [ -e "$ROOT/dev/null" ] || mknod -m 666 "$ROOT/dev/null" c 1 3 cat > "$ROOT/etc/rpm/macros" <<'EOF' %_db_backend ndb %_dbpath /usr/lib/sysimage/rpm EOF mountpoint -q "$ROOT/proc" || mount -t proc proc "$ROOT/proc" [ -L "$ROOT/dev/fd" ] || ln -s /proc/self/fd "$ROOT/dev/fd" === RPM adatbázis inicializálása (NDB backend használatával) === if [ ! -f "$ROOT/usr/lib/sysimage/rpm/Packages.db" ]; then rpm --root "$ROOT" \ --define '_db_backend ndb' \ --initdb fi === Minimális alaprendszer telepítése === dnf --installroot="$ROOT" \ --setopt=reposdir="$WORK/repos" \ --setopt=cachedir="$WORK/cache" \ --setopt=module_platform_id=platform:sle-15 \ --setopt=install_weak_deps=False \ --releasever=15.5 \ --assumeyes \ install \ filesystem system-user-root \ bash coreutils glibc glibc-locale \ gawk less sed tar util-linux \ rpm rpm-config-SUSE zypper === Telepítés ellenőrzése === rpm --root "$ROOT" -qa | wc -l chroot "$ROOT" /usr/bin/rpm -qa | wc -l chroot "$ROOT" /usr/bin/rpm --verifydb && echo OK || echo FAILED chroot "$ROOT" /usr/bin/rpm -Va && echo OK || echo FAILED ==== Zypper csomagtelepítő beállítása ==== Telepítő média csatlakoztatása: ROOT=/var/lib/machines/sles15sp5 ISO=/mnt/sles15sp5 mkdir -p "$ROOT/mnt/iso" mountpoint -q "$ROOT/mnt/iso" || mount --bind "$ISO" "$ROOT/mnt/iso" Zypper repok beállítása: mkdir -p "$ROOT/etc/zypp/repos.d" for repo in "$ISO"/*; do [ -f "$repo/repodata/repomd.xml" ] || continue name=${repo##*/} cat > "$ROOT/etc/zypp/repos.d/${name}.repo" < Repo ellenőrzése: chroot "$ROOT" /usr/bin/zypper repos -u Metaadatok frissítése: chroot "$ROOT" /usr/bin/zypper \ --non-interactive refresh Kiegészítő csomagok telepítése: chroot "$ROOT" zypper --non-interactive install \ --no-recommends \ sles-release \ ca-certificates \ curl \ tar \ gzip \ python3