Vous êtes sur la page 1sur 23

Dépôts, Paquets et Clé Live USB

Debian
Repository, Packages and Live USB Debian Key

Version : 1.2

Version : 1.2 Date : 31/10/2018


Auteur : PANESCU Mihai Relecture :
Détails ajouté après création clé sur un autre ordinateur

Version : 1.1 Date : 17/07/2018


Auteur : KOEHLER Christophe Relecture :
Ajout des paragraphes sur la suppression de paquet et le nettoyage d’un dépôt.

Version : 1.0 Date : 22/11/2017


Auteur : KOEHLER Christophe Relecture : Mihai 20/02/2018
Première rédaction et validation
Dépôts, Paquets et Clé Live USB Debian v. 1.2

Table des matières


1 Objet du document...........................................................................................................................4
2 Source documentaire........................................................................................................................5
2.1 Clé GPG....................................................................................................................................5
2.2 Paquets......................................................................................................................................5
2.3 Dépôt.........................................................................................................................................5
2.4 Clé usb live...............................................................................................................................5
2.5 Disque dur en mémoire ram (pour génération clé Live USB Debian).....................................5
2.6 Proxy pour les paquets..............................................................................................................5
2.7 Installation automatisée (réponse préremplie)..........................................................................5
3 Signature pour les dépôts et les paquets...........................................................................................7
3.1 Créer une signature...................................................................................................................7
3.2 Liste des signatures...................................................................................................................7
3.3 Modifier une signature..............................................................................................................7
3.4 Partager la signature publique...................................................................................................8
3.5 Sauvegarde d’une signature......................................................................................................8
3.6 Modifier le mot de passe d’une signature.................................................................................8
4 Maintenance des paquets..................................................................................................................9
4.1 Création d’un paquet.................................................................................................................9
4.1.1 changelog........................................................................................................................10
4.1.2 control.............................................................................................................................10
4.1.3 rules.................................................................................................................................10
4.2 Compilation du paquet............................................................................................................10
4.3 Mise à jour du paquet (changement de version).....................................................................11
5 Gestion du dépôt.............................................................................................................................12
5.1 Création d’un dépôt................................................................................................................12
5.2 Ajouter un paquet dans le dépôt..............................................................................................12
5.3 Supprimer un paquet...............................................................................................................12
5.4 Nettoyer un dépôt....................................................................................................................13
5.5 Ajouter le dépôt dans la liste des sources...............................................................................13
5.6 Mise en place du dépôt en version web..................................................................................13
5.7 Installation d’un logiciel depuis le dépôt................................................................................14
5.7.1 Mise à jour de la liste de dépôts......................................................................................14
5.7.2 Recherche d’un paquet....................................................................................................14
5.7.3 Installation du logiciel svCoordinateur...........................................................................15
5.7.4 Désinstallation du logiciel svCoordinateur.....................................................................15
6 Création d’une clé Live USB Debian.............................................................................................16
6.1 Utilisation d’un disque mémoire.............................................................................................16
6.2 Utilisation d’un cache/proxy pour les paquets........................................................................16
6.2.1 Installation.......................................................................................................................16
6.2.2 Configuration..................................................................................................................16
6.3 Configuration du générateur de clé Live USB Debian...........................................................16
6.3.1 Le répertoire auto............................................................................................................17
6.3.1.1 Paramètres de configuration auto/config.................................................................17
6.3.2 Le répertoire config.........................................................................................................18

dépots et paquets.odt 2
Dépôts, Paquets et Clé Live USB Debian v. 1.2

6.3.2.1 Ajout d'un dépôt du web dans le dossier config/archive.........................................21


6.4 Compilation d’une clé Live USB Debian...............................................................................21
6.5 Gravure du fichier ISO sur clé USB.......................................................................................22
6.6 Créer une partition Vossloh pour la mise à jour......................................................................22

dépots et paquets.odt 3
Dépôts, Paquets et Clé Live USB Debian v. 1.2

1 Objet du document
Fournir un guide de création de paquet Debian, de gestion de dépôts Debian et de génération de clé
Live USB Debian

dépots et paquets.odt 4
Dépôts, Paquets et Clé Live USB Debian v. 1.2

2 Source documentaire
2.1 Clé GPG

2.2 Paquets
• https://www.debian.org/doc/manuals/maint-guide/

• http://blog.jonliv.es/blog/2011/04/26/creating-your-own-signed-apt-repository-and-debian-
packages/

2.3 Dépôt
• https://wiki.debian.org/DebianRepository/SetupWithReprepro

• https://blog.heckel.xyz/2015/10/18/how-to-create-debian-package-and-debian-repository/

2.4 Clé usb live


• http://debian-live.alioth.debian.org/live-manual/stable/manual/html/live-manual.en.html

• http://arpinux.developpez.com/construire-un-live-debian/

• https://openclassrooms.com/forum/sujet/construire-un-live-debian-nomme-dflinux

2.5 Disque dur en mémoire ram (pour génération clé Live USB Debian)
• http://linuxmao.org/tiki-index.php?page=Tuto%20Utilisez%20la%20RAM%20comme
%20disque%20de%20travail&structure=Accueil+Tutos&redirectpage=Tuto%20Utilisez
%20la%20RAM%20comme%20disque%20de%20travail

