Naposledy aktivní 6 months ago

Revize b301a3d053e17362c97df56482005254a29e21ff

squeeze2wheezy.sh Raw
1Please also refer to http://www.debian.org/releases/wheezy/releasenotes and use your brain! If you can’t figure out what one of the commands below does, this is not for you. Expert mode only :)
2For Roundcube and Sqlite Backend see: http://wiki.debian.org/Roundcube/DeprecationOfSQLitev2
3
4
5# upgrade to UTF-8 locales (http://www.debian.org/releases/testing/i386/release-notes/ap-old-stuff.en.html#switch-utf8)
6dpkg-reconfigure locales
7
8# remove unused config file
9rm -rf /etc/network/options /etc/environment
10
11# remove squeeze-lts apt preference
12PREFERENCES="/etc/apt/preferences"; sed -i -n '/squeeze-lts/{N;s/.*//;x;d;};x;p;${x;p;}' $PREFERENCES; sed -i '/^$/d' $PREFERENCES
13# change distro (please move 3rd party sources to /etc/apt/sources.list.d/), maybe look into http://ftp.cyconet.org/debian/sources.list.d/
14rm -f /etc/apt/apt.conf.d/10disable_date_check
15rm -f /etc/apt/sources.list.d/*squeeze*
16sed -i s/squeeze/wheezy/g /etc/apt/sources.list*
17sed -i "s/ stable/ wheezy/g" /etc/apt/sources.list*
18sed -i s/squeeze/wheezy/g /etc/apt/preferences*
19sed -i /proposed-updates/d /etc/apt/sources.list*
20sed -i /volatile/d /etc/apt/sources.list*
21sed -i /etch/d /etc/apt/sources.list*
22sed -i /lenny/d /etc/apt/sources.list*
23sed -i s#/backports.org/debian#/ftp.de.debian.org/debian#g /etc/apt/sources.list*
24sed -i s/debian-backports/debian/g /etc/apt/sources.list*
25if [ "$( dpkg -l | grep "^ii.*php5-suhosin" | wc -l)" -ge "1" ]; then \
26 wget http://ftp.cyconet.org/debian/sources.list.d/wheezy-updates-cyconet.list \
27 -O /etc/apt/sources.list.d/wheezy-updates-cyconet.list
28fi
29aptitude update
30
31# check package status
32dpkg --audit
33aptitude search "~ahold" | grep "^.h"
34dpkg --get-selections | grep hold
35
36# unmark packages auto
37aptitude unmarkauto vim shorewall
38aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6.*' | cut -f1)
39
40# have a look into required and free disk space
41apt-get -o APT::Get::Trivial-Only=true dist-upgrade || df -h
42
43# check if we have PAE available (http://www.debian.org/releases/testing/i386/release-notes/ch-upgrading.en.html#idp573136)
44grep -q '^flags.*\bpae\b' /proc/cpuinfo && echo "We support PAE: yes" \
45|| echo "We support PAE: no (please install linux-image-486 and remove linux-image-.*-686)"
46
47# record session
48script -t 2>~/upgrade-wheezy.time -a ~/upgrade-wheezy.script
49
50# install our preseed so libc doesn't whine
51cat > /tmp/wheezy.preseed <<EOF
52libc6 glibc/upgrade boolean true
53libc6 glibc/restart-services string
54libc6 libraries/restart-without-asking boolean true
55EOF
56/usr/bin/debconf-set-selections /tmp/wheezy.preseed
57
58# minimal system upgrade
59aptitude upgrade
60
61# randomize crontab
62if [ -f /etc/crontab.dpkg-new ]; then CFG=/etc/crontab.dpkg-new; else CFG=/etc/crontab; fi
63sed -i 's#root cd#root perl -e "sleep int(rand(300))" \&\& cd#' $CFG
64sed -i 's#root\ttest#root\tperl -e "sleep int(rand(3600))" \&\& test#' $CFG
65
66# phpmyadmin
67if [ -f /etc/phpmyadmin/config.inc.php.dpkg-new ]; then CFG=/etc/phpmyadmin/config.inc.php.dpkg-new; \
68 else CFG=/etc/phpmyadmin/config.inc.php; fi
69sed -i "s/\['auth_type'\] = 'cookie'/\['auth_type'\] = 'http'/" $CFG
70sed -i "s#//\$cfg\['Servers'\]\[\$i\]\['auth_type'\] = 'http';#\$cfg['Servers'][\$i]['auth_type'] = 'http';#" $CFG
71
72# remove anonymous mysql access
73mysql -u root -p -e "DELETE FROM mysql.user WHERE User=''; DELETE FROM mysql.db WHERE Db='test' AND Host='%' OR Db='test\\_%' AND Host='%'; FLUSH PRIVILEGES;"
74
75if [ -f /etc/default/xendomains.dpkg-new ]; then CFG=/etc/default/xendomains.dpkg-new; \
76 else CFG=/etc/default/xendomains; fi
77sed -i s/XENDOMAINS_RESTORE=true/XENDOMAINS_RESTORE=false/ $CFG
78sed -i s#XENDOMAINS_SAVE=/var/lib/xen/save#XENDOMAINS_SAVE=\"\"# $CFG
79
80# dont use iptables when creating xen vifs
81if [ -f /etc/xen/xend-config.sxp.dpkg-new ]; then CFG=/etc/xen/xend-config.sxp.dpkg-new; \
82 else CFG=/etc/xen/xend-config.sxp; fi
83sed -i "s/^(vif-script vif-bridge)/(vif-script vif-bridge-local)/" $CFG
84/bin/sed -i -e 's/^[# ]*\((dom0-min-mem\).*\().*\)$/\1 512\2/' $CFG
85
86cp /etc/xen/scripts/vif-bridge /etc/xen/scripts/vif-bridge-local
87sed -i "s/^ handle_iptable/ true/g" /etc/xen/scripts/vif-bridge-local
88
89# chrony update
90if [ -f /etc/chrony/chrony.conf.new ]; then CFG=/etc/chrony/chrony.conf.new; else CFG=/etc/chrony/chrony.conf; fi
91sed -i s/debian.pool/de.pool/g $CFG
92
93rm -rf /etc/grub.d/09_linux_xen
94dpkg-divert --divert /etc/grub.d/09_linux_xen --rename /etc/grub.d/20_linux_xen
95#mv /etc/grub.d/20_linux_xen /etc/grub.d/09_linux_xen
96echo 'GRUB_CMDLINE_XEN="dom0_mem=512M"' >> /etc/default/grub
97
98# maybe we want to change some shorewall config stuff again
99if [ -f /etc/default/shorewall.dpkg-new ]; then CFG=/etc/default/shorewall.dpkg-new; \
100 else CFG=/etc/default/shorewall; fi
101sed -i s/^startup=0/startup=1/ $CFG
102
103# dist-upgrade
104aptitude dist-upgrade
105
106# migrate expose.ini
107[ -f /etc/php5/conf.d/expose.ini ] && mv /etc/php5/conf.d/expose.ini \
108 /etc/php5/mods-available/local-expose.ini && php5enmod local-expose/90
109# migrate local suhosin config
110find /etc/php5/conf.d/ -type f -name "*suhosin.ini" -exec mv '{}' \
111 /etc/php5/mods-available/local-suhosin.ini \; && php5enmod local-suhosin/90
112
113# mysql
114
115# vsftpd and chroot_local_user?
116if [ "$(grep -i ^chroot_local_user=yes /etc/vsftpd.conf | wc -l)" -ge "1" ]; then \
117 aptitude update; aptitude install -t wheezy-updates vsftpd && \
118 echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf && /etc/init.d/vsftpd restart; \
119fi
120
121# install fixed quotatool
122dpkg -l | grep quotatool && aptitude update; aptitude safe-upgrade -t wheezy-updates quotatool
123
124# remove old squeeze packages left around (keep eyes open!)
125apt-get autoremove
126aptitude search ?obsolete
127dpkg -l | grep etch | grep -v xen | grep -v unbound | grep -v finch | grep -v fetch | awk '{print $2}' | xargs aptitude -y purge
128dpkg -l | grep lenny | grep -v xen | awk '{print $2}' | xargs aptitude -y purge
129dpkg -l | grep -E 'deb6|squeeze' | grep -v xen | grep -v -E 'linux-image|smarty' | awk '{print $2}' | xargs aptitude -y purge
130aptitude -y install deborphan && deborphan | grep -v xen | grep -v -E 'libpam-cracklib' | xargs aptitude -y purge
131dpkg -l | grep ^r | awk '{print $2}' | xargs aptitude -y purge
132
133# for the brave YoloOps crowd
134reboot && sleep 180; echo u > /proc/sysrq-trigger ; sleep 2 ; echo s > /proc/sysrq-trigger ; sleep 2 ; echo b > /proc/sysrq-trigger
135