Felhasználói eszközök

Eszközök a webhelyen


linux:chroot

Ez a dokumentum egy előző változata!


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" <<EOF
[$name]
name=SLES 15 SP5 - $name
baseurl=file://$repo
enabled=1
gpgcheck=0
metadata_expire=-1
EOF
done

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 \
    install \
    filesystem system-user-root \
    bash coreutils glibc \
    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" <<EOF
[$name]
name=SLES 15 SP5 - $name
enabled=1
autorefresh=0
baseurl=file:///mnt/iso/$name
type=rpm-md
gpgcheck=0
EOF
done

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
linux/chroot.1792146053.txt.gz · legutóbbi módosítás: – Szerkesztő: riba.zoltan