2.6 Proxy pour les paquets


• https://blog.packagecloud.io/eng/2015/05/05/using-apt-cacher-ng-with-ssl-tls/

2.7 Installation automatisée (réponse préremplie)


• https://www.debian.org/releases/stretch/amd64/

• https://github.com/xobs/debian-installer/blob/master/doc/devel/partman-auto-recipe.txt

dépots et paquets.odt 5
Dépôts, Paquets et Clé Live USB Debian v. 1.2

Espace de travail

Créer un répertoire de travail (/home/echange/mirroirs/vossloh)


mkdir -p /home/echange/mirroirs/vossloh

dépots et paquets.odt 6
Dépôts, Paquets et Clé Live USB Debian v. 1.2

3 Signature pour les dépôts et les paquets.


3.1 Créer une signature
gpg --gen-key
Saisir un nom (Signalisation Vossloh Cogifer France) et une adresse e-mail (signalisation@vossloh.com)

3.2 Liste des signatures


Lister les clés GPG, -k pour les clés publiques, -K pour les clés privées
gpg -k
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u
gpg: next trustdb check due at 2019-11-09
/home/ckh/.gnupg/pubring.kbx
----------------------------
pub rsa2048 2017-11-09 [SC] [expires: 2019-11-09]
4216B407CCA6221C8EDF97D5EE96822485CF4EE7
uid [ultimate] Christophe KOEHLER <christophe.koehler@vossloh.com>
sub rsa2048 2017-11-09 [E] [expires: 2019-11-09]

pub rsa2048 2017-11-09 [SC] [expires: 2019-11-09]


0B8B0580D9BBDFE68CE53F8EA8620DBA3904E710
uid [ultimate] Système de signalisation Vossloh-Cogifer France <signalisation@vossloh.com>
sub rsa2048 2017-11-09 [E] [expires: 2019-11-09]

3.3 Modifier une signature


Modifier la date d’expiration d’une clé, Cette opération est à faire toujours après l’import d’une clé
gpg --edit-key 0B8B0580D9BBDFE68CE53F8EA8620DBA3904E710

list
sec rsa2048/A8620DBA3904E710
created: 2017-11-09 expires: 2037-11-05 usage: SC
trust: ultimate validity: ultimate
ssb rsa2048/751274C541762FFD
created: 2017-11-09 expires: 2019-11-09 usage: E
[ultimate] (1). Système de signalisation Vossloh-Cogifer France <signalisation@vossloh.com>

expire
Changing expiration time for the primary key.
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)

0
Key does not expire at all
Is this correct? (y/N)

Y
sec rsa2048/A8620DBA3904E710
created: 2017-11-09 expires: never usage: SC
trust: ultimate validity: ultimate
ssb rsa2048/751274C541762FFD
created: 2017-11-09 expires: 2019-11-09 usage: E
[ultimate] (1). Système de signalisation Vossloh-Cogifer France <signalisation@vossloh.com>

save

dépots et paquets.odt 7
Dépôts, Paquets et Clé Live USB Debian v. 1.2

3.4 Partager la signature publique


Exporter la clé de signature

gpg --armor --export signalisation@vossloh.com \


>signalisation@vossloh.com.gpg.key

Dans le répertoire de travail créer le dossier gpg (/home/echangedsbe/mirroirs/vossloh/gpg)


Copier le fichier ‘.gpg.key’ dans le répertoire de partage
/home/signalisation/go/src/vossloh-cogifer.com/signalisation/sv/keys.gpg

3.5 Sauvegarde d’une signature


Transporter la clé de signature d’un ordinateur à un autre
TODO

gpg --export 0B8B0580D9BBDFE68CE53F8EA8620DBA3904E710 > public.key


gpg --export-secret-key 0B8B0580D9BBDFE68CE53F8EA8620DBA3904E710 > private.key

