====== 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