Zuletzt aktiv 6 months ago

Änderung 577932b2e576a3bd82d7cdc6deb8d64a5c8a6f36

stretch2buster.sh Originalformat
1Please also refer to http://www.debian.org/releases/buster/releasenotes and use your brain!
2
3
4# upgrade to UTF-8 locales (http://www.debian.org/releases/buster/amd64/release-notes/ap-old-stuff.en.html#switch-utf8)
5dpkg-reconfigure locales
6
7# remove unused config file
8rm -rf /etc/network/options /etc/environment
9
10# migrate over to systemd (before the upgrade) / you might want reboot if you install systemd
11aptitude install systemd systemd-sysv libpam-systemd
12
13# are there 3rd party packages installed? (https://www.debian.org/releases/buster/amd64/release-notes/ch-upgrading.de.html#system-status)
14aptitude search '~i(!~ODebian)'
15
16# check for ftp protocol in sources lists (https://www.debian.org/releases/buster/amd64/release-notes/ch-information.en.html#deprecation-of-ftp-apt-mirrors)
17rgrep --color "deb ftp" /etc/apt/sources.list*
18
19# Transition and remove entries from older releases
20sed -i /etch/d /etc/apt/sources.list*
21sed -i /lenny/d /etc/apt/sources.list*
22sed -i /sarge/d /etc/apt/sources.list*
23sed -i /squeeze/d /etc/apt/sources.list*
24sed -i /wheezy/d /etc/apt/sources.list*
25sed -i /jessie/d /etc/apt/sources.list*
26sed -i /volatile/d /etc/apt/sources.list*
27sed -i /proposed-updates/d /etc/apt/sources.list*
28# change distro (please move 3rd party sources to /etc/apt/sources.list.d/), maybe look into http://ftp.cyconet.org/debian/sources.list.d/
29sed -i s/stretch/buster/g /etc/apt/sources.list*
30sed -i "s/ stable/ buster/g" /etc/apt/sources.list*
31sed -i s/stretch/buster/g /etc/apt/preferences*
32sed -i s/stretch/buster/g /etc/apt/sources.list.d/*stretch*
33rename s/stretch/buster/g /etc/apt/sources.list.d/*stretch*
34rgrep --color stretch /etc/apt/sources.list*
35apt-get update
36
37# check package status
38dpkg --audit
39aptitude search "~ahold" | grep "^.h"
40dpkg --get-selections | grep hold
41
42# unmark packages auto
43aptitude unmarkauto vim net-tools && \
44aptitude unmarkauto libapache2-mpm-itk && \
45aptitude unmarkauto $(dpkg-query -W 'linux-image-4.9.0*' | cut -f1)
46
47# have a look into required and free disk space
48apt-get -o APT::Get::Trivial-Only=true dist-upgrade || df -h
49
50# record session
51script -t 2>~/upgrade-buster.time -a ~/upgrade-buster.script
52
53# install our preseed so libc doesn't whine
54cat > /tmp/stretch.preseed <<EOF
55libc6 glibc/upgrade boolean true
56libc6 glibc/restart-services string
57libc6 libraries/restart-without-asking boolean true
58EOF
59/usr/bin/debconf-set-selections /tmp/stretch.preseed
60
61# update aptitude first
62[ "$(which aptitude)" = "/usr/bin/aptitude" ] && aptitude install aptitude
63
64# minimal system upgrade
65aptitude upgrade
66
67# chrony update
68if [ -f /etc/chrony/chrony.conf.new ]; then CFG=/etc/chrony/chrony.conf.new; else CFG=/etc/chrony/chrony.conf; fi
69sed -i s/2.debian.pool/0.de.pool/g $CFG
70
71# migrate unattended-upgrades config
72if [ -f /etc/apt/apt.conf.d/50unattended-upgrades.dpkg-new ]; then CFG=/etc/apt/apt.conf.d/50unattended-upgrades.dpkg-new; \
73 else CFG=/etc/apt/apt.conf.d/50unattended-upgrades; fi
74sed -i s/stretch/buster/g $CFG
75sed -i s/crontrib/contrib/g $CFG
76sed -i "s#// If automatic reboot is enabled and needed, reboot at the specific#// Automatically reboot even if there are users currently logged in.\n//Unattended-Upgrade::Automatic-Reboot-WithUsers \"true\";\n\n// If automatic reboot is enabled and needed, reboot at the specific#" $CFG
77cat >> $CFG <<EOF
78
79// Enable logging to syslog. Default is False
80// Unattended-Upgrade::SyslogEnable "false";
81
82// Specify syslog facility. Default is daemon
83// Unattended-Upgrade::SyslogFacility "daemon";
84
85EOF
86
87## phpmyadmin
88if [ -f /etc/phpmyadmin/config.inc.php.dpkg-new ]; then CFG=/etc/phpmyadmin/config.inc.php.dpkg-new; \
89 else CFG=/etc/phpmyadmin/config.inc.php; fi
90sed -i "s/\['auth_type'\] = 'cookie'/\['auth_type'\] = 'http'/" $CFG
91sed -i "s#//\$cfg\['Servers'\]\[\$i\]\['auth_type'\] = 'http';#\$cfg['Servers'][\$i]['auth_type'] = 'http';#" $CFG
92
93# full-upgrade
94apt-get dist-upgrade
95
96# remove old squeeze packages left around (keep eyes open!)
97apt autoremove && \
98apt purge $(dpkg -l | awk '/gcc-4.9/ { print $2 }') && \
99apt purge $(aptitude search ?obsolete | grep -v -E 'linux-image|mailscanner' | awk '/^i *A/ { print $3 }') && \
100apt purge $(aptitude search ?obsolete | grep -v -E 'linux-image|mailscanner' | awk '/^i/ { print $2 }') && \
101apt purge $(dpkg -l | grep etch | grep -v xen | grep -v unbound | grep -v finch | awk '/^rc/ { print $2 }') && \
102apt purge $(dpkg -l | grep lenny | grep -v xen | awk '/^rc/ { print $2 }') && \
103apt purge $(dpkg -l | grep -E 'deb6|squeeze' | grep -v xen | awk '/^rc/ { print $2 }') && \
104apt purge $(dpkg -l | grep -E 'deb7|wheezy' | grep -v xen | grep -v -E 'linux-image|mailscanner|openswan|debian-security-support' | awk '/^rc/ { print $2 }') && \
105apt purge $(dpkg -l | grep -E 'deb8|jessie' | grep -v xen | grep -v -E 'linux-image|debian-security-support' | awk '{ print $2 }') && \
106apt purge $(dpkg -l | grep -E 'deb9|stretch' | grep -v xen | grep -v -E 'linux-image|debian-security-support' | awk '{ print $2 }') && \
107apt -y install deborphan && apt purge $(deborphan | grep -v xen | grep -v -E 'libpam-cracklib|libapache2-mpm-itk')
108apt purge $(dpkg -l | awk '/^rc/ { print $2 }')
109
110# for the brave YoloOps crowd
111reboot && sleep 180; echo u > /proc/sysrq-trigger ; sleep 2 ; echo s > /proc/sysrq-trigger ; sleep 2 ; echo b > /proc/sysrq-trigger
112
113### not needed until now
114# Fix our ssh pub key package configuration
115[ -x /var/lib/dpkg/info/config-openssh-server-authorizedkeys-core.postinst ] && \
116 /var/lib/dpkg/info/config-openssh-server-authorizedkeys-core.postinst configure
117
118# Upgrade postgres
119# See also https://www.debian.org/releases/stretch/amd64/release-notes/ch-information.de.html#plperl
120if [ "$(dpkg -l | grep "postgresql-9.4" | awk {'print $2'})" = "postgresql-9.4" ]; then \
121 aptitude install postgresql-9.6 && \
122 pg_dropcluster --stop 9.6 main && \
123 /etc/init.d/postgresql stop && \
124 pg_upgradecluster -v 9.6 9.4 main && \
125 sed -i "s/^manual/auto/g" /etc/postgresql/9.6/main/start.conf && \
126 sed -i "s/^port = .*/port = 5432/" /etc/postgresql/9.6/main/postgresql.conf && \
127 sed -i "s/^shared_buffers = .*/shared_buffers = 128MB/" /etc/postgresql/9.6/main/postgresql.conf && \
128 /etc/init.d/postgresql restart; \
129fi
130pg_dropcluster 9.4 main
131