-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathzendistupgrade.sh
executable file
·156 lines (132 loc) · 5.57 KB
/
zendistupgrade.sh
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
#!/bin/bash
#=== Upgrade de 15.10 à 16.04 :
#== B. Mauclaire - 2017/11
#--------------------------------------------#
#- Mets a jour le source list pour pointer sur le serveur old-releases
# ( voir https://doc.ubuntu-fr.org/old-releases )
#- Lance l'upgrade vers 16.04 si tout va bien
#- do-release-upgrade
#--------------------------------------------#
#--- TODO :
#-- Transformer le script en binaire : shc -f script.sh
#-- Puis faire un tarball
#--- Varaibles globales :
#-- Graphical sudo :
#GSUDO=sudo
GSUDO=gksudo
#--- Procedure de modification du fichier sources.list :
modifsourcelist()
{
SRC=/etc/apt/sources.list
echo "Modifications du fichier sources.list..."
sudo cp $SRC ${SRC}.OBSOLETE
#-- Pour les partner, changer wily en xenial !! --
#- Doit devenir : deb http://archive.canonical.com/ubuntu xenial partner
#sudo sed -i '/partner/ s/wily/xenial/' $SRC
##sudo sed -i '/partner/ s/trusty/xenial/' $SRC
#- Enelve le '#' devant les lignes partner :
sudo sed -i '/wily\spartner/ s/^#*\s//' $SRC
#- Retirez toutes les lignes faisant référence au dépôt partner ; NON !
# meth : contient "partner", ne démarre pas par #, alors ecrire # en debut
#sudo sed -i '/partner/ s/^#*/#/' $SRC
#- Retirez toutes les lignes faisant référence au serveur http://extras.ubuntu.com/ubuntu : OUI
sudo sed -i '/extras/ s/^#*/#/' $SRC
#-- Remplacez toutes les instances http://xx.archive.ubuntu.com/ubuntu, où xx est un code de pays (fr, ca, ch, be…), par http://old-releases.ubuntu.com/ubuntu ;
# meth : commence par "deb", contient *.archive, remplacer par old-release
#sudo sed -i '/^deb/ s/http:\/\/.*archive./http:\/\/old-releases./g' $SRC
#- Ne modifie que les lignes ubuntu.com :
sudo sed -i '/^deb/ s/http:\/\/.*archive.ubuntu.com/http:\/\/old-releases.ubuntu.com/g' $SRC
# Remplacez toutes les instances http://security.ubuntu.com/ubuntu par http://old-releases.ubuntu.com/ubuntu
sudo sed -i '/^deb/ s/http:\/\/security.ubuntu.com/http:\/\/old-releases.ubuntu.com/g' $SRC
}
#---------------------------------------------#
#--- Procedure d'upgrade de la distribution :
upgradedistro()
{
SRC=/etc/update-manager/release-upgrades
#-- Préalables à une maj distro :
sudo apt-get install apt -y
#- Modifie le comportement de maj :
sudo cp $SRC ${SRC}.orig
sudo sed -i '/Prompt/ s/=lts/=normal/' $SRC
#-- sudo apt-get install update-manager-core
sudo do-release-upgrade -f DistUpgradeViewNonInteractive
#-- Remet le comportement de maj :
#sudo sed -i '/Prompt/ s/=normal/=lts/' $SRC
$GSUDO sed -i '/Prompt/ s/=normal/=lts/' $SRC
}
#---------------------------------------------#
#--- Procedure d'upgrade de la distribution :
manualactions()
{
echo "A faire : actions TBD manual du TODO"
# - Update GRUB_RECORDFAIL_TIMEOUT=1 so oem-config does not show grub
# - enable canonical partner repo
# - TOP ICI : enable better defaults for updates ( Check every 2 days,download security auto, show others every 2 weeks )
#-- /etc/apt/apt.conf.d/50unattended-upgrades ou 10periodic
#-- Maj secu : uniquement telecharger auto
SRC=/etc/apt/apt.conf.d/10periodic
#- (1->0) APT::Periodic::Unattended-Upgrade "0";
sudo sed -i '/Unattended-Upgrade/ s/1/0/' $SRC
# - Enable sleep on lid close
# - Enable Windows menu in the window title bar
# - Put size of launcher to 24
# - Show the % and time of battery as a default
# - Ajust Sleep timeout to 30 min
# - First run : Set wallpaper to ekimia one
}
#---------------------------------------------#
#--- Procedure d'upgrade de la distribution :
ekimiaupdates16()
{
echo "A faire : executer notre script pour 16.04"
}
#---------------------------------------------#
#--- Procedure de test de la version avant maj :
testversiondistro()
{
#echo "A faire : test version"
no_version=`lsb_release -rs`
#-- Compare la chaine de caracteres decrivant le no de version :
if [[ $no_version == "20.04" || $no_version == "18.04" || $no_version == "16.04" || $no_version == "14.04" ]] ; then
echo "Votre version d'Ubuntu $no_version est LTS et n'est pas obsolète'."
zenity --info --text "Votre version d'Ubuntu $no_version est LTS et n'est pas obsolète'"
exit
fi
}
#---------------------------------------------#
#==== Procedure principale =====================================#
#--- Affichage de la boîte de dialogue pour confirmation :
zenity --question \
--title "Ekimia - Mise à niveau vers Ubuntu LTS " \
--text "Voulez-vous faire la mise à à niveau vers Ubuntu LTS ?"
if [ $? = 0 ] ; then
#--- Vérifie si la version est inférieure ou egale à 15.10 :
testversiondistro
#--- Modifications du fichier sources.list :
modifsourcelist
#--- Mise a jour de la base :
sudo apt-get update
#--- Mise a jour de la distribution :
zenity --info --text "Démarrage de la mise à jour de la distribution : ne pas éteindre votre ordinateur durant l'opération (2H )"
upgradedistro
#-- Execute les actions TBD manual du TODO :
manualactions
#-- Execute ensuite notre script pour 16.04 :
ekimiaupdates16
#--- Fin de la maj :
#zenity --info --text "Mise à jour terminée. Choisir OK pour redémarrer"
#echo "Mise à jour terminée. Veuillez redémarrer"
zenity --question --text "Mise à jour terminée. Voulez-vous redémarrer maintenant ?"
#sleep 1
if [ $? = 0 ] ; then
$GSUDO reboot
else
echo "Veuillez redémarrer ultérieurement."
fi
else
zenity --info --text "Aucune opération effectuée"
echo "Aucune opération effectuée"
sleep 1
fi
#---------------------------------------------#