Saisir cette commande dans le réprtoire de partage cité plus haut (,,,,/go/src/,,,/sv/keys,gpg
Il est à noter que le mdp est « vossloh »
gpg --import public.key
gpg --import private.key -mdp vossloh

3.6 Modifier le mot de passe d’une signature


Pour utiliser des scripts automatiques, il est nécessaire de supprimer le mot de passe de la signature.

Pour changer à « sans mot de passe » saisir cette commande, pour mdp tajoter le mdp à la fin

gpg --change-passphrase 0B8B0580D9BBDFE68CE53F8EA8620DBA3904E710

Pour voir les clé s privées saisir la commande


gpg -K

dépots et paquets.odt 8
Dépôts, Paquets et Clé Live USB Debian v. 1.2

4 Maintenance des paquets


4.1 Création d’un paquet
Nous allons dans cet exemple créer le paquet pour le logiciel svCoordinateur

Attention le nom d’un paquet ne peut contenir que des caractères minuscules, numériques, souligné
‘_’, point ‘.’ et tilde ‘~’.

Saisir la commande dhmake dans le répertoire ,,/applications/ville/svServeurXXX pour créer


l’arborescence nécessaire à la création de la clé.

Dans le dossier sv/svCoordinateur créer l’arborescence du paquet :


dh_make -n -s -p svcoordinateur_1.0.0 -e christophe.koehler@vossloh.com

Cette commande créer le répertoire sv/svCoordinateur /debian.


Le paramètre -e permet de préciser l’e-mail qui est inscrit par défaut dans les documents textes.

Dans celui-ci, il faut mettre à jour les fichiers suivants :

• changelog Suivi des changements de l’application


• compat Numéro de version du système debian (9 = stretch)
• control Définition du paquet (le numéro de version est pris dans changelog)
• copyright Licence à changer en propriétaire
• manpage.1.ex Manuel d’utilisateur au format man
• manpage.sgml.ex Manuel d’utilisateur au format sgml
• manpage.xml.ex Manuel d’utilisateur au format xml
• menu.ex Intégration dans les menus de debian
• postinst.ex Script exécuté avant installation
• postrm.ex Script exécuté avant suppression
• preinst.ex Script exécuté après installation
• prerm.ex Script exécuté après suppression
• README Description du paquet
• README.Debian Description spécifique debian du paquet
• README.source Description du paquet source
• rules Règles de génération du paquet
• source/format Format des fichiers de paramétrage du paquet (3.0 quilt)
• svbdd.cron.d.ex Tâches automatiques à mettre en place
• svbdd.default.ex Paramètres à passer au daemon
• svbdd.doc-base.EX
• svbdd-docs.docs Liste des fichiers docs à joindre
Pour un panel, nommer et mettre à jour les fichiers
sv-ville-pannel,cron,d
sv-ville-panel-docs,docs

dépots et paquets.odt 9
Dépôts, Paquets et Clé Live USB Debian v. 1.2

Les fichiers ayant pour extension ‘.ex’ sont des exemples de paramétrage. Il faut supprimer
l’extension pour l’intégrer dans le paquet.

cd debian
mv postinst.ex postinst
gedit --new-window changelog control copyright postinst rules

4.1.1 changelog

svcoordinateur (0.5.0) stable; urgency=medium


* Initial Release.
* Première version distribuée de svCoordinateur.
* D'autres fonctionnalités seront ajoutées prochainement.
-- Christophe KOEHLER <christophe.koehler@vossloh.com> Thu, 09 Nov 2017
15:03:18 +0100

4.1.2 control

Source: svcoordinateur
Section: supervision
Priority: optional
Maintainer: Christophe KOEHLER <christophe.koehler@vossloh.com>
Build-Depends: debhelper (>= 9)
Standards-Version: 3.9.8
Homepage: www.vossloh.com
#Vcs-Git: https://anonscm.debian.org/collab-maint/svcoordinateur.git
#Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/svcoordinateur.git

Package: svcoordinateur
Architecture: any → ‘any’ quand c’est compilé, ‘all’ si ça ne dépend pas du processeur
Depends: svbdd → liste des dépendance séparé par des virgules ex. : python (>=3), svbdd
Description: Coordinateur pour la gestion des services Vossloh SV
<insert long description, indented with spaces>

4.1.3 rules

#!/usr/bin/make -f
export DH_VERBOSE = 1

%:
dh $@

override_dh_auto_install:
dh_auto_install -- prefix=/usr

override_dh_strip:
echo "No stripping for go compiler"
true;

Rappel : $@ est la liste de tous les arguments de la ligne de commande

dépots et paquets.odt 10
Dépôts, Paquets et Clé Live USB Debian v. 1.2

4.2 Compilation du paquet

Pour que le paquet puisse être compilé en 32bits et en 64bits, il faut utiliser un Makefile.
Saisir la commande make dans le répertoire de ce fichier pour l’exécuter.

Exemple de Makefile pour svCoordinateur :


prefix = /usr/local/sv

GO_OS=linux
GO_ARCH=386
ifeq ($(DEB_TARGET_ARCH_CPU),amd64)
GO_ARCH=amd64
endif

PROJECT=svBdd

all: $(PROJECT)

$(PROJECT): *.go
#export
target=${DEB_TARGET_ARCH_CPU} GOOS=${GO_OS} GOARCH=${GO_ARCH} go build -o
$@

install: $(PROJECT)
install -D $(PROJECT) $(DESTDIR)$(prefix)/bin/$(PROJECT)

clean:
-rm -f $(PROJECT)
go clean

distclean: clean

uninstall:
-rm -f $(DESTDIR)$(prefix)/bin/$(PROJECT)

.PHONY: all install clean distclean uninstall

Pour créer le paquet, on utilise la commande


dpkg-buildpackage --sign-key=0B8B0580D9BBDFE68CE53F8EA8620DBA3904E710
ou pour préciser l’architecture i386 (32bits), Il est à noter que l’architecture par défaut est 64 bits,
donc pas besoin d’option -ai,,,
dpkg-buildpackage -ai386 --sign-key=0B8B0580D9BBDFE68CE53F8EA8620DBA3904E710

Sign-key est la clé de certification gpg crée plus haut.

Pour svServeurMagelis, lancer la commande dpkg-,,,dans le répertoire qui inclut le répertoire


« debian », à savoir ,,,/sv/applications/rabat/svServeurWebKep

4.2.1 Mise à jour du paquet (changement de version)

Il faut mettre à jour le contenu du fichier ‘changelog’ avant de régénérer le paquet.

dépots et paquets.odt 11
Dépôts, Paquets et Clé Live USB Debian v. 1.2

5 Gestion du dépôt

5.1 Création d’un dépôt


Création du répertoire :
cd /home/echange/mirroirs/vossloh
mkdir -p apt/debian/conf

Configuration du dépôt :
gedit apt/debian/conf/distributions

Origin: Vossloh SV
Label: Vossloh SV
Codename: stretch
Architectures: i386 amd64
Components: main
Description: Apt repository for Vossloh SV
SignWith: 0B8B0580D9BBDFE68CE53F8EA8620DBA3904E710

Ou Codename est le nom de la version debian et SignWith la clé gpg de signature.


Ce bloc doit être répété pour chaque version de debian supporté.

Ajouter le fichier options pour simplifier le traitement en ligne de commande :


gedit apt/debian/conf/options

verbose
basedir /home/echange/mirroirs/vossloh/apt/debian
ask-passphrase

5.2 Ajouter un paquet dans le dépôt


La définition d’une variable d’environnement évite de passer le chemin du dépôt avec -b ou d’être à
la racine de celui-ci.
export REPREPRO_BASE_DIR=/home/echange/mirroirs/vossloh/apt/debian
Le dépôt d’un paquet debian se fait simplement en précisant la version de debian ciblé et le nom du
paquet.
reprepro includedeb stretch svcoordinateur_0.5.0_amd64.deb
ou on peut aussi envoyer l’ensemble des paquets du répertoire courant :
reprepro includedeb stretch *.deb

5.3 Supprimer un paquet


Si l’on veut retirer un paquet du dépôt, la commande est la suivante :
reprepro remove stretch sv-rabat-panel
Par contre il faudra nettoyer le dépôt car celui-ci reste référencé (surtout si l’on souhaite remettre le
même paquet de même version avec un contenu différent).

dépots et paquets.odt 12
Dépôts, Paquets et Clé Live USB Debian v. 1.2

5.4 Nettoyer un dépôt


Il peut être nécessaire de nettoyer le contenu du dépôt en effaçant les paquets qui ne sont plus utiles
car une version plus récente et stable est mise à disposition.
reprepro deleteunreferenced

5.5 Ajouter le dépôt dans la liste des sources


Dans le dossier ‘/etc/apt/sources.list.d/’ ajouter le fichier vossloh.list avec pour contenu le chemin
du dépôt, Ci joint un exemple du contenu de vossloh,list

cat /etc/apt/sources.list.d/vossloh.list

# Version WEB
deb http://10.103.5.0:8085/apt/debian stretch main

# Version chemin local


deb file:///home/echange/mirroirs/vossloh/apt/debian stretch main

Ajouter la clé de signature du dépôt et des paquets

# Méthode pour clé sur serveur WEB


wget -qO – http://10.103.5.0:8085/gpg/signalisation@vossloh.com.gpg.key | sudo apt-key add -

# Méthode pour clé sur chemin local


sudo apt-key add /home/echange/mirroirs/vossloh/gpg/signalisation@vossloh.com.gpg.key

5.6 Mise en place du dépôt en version web


Pour partager le dépôt avec plusieurs postes, le partage de celui-ci via le protocole http est
recommandé.
Pour cela l’utilisation du serveur web nginx est recommandée. Installer d’abord le serveur web.
sudo apt install nginx

La configuration du serveur nginx se passe dans le répertoire /etc/nginx/conf.d

cat /etc/nginx/conf.d/repository.conf
server {
listen 8085;
server_name packages.internal;

access_log /var/log/nginx/packages-access.log;
error_log /var/log/nginx/packages-error.log;

root /home/echange/mirroirs/vossloh/;

location / {
index index.html index.php;
}

location ~ /(.*)/conf {
deny all;
}

location ~ /(.*)/db {
deny all;
}

location ~ [^/]\.php(/|$) {
fastcgi_index index.php;

dépots et paquets.odt 13
Dépôts, Paquets et Clé Live USB Debian v. 1.2

include fcgi.conf;
fastcgi_pass unix:/var/run/php/localhost-packages.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

client_max_body_size 100M;

La configuration de PHP se trouve dans le répertoire /etc/php/7.0/fpm/php.ini

Il faut mettre à jour les lignes suivantes :

upload_max_filesize = 100M
post_max_size = 120M

Relancer nginx après la mise à jour du fichier de configuration


sudo systemctl restart nginx.service

Activer nginx au démarrage de l’ordinateur


sudo systemctl enable nginx.service

Vérifier le fonctionnement du service nginx


systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2017-11-21 13:30:42 CET; 22h ago
Docs: man:nginx(8)
Main PID: 6232 (nginx)
Tasks: 17 (limit: 4915)
CGroup: /system.slice/nginx.service
├─6232 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─6233 nginx: worker process
├─6234 nginx: worker process
├─6235 nginx: worker process
├─6236 nginx: worker process
├─6237 nginx: worker process
├─6238 nginx: worker process
├─6239 nginx: worker process
├─6240 nginx: worker process
├─6241 nginx: worker process
├─6242 nginx: worker process
├─6243 nginx: worker process
├─6244 nginx: worker process
├─6245 nginx: worker process
├─6246 nginx: worker process
├─6247 nginx: worker process
└─6248 nginx: worker process

5.7 Installation d’un logiciel depuis le dépôt


Pour installer le logiciel depuis le dépôt on utilise les fonctions de gestion de paquet ‘apt’ de debian.

5.7.1 Mise à jour de la liste de dépôts


sudo apt-get update

5.7.2 Recherche d’un paquet


sudo apt search svcoord
En train de trier... Fait
Recherche en texte intégral... Fait
svcoordinateur/unknown 0.5.0 amd64
Coordinateur pour la gestion des services Vossloh SV

dépots et paquets.odt 14
Dépôts, Paquets et Clé Live USB Debian v. 1.2

5.7.3 Installation du logiciel svCoordinateur


sudo apt-get install svcoordinateur
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les NOUVEAUX paquets suivants seront installés :
svcoordinateur
0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 0 o/2 478 ko dans les archives.
Après cette opération, 9 654 ko d'espace disque supplémentaires seront utilisés.
Réception de:1 file:/home/echange/mirroirs/vossloh/apt/debian stretch/main amd64 svcoordinateur
amd64 0.5.0 [2 478 kB]
N: « ajenti.list.old » dans le répertoire « /etc/apt/sources.list.d/ » a été ignoré car il utilise
une extension non valable
Sélection du paquet svcoordinateur précédemment désélectionné.
(Lecture de la base de données... 299351 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../svcoordinateur_0.5.0_amd64.deb ...
Dépaquetage de svcoordinateur (0.5.0) ...
Paramétrage de svcoordinateur (0.5.0) ...

5.7.4 Désinstallation du logiciel svCoordinateur


sudo apt-get remove svcoordinateur
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets suivants seront ENLEVÉS :
svcoordinateur
0 mis à jour, 0 nouvellement installés, 1 à enlever et 0 non mis à jour.
Après cette opération, 9 654 ko d'espace disque seront libérés.
N: « ajenti.list.old » dans le répertoire « /etc/apt/sources.list.d/ » a été ignoré car il utilise
une extension non valable
Souhaitez-vous continuer ? [O/n] o
(Lecture de la base de données... 299355 fichiers et répertoires déjà installés.)
Suppression de svcoordinateur (0.5.0) ...

dépots et paquets.odt 15
Dépôts, Paquets et Clé Live USB Debian v. 1.2

6 Création d’une clé Live USB Debian


La base de développement d’une clé Live USB Debian se trouve dans le dépôt SVN
https://sources.vossloh-cogifer.com/svn/vossloh-kiwi/liveusb

Les outils de génération de clé sont dans le paquet live-build


sudo apt install live-build

6.1 Utilisation d’un disque mémoire


L’idée est d’utiliser la mémoire RAM pour créer un disque dur virtuel pour accélérer les opérations
de lecture et écriture et de ne pas user prématurément le disque SSD.
Attention au redémarrage de l’ordinateur, le contenu de ce disque est effacé.

Exemple allocation de 15Go de RAM dans le dossier local ./ramdisk


créer le dossier ./ramdisk

sudo mount -t tmpfs -o size=15000M tmpfs ./ramdisk

Pour libérer rapidement la mémoire allouée ou le contenu du disque :

sudo umount ./ramdisk

6.2 Utilisation d’un cache/proxy pour les paquets


L’idée est de limiter les accès réseau lors de multiples générations et régénérations de clé Live USB
Debian. Pour cela Debian Linux fournit l’outil apt-cacher-ng.
Cette opération est à réaliser sur le serveur sl-ins-0129.

6.2.1 Installation
sudo apt install apt-cacher-ng

6.2.2 Configuration
sudo nano acng.conf
Ajouter la ligne suivante pour autoriser http et https
PassThroughPattern: .*

Pour activer le service


sudo systemctl enable apt-cacher-ng.service
Pour lancer le service
sudo systemctl start apt-cacher-ng.service

6.3 Configuration du générateur de clé Live USB Debian


Deux répertoires contiennent les informations de paramétrage pour la génération de la clé Live USB
Debian : auto et config.

dépots et paquets.odt 16
Dépôts, Paquets et Clé Live USB Debian v. 1.2

Pour créer la clé, copier dans le répertoire …./ ramdisk le contenu du répertoire souhaité (liveusb ou
liveusbkep ATTENTION ces fichiers sont paramétrés pour récupérer les paquets sur le serveur
127.0.0.1. Mettre à jour l’adresse en cas de génération à partir d’un autre PC.
• liveusb/auto/config supprimer la dernière ligne --apt-http-proxy http://127.0.0.1:3142/ \
• liveusb/config/common, supprimer dans la ligne
LB_APT_HTTP_PROXY="http://127.0.0.1:3142" l’adresse http

Ouvrir une terminal en tant que root rentrer dans le répertoire ramdisk et pour créer la clé exécuter
dans l’ordre les commandes
lb clean
lb config
lb build
La génération est effectuée par la commande build, ce qui crée le fichier ISO.

6.3.1 Le répertoire auto


Initialement créé par la commande ‘lb config’, il contient les scripts supplémentaires exécutés lors
de l’appel des fonctions correspondantes par la commande ‘lb clean| lb config| lb build’. IL est
compilé depuis config.tar.xz mémorisé dans echangeDSBE/KIWI.
▼auto
►auto/clean : Script d’actions réalisés pour le nettoyage du répertoire
►auto/build : Script d’actions réalisés pour la construction
►auto/config : Scripts d’actions réalisés pour la configuration de la clé

6.3.1.1 Paramètres de configuration auto/config


Ajouter les instruction suivantes pour utiliser des dépôts accessibles en https et pour interroger au
moyen de apt-cacher-ng.
Les lignes importantes à modifier sont : architecture "i386" ou "amd64", linux-flavours "686-pae"
ou "amd64" et apt-http-proxy http avec l’adresse locale si on génère sur le serveur ou l’adresse du
serveur si on génère sur un autre ordinateur chez VOSSLOH , le apt-cacher ne fonctionne pas bien
sur http://10.103.5.0:3142/ , donc il faut supprimer la ligne.
A l’extérieur de VOSSLOH, on doit installer apt-cacher sur l’ordinateur utilisé pour générer.
lb config noauto \
--architectures i386 \
--linux-flavours "686-pae" \
--linux-packages "linux-image" \
--bootappend-live "locales=fr_FR.UTF-8 keyboard-layouts=fr user-default-
groups=users,cdrom,sudo,audio,dip,video,plugdev,netdev,bluetooth,lpadmin,scanne
r,vboxusers username=signalisation" \
--bootappend-install "locales=fr_FR.UTF-8 keyboard-layouts=fr" \
--distribution "stretch" \
--archive-areas "main contrib" \
--hdd-size 3000 \
--system "live" \
--debian-installer "live" \

dépots et paquets.odt 17
Dépôts, Paquets et Clé Live USB Debian v. 1.2

--binary-images "iso-hybrid" \
--apt-indices "false" \
--apt-recommends "true" \
--memtest "none" \
--win32-loader "true" \
--source "false" \
--debootstrap-options "--include=apt-transport-https,ca-
certificates,openssl" \
--apt-http-proxy http://127.0.0.1:3142/ \
"${@}"

6.3.2 Le répertoire config


Initialement créé par la commande ‘lb config’, le contenu de celui-ci peut être modifié et doit être
sauvegardé pour une prochaine génération. Ne pas oublier de changer la liste des paquets
▼config
►config/apt
►config/archives
Répertoire contenant des fichiers '*.list.chroot' qui listent les dépôts à ajouter pour la
recherche des paquets à installer, ainsi que les fichiers ‘*.key.chroot’ pour les clés de
certification des dépots ajoutés . Exemple :
vossloh.list.chroot → l’adresse du site du dépôt pour l’application SV de vossloh
deb http://10.103.5.0:8085/apt/debian stretch main
vossloh.key.chroot → la clé de signature du dépôt
pour l’application MONO, il faut utiliser mono.key.chroot et mono.list.chroot
deb https://download.mono-project.com/repo/debian stretch main

►config/build
apparaît seulement après lancement de la commande build
►config/debian-installer
▼config/hooks
►config/hooks/live
Répertoire contenant des scripts '***.hook.chroot' exécutés lors de l'exécution de la clé
comme système d'exploitation (clé usb live)
►config/hooks/normal
Répertoire contenant des scripts '***.hook.chroot' exécutés lors de l'installation de la clé
comme système d'exploitation de l'ordinateur cible.
En plus de ceux générés par la commande « lb config », on rajoute les scripts
personnels, ce qui font le paramétrage 9900 ( pour sudoerr…. ), 9910 ( pour
installations depuis svn, etc), 9920 spécifique KEP

9900
#!/bin/sh
set -e
# Enlève les logiciels préinstallés qui peuvent poser problèmes
apt-get -y remove wicd-daemon wicd-gtk python-wicd
apt-get -y autoremove
# Paramètres sudoers
chmod 777 /etc/sudoers
echo "">>/etc/sudoers
echo "signalisation ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers

dépots et paquets.odt 18
Dépôts, Paquets et Clé Live USB Debian v. 1.2

chmod 440 /etc/sudoers


9910
#!/bin/sh

HOME_DIR='/home/signalisation'
# Désactivation du lancement de svCoordinateur
sudo rm ${HOME_DIR}/.xsessionrc

# Ajout des logiciels et application Strasbourg depuis SVN

SVN_OPT='--non-interactive --username=ckh --password=c*5Sh3rn'


SVN_SRV='https://sources.vossloh-cogifer.com/svn'
SVN_APP='strasbourg'
REP_APP='Strasbourg'

cd ${HOME_DIR}

mkdir -p vossloh-exe
cd vossloh-exe
svn co ${SVN_SRV}/vossloh-exe . ${SVN_OPT}
rm .svn -R

cd ${HOME_DIR}

mkdir -p ${REP_APP}/Configuration
cd ${REP_APP}/Configuration
svn co ${SVN_SRV}/${SVN_APP}_configuration . ${SVN_OPT}
rm .svn -R
cd ${HOME_DIR}
mkdir -p scripts
cd scripts
svn co ${SVN_SRV}/scripts . ${SVN_OPT}
rm .svn -R
cd /usr/local
cp ${HOME_DIR}/scripts/usr_local/* . -Rf
# copie des scripts corrigés pour Debian
cd bin/debian
cp * ..
#remplacement /usr/local/share/applications de ${HOME} par la valeur de $
{HOME_DIR}
cd ${HOME_DIR}
chown 1000:100 . -R
9920
#!/bin/bash

HOME_DIR='/home/signalisation'

mkdir -p ${HOME_DIR}/driver_kep/edsbe
cd ${HOME_DIR}/driver_kep
mount -t cifs //10.103.5.0/echangedsbe edsbe
-odomain=railway.ad,username=ckh,password=c*5Sh3rn
tar --bzip2 -xvf "edsbe/logiciels/linux 64 bits/PenMount-Debian-9_32-
64bit_driver-v4.5.7_R6.tar.bz2"
umount edsbe
rmdir edsbe

# Script d'installation

echo '#!/bin/bash' >install.sh


echo -e "echo \"Installation du driver de l'écran tactile :
PENMOUNT\"">>install.sh
echo "cd ${HOME_DIR}/driver_kep/pmLinux-Debian9/">>install.sh
echo "sudo /bin/bash ./install.sh">>install.sh
echo "">>install.sh

dépots et paquets.odt 19
Dépôts, Paquets et Clé Live USB Debian v. 1.2

# Suppression de la ligne dans le fichier autostart pour n'exécuter


l'installation qu'une seule fois
echo "sed -i '/driver_kep/d' $
{HOME_DIR}/.config/lxsession/LXDE/autostart">>install.sh
echo "">>install.sh
# Ajoute une ligne pour lancer la configuration de la dalle tactile au
redémarrage
echo -e "echo \"@lxterminal --command ${HOME_DIR}/driver_kep/calibrage.sh\" >>$
{HOME_DIR}/.config/lxsession/LXDE/autostart">>install.sh
echo "">> install.sh
echo "sudo reboot">>install.sh

# Script de calibrage

echo '#!/bin/bash' >calibrage.sh


echo "sh
/usr/local/share/vossloh/configuration_KEP/configuration_KEP.sh">>calibrage.sh
echo "">>calibrage.sh
# Suppression de la ligne dans le fichier autostart pour n'exécuter le
calibrage qu'une seule fois
echo "sed -i '/driver_kep/d' $
{HOME_DIR}/.config/lxsession/LXDE/autostart">>calibrage.sh
echo "">>calibrage.sh

# Rend les scripts exécutables

chmod +x install.sh calibrage.sh

# Ajout du script d'installation au démarrage

echo "@lxterminal --command ${HOME_DIR}/driver_kep/install.sh" >>$


{HOME_DIR}/.config/lxsession/LXDE/autostart

chown 1000:100 ${HOME_DIR}/driver_kep -R


chown 1000:100 ${HOME_DIR}/.config/lxsession/LXDE -R

►config/includes
▼config/includes.binary avec des répertoires spécifiques, disponibles lors de l'installation. La
clé aura 3 systèmes d'exploitation:
• à installer sur la cible
• pour fonctionement "live"
• pour exécuter l'installation sur la cible
Tout le contenu de ... includes.binary se trouvera copié sur la clé d'installation, répertoire /cdrom.
Entre autres répertoires il y a :
►config/includes.binary/install
vss-preseed.cfg : Paramètres pour automatiser l'installation (les réponses aux questions
du debian installer (d–i ) - ça se lit – demande installation QUOI REPONSE)
►config/includes.bootstrap
►config/includes.chroot
Répertoire contenant des répertoires et fichiers copiés tel quel à la racine du système
d'exploitation généré
Exemple : le fichier 'config/includes.chroot/home/signalisation/.xsessionrc' pour définir
pour l'utilisateur signalisation le script de démarrage de session au lieu d'un classique
gestionnaire de fenêtre.
►config/includes.installer

dépots et paquets.odt 20
Dépôts, Paquets et Clé Live USB Debian v. 1.2

►config/includes.source
►config/packages
►config/packages.binary
►config/packages.chroot
Les paquets à installer manuellement par le générateur, avec la commande dpkg. Les
dépendences ne seront pas traitées, si les dépéndences ne sont pas déjà installés, le paquet
cité n'est pas installé. S'applique à librsvg2 pour application Mono.
►config/package-lists
Répertoire contenant des fichiers '*.list.chroot' qui listent les paquets et méta-paquets à
installer pour le système d’exploitation. Ces paquets sont installés avec la commande
apt install et les dépendances sont traitées (installées). On y trouve app.*, live.*,mono.*,
virtual.*, vossloh.*. Dans vossloh,* se trouvent tous les paquets du système Linux
nécessaires pour notre environnement graphique et utilitares (cifs, samba...)
►config/preseed
►config/rootfs

splash-screen.svg il faut adapter le chemin des fichiers en fonction de l'ordinateur, par exemple
inkscape:export-filename="/home/ckh/Travail/vos….
Modifier le dessin, l’exporter en format png et le sauvegarder en taille 640 x 480 pixels dans le
réprtoire ,,/config/includes,binary/isolinux/splash,png

6.3.2.1 Ajout d'un dépôt du web dans le dossier config/archive


Ci-dessous l'ajout d'un dépôt et de la clé de celui-ci pour mono :

cat mono.list.chroot
deb https://download.mono-project.com/repo/debian stretch main

Ajout du fichier de la clé (d'après les informations du site http://www.mono-


project.com/download/#download-lin-debian)

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys


3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
gpg --armor --export 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF > mono.key.chroot

6.4 Compilation d’une clé Live USB Debian


L’exécution des trois scripts dans l’ordre suivant garantit une bonne génération de la clé.
Si on génère dans un ramdisk, il ne faut pas oublier de sauvegarder les fichiers de ./auto et ./config,
ainsi que le résultat de la génération (le fichier iso).

Nettoyer le contenu du répertoire pour prendre en compte une nouvelle génération


sudo lb clean

Appliquer la configuration
lb config

dépots et paquets.odt 21
Dépôts, Paquets et Clé Live USB Debian v. 1.2

Nota : si on relance une configuration, il se peut qu’il soit utile de supprimer les répertoires .build et
cache.

Générer la clé Live USB Debian


sudo lb build

Pour sauvegarder le tar,xz, faire d’abord une commande « clean » et seulement après zipper.

6.5 Gravure du fichier ISO sur clé USB


Préparation de la clé USB
=========================
! Les commandes suivantes sont à exécuter en tant qu'utilisateur ROOT
1. Insérer la clé USB dans l'ordinateur
2. Vérifier son adresse avec la commande
> fdisk -l
Pour valider la lettre, taper la commande

fdisk /dev/sdc

les options suivantes permettent :


p affiche la table
m appel de l’aide
q quitter fdisk
3. Démonter la clé USB et toutes ses partitions
> umount /dev/sdc*
Ensuite utiliser la commande (Date nous permet de savoir combien dure la copie sur la clé):

date ; dd if=live-image-i386.hybrid.iso of=/dev/sdc bs=1M status=progress &&


sync ; date

Le système d'installation est copié sur la clé USB.

6.6 Créer une partition Vossloh pour la mise à jour


A la fin de la copie du fichier iso sur la clé, créer la partition VOSSLOH de mise à jour à l’aide du
script ajouteFatUSB.sh (se trouvant dans vossloh-kiwi/ Kiwi 7) par la commande – en tant que root-
./ajouteFatUSB.sh /dev/sdc

Pour rappel le contenu du script est :


#!/bin/sh

dépots et paquets.odt 22
Dépôts, Paquets et Clé Live USB Debian v. 1.2

echo "Creation de la partition 3 de type FAT32 avec pour label VOSSLOH sur la
clé USB en ${1}3"

(echo "n" ;echo "p" ;echo ;echo ;echo ;echo "t" ;echo ; echo "b" ;echo "w" )|
fdisk $1

partprobe
sleep 5

mkfs.fat -F 32 -n VOSSLOH ${1}3

# suivent les instructions pour acceder à la partition VOSSLOH

echo "Montage de la nouvelle partition 'VOSSLOH' dans le dossier /tmp/vossloh"


echo "mkdir /tmp/vossloh"
echo "mount --label VOSSLOH /tmp/vossloh/ -ouid=1000,gid=100"

Après le script, exécuter comme indiqué les commandes des deux dernières lignes.
Pour monter la nouvelle partition, exécuter les commandes suivantes :
mkdir /tmp/vossloh

echo "mount --label VOSSLOH /tmp/vossloh/ -ouid=1000,gid=100"

Pour visualiser le contenu de la clé dans l’environnement graphique, il faut démonter la clé par la
commande
umount /dev/sdc*

l’enlever et la remettre dans le connecteur USB. Deux partitions sont alors visibles, une VOSSLOH
et une contenant le fichier d’installation.

Copier sur la partition VOSSLOH la configuration de l’application dans le répertoire


VosslohApp/ Strasbourg/Configuration
et les exécutables dans le répertoire,
VosslohApp/vossloh-exe

Effacer ensuite les fichiers de suivi des versions

rm -rf .svn

Pour la version WEB


- copier les paquets avec le script « update »
Pour Rabat, créer le paquet sv-rabat-panel-version et remplacer les répertoires et le script,

Dans la clé, mettre d’abord l’application de base Rabat avant de compiler,

Modifier install,sh.

dépots et paquets.odt 23

Vous aimerez peut-être aussi