1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
|
#!/bin/bash
# play safe
set -e
set -u
# Standard Debian install
# prepare on hydra and use debproxy for speed
# have dedicated hard-drives for swap and home
# expert install
# hostname: neurodebian
# domain: ''
# Needs to be assured since it got reset to debian
hostname neurodebian # this is not a permanent change
echo "neurodebian" >| /etc/hostname # make it permanent
sed -i -e 's/^127\.0\.1\.1.*/127.0.1.1\tneurodebian/g' /etc/hosts
# all file in one partition
# root: not there
# user: brain
# pwd: neurodebian
# Do a minimal install
# --------------------
# All files in one partition/
# just base system, run selection, but no tasks (not even 'Standard system')
# set root password to 'neurodebian' too
#echo "Set root passwd:"
#passwd root
apt-get install --no-install-recommends -y etckeeper
# setup etckeeper
git config --global user.name NeuroDebian
git config --global user.email nd@localhost
# install new stuff
# -----------------
# Add sources.list for backports and neurodebian
wget -O /etc/apt/sources.list.d/neuro.debian.net.list http://neuro.debian.net/lists/squeeze.us-nh
echo "deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free" > /etc/apt/sources.list.d/backports.debian.org.list
cat << EOT > /etc/apt/preferences.d/backports.debian.org.pref
Package: *
Pin: release a=squeeze-backports
Pin-Priority: 200
EOT
apt-get update -y
# Backports' Release files signed with both ftpmaster and old backports keys
# That causes APT to spit out a warning, but to not confuse users, lets simply
# obtain that key if possible
gpg --keyserver hkp://subkeys.pgp.net --recv-keys 0xEA8E8B2116BA136C && \
gpg --export 0xEA8E8B2116BA136C | apt-key add - || :
apt-get install -y --allow-unauthenticated neurodebian-archive-keyring
apt-get update -y
# to cheat the VM check
touch /dev/vboxguest
# Assure that corresponding linux headers are installed since otherwise they
# might not be. There is also a dichotomy between target 686 and installer
# using 486 build of the kernel. It requires manual build/installation
# of guest additions for 686 at this point. Hence all the ugly logic below
cunamer=`uname -r`
cdarch=${cunamer##*-}
# We carry 686 only
[ $cdarch = '486' ] && darch='686' || darch=$cdarch
apt-get install -y linux-headers-2.6-$cdarch
# Forcefully install guest additions from backports so we are
# compatible with VirtualBox 4.x series
apt-get install -y -t squeeze-backports virtualbox-ose-guest-dkms \
virtualbox-ose-guest-utils virtualbox-ose-guest-x11 \
>| /var/log/initial_setup-dkms.log 2>&1
# to get all the rest stuff in recommends
apt-get install -y dkms neurodebian-guest-additions
if [ "$darch" != "$cdarch" ] ; then
# Because DKMS builds for currently running kernel, which during
# installation might be a more generic 486, lets force building for 686
# and also install necessary headers (will be purged later on anyways)
apt-get install -y linux-headers-2.6-$darch
unamer=${cunamer//$cdarch/$darch}
# First collect information about installed vb additions
vbg=( `dkms status | grep virtualbox | head -n 1 | tr ',' ' '` )
echo "I: forcing build and install of guest additions for 686"
dkms build -m ${vbg[0]} -v ${vbg[1]} -a i686 -k $unamer \
>| /var/log/initial_setup-dkms-686-build.log 2>&1
dkms install -m ${vbg[0]} -v ${vbg[1]} -a i686 -k $unamer \
>| /var/log/initial_setup-dkms-686-install.log 2>&1
fi
# Add brain use into vboxsf group so he gets access to shared folders
# by default
adduser brain vboxsf
# assure at the end that we got right modules build in the right location
find /lib/modules/*$darch -iname vboxsf.ko | grep -q .
apt-get install --no-install-recommends -y \
gnome-core mc evince bash-completion ntpdate file-roller gnome-utils \
gnome-themes gnome-disk-utility network-manager-gnome eog vim reportbug \
software-center gdebi gedit-plugins gnome-media synaptic menu less libxp6
# Clean-up installed development files which got pulled in for
# VM guest additions (to build kernel modules via DKMS)
apt-get purge -y libc6-dev
dpkg -l | awk '/^ii.*[ \t]linux-headers/{print $2;}' | xargs -r apt-get purge -y
# Gnome optional pulled by gnome-core:
apt-get purge -y gnome-core evolution-common evolution libevolution
# And utter cleanup
apt-get -y autoremove
# intermediate cleanup to prevent virtual harddrive from fragmenting too much
find /var/cache/apt/archives/ -name '*.deb' -delete
# cleanup unwanted stuff
# video drivers (all but vesa)
apt-get purge -y $(apt-cache search --names-only --installed xserver-xorg-video | grep xserver-xorg-video | cut -d ' ' -f 1,1) xserver-xorg-video-vesa+
apt-get purge -y brasero
# and whatever is obsolete
apt-get autoremove --purge -y
# custom config
# use NeuroDebian website as default homepage
sed -i -e 's,http://www.debian.org,http://neuro.debian.net,g' /etc/chromium-browser/master_preferences
# reduce grub timeout to speed up boot of VM
sed -i -e 's/GRUB_TIMEOUT=5/GRUB_TIMEOUT=1/g' /etc/default/grub
update-grub
# finally configure geomirror for APT and disable deb-src lists
sed -i -e "s/10.0.0.1:9999/$(dpkg --print-architecture)-geomirror.debian.net/" \
-e "s/^deb-src/#deb-src/" /etc/apt/sources.list
etckeeper commit "Initial VM setup done"
# Create a link to automatically mounted Shared folder
# Created by the Welcome Wizard
#sudo -u brain ln -s /mnt/host /home/brain/
|