File: initial_setup

package info (click to toggle)
neurodebian 0.43.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 12,988 kB
  • sloc: sh: 2,419; python: 1,978; perl: 412; makefile: 207; javascript: 63
file content (157 lines) | stat: -rwxr-xr-x 5,404 bytes parent folder | download | duplicates (6)
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/