You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.7 KiB
Bash
59 lines
1.7 KiB
Bash
#!/bin/sh -ex
|
|
|
|
usage() {
|
|
echo "Usage: $0 arch suite rootdir [mirror]"
|
|
}
|
|
|
|
MIRROR="http://127.0.0.1:3142/ftp.de.debian.org/debian"
|
|
|
|
[ "$#" -ne 3 ] && [ "$#" -ne 4 ] && { usage; exit; }
|
|
|
|
ARCH="$1"
|
|
SUITE="$2"
|
|
ROOTDIR="$3"
|
|
MIRROR=${4:-$MIRROR}
|
|
|
|
[ -e "$ROOTDIR" ] && { echo "root directory still exists"; exit; }
|
|
|
|
mkdir "$ROOTDIR"
|
|
|
|
ROOTDIR=`realpath "$ROOTDIR"`
|
|
|
|
# apt options
|
|
APT_OPTS="-y"
|
|
APT_OPTS=$APT_OPTS" -o Apt::Architecture=$ARCH"
|
|
APT_OPTS=$APT_OPTS" -o Dir::Etc::TrustedParts=$ROOTDIR/etc/apt/trusted.gpg.d"
|
|
APT_OPTS=$APT_OPTS" -o Dir::Etc::Trusted=$ROOTDIR/etc/apt/trusted.gpg"
|
|
APT_OPTS=$APT_OPTS" -o Apt::Get::AllowUnauthenticated=true"
|
|
APT_OPTS=$APT_OPTS" -o Apt::Get::Download-Only=true"
|
|
APT_OPTS=$APT_OPTS" -o Apt::Install-Recommends=false"
|
|
APT_OPTS=$APT_OPTS" -o Dir=$ROOTDIR/"
|
|
APT_OPTS=$APT_OPTS" -o Dir::Etc=$ROOTDIR/etc/apt/"
|
|
APT_OPTS=$APT_OPTS" -o Dir::Etc::SourceList=$ROOTDIR/etc/apt/sources.list"
|
|
APT_OPTS=$APT_OPTS" -o Dir::State=$ROOTDIR/var/lib/apt/"
|
|
APT_OPTS=$APT_OPTS" -o Dir::State::Status=$ROOTDIR/var/lib/dpkg/status"
|
|
APT_OPTS=$APT_OPTS" -o Dir::Cache=$ROOTDIR/var/cache/apt/"
|
|
|
|
# initial setup for apt and dpkg to work properly
|
|
mkdir -p $ROOTDIR
|
|
mkdir -p $ROOTDIR/etc/apt/
|
|
mkdir -p $ROOTDIR/etc/apt/sources.list.d/
|
|
mkdir -p $ROOTDIR/etc/apt/preferences.d/
|
|
mkdir -p $ROOTDIR/var/lib/apt/
|
|
mkdir -p $ROOTDIR/var/lib/apt/lists/partial/
|
|
mkdir -p $ROOTDIR/var/lib/dpkg/
|
|
mkdir -p $ROOTDIR/var/cache/apt/
|
|
touch $ROOTDIR/var/lib/dpkg/status
|
|
|
|
# fill sources.list
|
|
echo deb $MIRROR $SUITE main > $ROOTDIR/etc/apt/sources.list
|
|
|
|
# update and install git and ruby
|
|
apt-get $APT_OPTS update
|
|
apt-get $APT_OPTS install libc6 libselinux1 libacl1 man-db libstdc++6
|
|
|
|
# unpack downloaded archives
|
|
for deb in $ROOTDIR/var/cache/apt/archives/*.deb; do
|
|
dpkg -x $deb $ROOTDIR
|
|
done
|