Use basestrap and update dependencies.
parent
7e00a74ee9
commit
ac2f41bb98
@ -1,109 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# Assumptions:
|
||||
# 1) User has partitioned, formatted, and mounted partitions on /mnt
|
||||
# 2) Network is functional
|
||||
# 3) Arguments passed to the script are valid pacman targets
|
||||
# 4) A valid mirror appears in /etc/pacman.d/mirrorlist
|
||||
#
|
||||
|
||||
version=0.14.0
|
||||
|
||||
shopt -s extglob
|
||||
|
||||
DATADIR='/usr/share/manjaro-tools'
|
||||
LIBDIR='/usr/lib/manjaro-tools'
|
||||
|
||||
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
|
||||
|
||||
import ${LIBDIR}/util.sh
|
||||
import ${LIBDIR}/util-mount.sh
|
||||
|
||||
newroot=/mnt
|
||||
|
||||
hostcache=false
|
||||
copykeyring=true
|
||||
copymirrorlist=true
|
||||
|
||||
usage() {
|
||||
echo "usage: ${0##*/} [options] root [packages...]"
|
||||
echo " -C config Use an alternate config file for pacman"
|
||||
echo " -c Use the package cache on the host, rather than the target"
|
||||
echo " -d Allow installation to a non-mountpoint directory"
|
||||
echo " -G Avoid copying the host's pacman keyring to the target"
|
||||
echo " -i Avoid auto-confirmation of package selections"
|
||||
echo " -M Avoid copying the host's mirrorlist to the target"
|
||||
echo " -h Print this help message"
|
||||
echo ''
|
||||
echo ' basestrap installs packages to the specified new root directory.'
|
||||
echo ' If no packages are given, basestrap defaults to the "base" group.'
|
||||
echo ''
|
||||
echo ''
|
||||
exit $1
|
||||
}
|
||||
|
||||
# if [[ -z $1 || $1 = @(-h|--help) ]]; then
|
||||
# usage
|
||||
# exit $(( $# ? 0 : 1 ))
|
||||
# fi
|
||||
#
|
||||
|
||||
orig_argv=("$@")
|
||||
|
||||
opts=':C:cdGiM'
|
||||
|
||||
while getopts ${opts} arg; do
|
||||
case "${arg}" in
|
||||
C) pacman_config=$OPTARG ;;
|
||||
d) directory=true ;;
|
||||
c) hostcache=true ;;
|
||||
i) interactive=true ;;
|
||||
G) copykeyring=false ;;
|
||||
M) copymirrorlist=false ;;
|
||||
:) echo "invalid argument ${arg}:$OPTARG"; usage 1;;
|
||||
?) usage 0 ;;
|
||||
esac
|
||||
done
|
||||
shift $(( OPTIND - 1 ))
|
||||
|
||||
check_root "$0" "${orig_argv[@]}"
|
||||
|
||||
(( $# )) || die "No root directory specified"
|
||||
newroot=$1; shift
|
||||
pacman_args=("${@:-base}")
|
||||
|
||||
${hostcache} && pacman_args+=(--cachedir="$newroot/var/cache/pacman/pkg")
|
||||
|
||||
${interactive} && pacman_args+=(--noconfirm)
|
||||
|
||||
[[ -n $pacman_config ]] && pacman_args+=(--config="$pacman_config")
|
||||
|
||||
[[ -d $newroot ]] || die "%s is not a directory" "$newroot"
|
||||
|
||||
if ! mountpoint -q "$newroot" && ! ${directory}; then
|
||||
die '%s is not a mountpoint!' "$newroot"
|
||||
fi
|
||||
|
||||
# create obligatory directories
|
||||
create_min_fs "$newroot"
|
||||
|
||||
# mount API filesystems
|
||||
chroot_api_mount "$newroot" || die "failed to setup API filesystems in new root"
|
||||
|
||||
msg2 'Installing packages to %s' "$newroot"
|
||||
if ! pacman -r "$newroot" --needed -Sy "${pacman_args[@]}"; then
|
||||
die 'Failed to install packages to new root'
|
||||
fi
|
||||
|
||||
# kill chroot process if needed (TODO: check if needed at all)
|
||||
kill_chroot_process "$newroot"
|
||||
|
||||
if ${copykeyring};then
|
||||
copy_keyring "$newroot"
|
||||
fi
|
||||
|
||||
if ${copymirrorlist};then
|
||||
copy_mirrorlist "$newroot"
|
||||
fi
|
||||
|
Loading…
Reference in New Issue