#!/bin/bash USER=`whoami` UBUIMG="ubuntu-18.04-minimal-cloudimg-amd64-root.tar.xz" UBUIMGURL="http://cloud-images.ubuntu.com/minimal/releases/bionic/release/$UBUIMG" UBUROOT="/home/$USER/minubugub" if [ -f "$UBUROOT" ]; then echo "$UBUROOT is a file, aborting"; exit 1; fi if [ -d "$UBUROOT" ]; then echo "$UBUROOT already exists, aborting"; exit 1; fi echo "=====> INSTall MINimal UBUntu and GUB, bootstrap GUB by building lilypond master" echo "We need to use sudo for some commands ..." sudo echo "Thanks!" echo "=====> cd to new installation directory $UBUROOT" mkdir -p $UBUROOT cd $UBUROOT echo "=====> download ubunutu 18.04 minimal cloudimage" wget $UBUIMGURL if [ ! -f "$UBUROOT/$UBUIMG" ]; then echo "Failed do download $UBUIMG, aborting"; exit 1; fi echo "=====> decompress and untar" xz -cd ubuntu-18.04-minimal-cloudimg-amd64-root.tar.xz | sudo tar -xf - # You might remove the archive to save some disk space. # rm ubuntu-18.04-minimal-cloudimg-amd64-root.tar.xz echo "=====> set nameserver in $UBUROOT/etc/resolv.conf" sudo rm etc/resolv.conf echo "nameserver 8.8.8.8" | sudo tee etc/resolv.conf echo "=====> we need /proc in the chroot system, add it also to /etc/fstab if not already present" if [ -z "`sudo grep -o $UBUROOT/proc /etc/fstab`" ]; then echo "/proc $UBUROOT/proc none defaults,bind 0 0" | sudo tee -a /etc/fstab fi sudo mount $UBUROOT/proc echo "adapt $UBUROOT/root/.bashrc" echo 'if [ -z "`id -u gub`" ]; then' | sudo tee -a $UBUROOT/root/.bashrc echo ' adduser --disabled-password --gecos "" gub' | sudo tee -a $UBUROOT/root/.bashrc echo ' apt-get --yes update' | sudo tee -a $UBUROOT/root/.bashrc echo ' apt-get --yes upgrade' | sudo tee -a $UBUROOT/root/.bashrc echo ' apt-get --yes --no-install-recommends install file git gcc g++ ' \ 'libc6-dev-i386 make texlive-plain-generic texlive-fonts-recommended ' \ 'texlive-metapost texlive-xetex unzip zip' \ | sudo tee -a $UBUROOT/root/.bashrc echo ' cp /root/initgub /home/gub' | sudo tee -a $UBUROOT/root/.bashrc echo ' chmod 700 /home/gub/initgub' | sudo tee -a $UBUROOT/root/.bashrc echo ' chown gub:users /home/gub/initgub' | sudo tee -a $UBUROOT/root/.bashrc echo ' su gub -c /home/gub/initgub' | sudo tee -a $UBUROOT/root/.bashrc echo ' rm /home/gub/initgub' | sudo tee -a $UBUROOT/root/.bashrc echo ' exit 0' | sudo tee -a $UBUROOT/root/.bashrc echo 'else' | sudo tee -a $UBUROOT/root/.bashrc echo ' cd /home/gub/gub' | sudo tee -a $UBUROOT/root/.bashrc echo ' su gub' | sudo tee -a $UBUROOT/root/.bashrc echo 'fi' | sudo tee -a $UBUROOT/root/.bashrc echo "=====> create gub init script" echo '#!/bin/bash' | sudo tee $UBUROOT/root/initgub echo 'cd /home/gub' | sudo tee -a $UBUROOT/root/initgub echo 'git clone https://github.com/gperciva/gub.git' | sudo tee -a $UBUROOT/root/initgub echo 'cd /home/gub/gub' | sudo tee -a $UBUROOT/root/initgub echo 'echo "=====> download source archives"' | sudo tee -a $UBUROOT/root/initgub echo 'bin/gub --download-only linux-x86::lilypond-installer' | sudo tee -a $UBUROOT/root/initgub echo 'bin/gub --download-only linux-64::lilypond-installer' | sudo tee -a $UBUROOT/root/initgub echo 'bin/gub --download-only linux-ppc::lilypond-installer' | sudo tee -a $UBUROOT/root/initgub echo 'bin/gub --download-only freebsd-x86::lilypond-installer' | sudo tee -a $UBUROOT/root/initgub echo 'bin/gub --download-only freebsd-64::lilypond-installer' | sudo tee -a $UBUROOT/root/initgub echo 'bin/gub --download-only darwin-ppc::lilypond-installer' | sudo tee -a $UBUROOT/root/initgub echo 'bin/gub --download-only darwin-x86::lilypond-installer' | sudo tee -a $UBUROOT/root/initgub echo 'bin/gub --download-only mingw::lilypond-installer' | sudo tee -a $UBUROOT/root/initgub echo 'bin/gub --download-only linux-64::lilypond-doc' | sudo tee -a $UBUROOT/root/initgub echo 'echo -e "\n\n=====> start make lilypond ... this will take some hours!\n\n"' | sudo tee -a $UBUROOT/root/initgub echo 'mkdir regtests' | sudo tee -a $UBUROOT/root/initgub echo 'touch regtests/ignore' | sudo tee -a $UBUROOT/root/initgub echo 'make lilypond' | sudo tee -a $UBUROOT/root/initgub echo 'exit 0' | sudo tee -a $UBUROOT/root/initgub sudo chroot $UBUROOT echo "Installers etc. in $UBUROOT/home/gub/gub/uploads:" ls -l $UBUROOT/home/gub/gub/uploads