Mettre en place les dépôts sur les clinux
À l'installation d'un clinux, les dépôts sont tous dans le fichier /etc/apt/sources.list
.
Or, il manque certains dépôts et il est recommandé de ne garder dans ce fichier que les dépôts pour Debian et de mettre les autres avec des fichiers "xxx.list" dans le répertoire /etc/apt/sources.list.d/
.
C'est le but du script startup.linux
, proposé ci-dessous, de réaliser ce travail avec un fichier sambaedu.list
pour les dépôts gérés par Sambaédu.
On placera ce fichier dans le répertoire /etc/sambaedu/applications/depots/
en le nommant startup.linux
pour qu'il puisse être lancé à chaque démarrage du clinux.
Procédure
Se connecter sur le SE4FS en root
Créer le répertoire
/etc/sambaedu/applications/depots/
.La commande pour créer ce répertoire depots est la suivante :
mkdir -p /etc/sambaedu/applications/depots/
Déposer le script
startup.linux
fourni ci-après dans le répertoire/etc/sambaedu/applications/depots/
.script
startup.linux
pour paramétrer les dépôts nécessaires à la gestion du clinux⚓1ladate="$(date +%Y_%m_%d_%Hh%Mmin%Ss)"
2texte_temoin_creation="création du répertoire /root/temoins le ${ladate}"
3texte_temoin_passage="on a utilisé startup.linux pour les dépôts le ${ladate}"
4temoin=/root/temoins/temoin.depots
5DEPOT_debian="deb.debian.org"
6NOMCODE=$(lsb_release --codename | cut -f2)
7version="bullseye"
8DEPOT_sambaedu="deb.sambaedu.org"
910tester_se4()
11{
12# pour éviter de lancer le script sur le se4fs
13# On rend le script "crétin-résistant"
14[ -e /var/sambaedu/clinux ] && echo "Malheureux... Ce script est à exécuter sur les clients-Linux, pas sur le serveur !" && exit 1
15}
1617repertoire_root_temoins()
18{
19# le répertoire /root/temoins servira éventuellement pour un script unefois ou chaquefois
20if [ ! -e "/root/temoins" ]
21then
22# il n'existe pas : on le crée
23mkdir -p /root/temoins
24# on pose un témoin de création
25echo "${texte_temoin_creation}" > ${temoin}
26echo "${texte_temoin_passage}" >> ${temoin}
27else
28# il existe : on pose un témoin de passage
29echo "${texte_temoin_passage}" > ${temoin}
30fi
31}
3233test_version()
34{
35# tester si on est sur la bonne version de Debian
36if [ "$NOMCODE" = "$version" ]
37then
38echo "on est sur une Debian/$version" >> ${temoin}
39else
40echo "on n'est pas sur une Debian/$version !" >> ${temoin}
41fi
42}
4344modifier_sources_debian()
45{
46# on teste si le fichier /etc/apt/sources.list contient déjà ce qu'il faut
47test=$(grep 'fin du sources.list' /etc/apt/sources.list | awk '{print $2 " " $3 " " $4}')
48if [ "$test" != "fin du sources.list" ]
49then
50# on sauvegarde le fichier existant avec la date avant de l'écraser
51cp /etc/apt/sources.list /root/sources.list.sauve.${ladate}
52cat > /etc/apt/sources.list << END
53#############################################
54## sources.list complet pour le dépot ${DEPOT_debian}
55##
56## fichier /etc/apt/sources.list
57###############################
58### $version
59deb http://${DEPOT_debian}/debian/ ${version} main contrib non-free
6061### ### $version-updates
62deb http://${DEPOT_debian}/debian/ ${version}-updates main contrib non-free
6364### ### ### ### $version-backports
65deb http://${DEPOT_debian}/debian/ ${version}-backports main contrib non-free
6667### ### ### ### ### $version security
68deb http://${DEPOT_debian}/debian-security ${version}-security main contrib non-free
6970################################################
71## Autres dépots : à ne pas mettre dans ce fichier (recommandation)
72## créer un fichier spécifique nom_spécifique.list (un fichier par dépôt) dans /etc/apt/sources.list.d/
7374## fin du sources.list complet pour le dépot ${DEPOT_debian}
75################################################
76END
77echo "on a remplacé le fichier /etc/apt/sources.list" >> ${temoin}
78else
79echo "fichier /etc/apt/sources.list conforme" >> ${temoin}
80fi
81}
8283cles_depots_debian()
84{
85###### est-ce utile ?
86# Installation des clefs des dépots si elle ne sont pas installées
87# clés pour debian-keyring
88apt-get install debian-keyring
89echo "on a installé les clefs des dépôts debian" >> ${temoin}
90}
9192maj_key_sambaedu()
93{
94# récupérer la nouvelle clé du dépôt sambaedu
95wget -O - https://deb.sambaedu.org/sambaedu.gpg.key|apt-key add -
96echo "on a récupéré la nouvelle clé du dépôt sambaedu" >> ${temoin}
97}
9899modifier_se4list()
100{
101# on teste l'existence de /etc/apt/sources.list.d/se4.list
102if [ ! -e "/etc/apt/sources.list.d/se4.list" ]
103then
104# on le crée
105touch /etc/apt/sources.list.d/se4.list
106fi
107# on teste si le fichier /etc/apt/sources.list.d/se4.list contient déjà ce qu'il faut
108test=$(grep 'fin du se4.list' /etc/apt/sources.list.d/se4.list | awk '{print $2 " " $3 " " $4}')
109if [ "$test" != "fin du se4.list" ]
110then
111# on sauvegarde le fichier existant avec la date avant de l'écraser
112cp /etc/apt/sources.list.d/se4.list /root/se4.list.sauve.${ladate}
113# création du /etc/apt/sources.list.d/se4.list
114cat > /etc/apt/sources.list.d/se4.list << END
115#############################################
116## se4.list pour le dépot ${DEPOT_sambaedu}
117##
118## fichier /etc/apt/sources.list.d/se4.list
119###############################
120#### Dépôt en XP
121#deb http://${DEPOT_sambaedu}/debian ${version} se4XP
122123#### Dépôt en stable
124#deb http://${DEPOT_sambaedu}/debian ${version} stable
125126## fin du se4.list pour le dépôt ${DEPOT_sambaedu}
127#############################################
128END
129echo "on a créé le fichier /etc/apt/sources.list.d/se4.list" >> ${temoin}
130else
131echo "fichier /etc/apt/sources.list.d/se4.list conforme" >> ${temoin}
132fi
133}
134135determiner_canal()
136{
137# on se met dans un canal : stable ou se4XP
138# par exemple en stable :
139#sed -i '/bullseye se4XP/s/^d/#d/' /etc/apt/sources.list.d/se4.list
140#sed -i '/bullseye stable/s/^#d/d/' /etc/apt/sources.list.d/se4.list
141# par exemple en se4XP :
142sed -i '/bullseye se4XP/s/^#d/d/' /etc/apt/sources.list.d/se4.list
143sed -i '/bullseye stable/s/^d/#d/' /etc/apt/sources.list.d/se4.list
144# on détermine dans quel canal on se trouve : stable ou se4XP
145test=$(grep '^[^#;]' /etc/apt/sources.list.d/se4.list | awk '{print $4}')
146case "$test" in
147stable)
148echo "le canal de mise à jour est stable" >> ${temoin}
149;;
150se4XP)
151echo "le canal de mise à jour est se4XP" >> ${temoin}
152;;
153*)
154echo "canal de mise à jour inconnu : $test" >> ${temoin}
155;;
156esac
157}
158159recharger_paquets()
160{
161# on recharge la liste des paquets
162apt-get update
163if [ "$?" != "0" ]
164then
165echo "le rechargement de la liste des paquets ne s'est pas fait correctement" >> ${temoin}
166else
167echo "on a rechargé la liste des paquets" >> ${temoin}
168fi
169}
170171# Programme
172tester_se4
173repertoire_root_temoins
174#test_version
175if [ "$NOMCODE" = "$version" ]
176then
177echo "on est sur une Debian/$version" >> ${temoin}
178modifier_sources_debian
179#maj_key_sambaedu
180modifier_se4list
181determiner_canal
182recharger_paquets
183else
184echo "on n'est pas sur une Debian/$version !" >> ${temoin}
185fi
- Résultat
Et c'est tout ! Les dépôts nécessaires à la gestion du clinux sont mis en place lors du (re-)démarrage du clinux.
Cela peut concerner l'installation d'applications ou la mise à jour du système et des applications installées.