# ulib/debian

## `pkg_check`
~~~
Vérifier que les packages sont installés sur le système
~~~
## `pkg_update`
~~~
Mettre à jour la liste des packages silencieusement sans confirmation
~~~
## `pkg_upgrade`
~~~
Mettre à jour la liste des packages silencieusement sans confirmation
~~~
## `pkg_install`
~~~
Installer les packages silencieusement et sans confirmation
~~~
## `pkg_installm`
~~~
Installer les packages silencieusement et sans confirmation
Retourner 0 si au moins un des packages a été installé. Sinon, les
packages n'ont pas été installés, soit parce qu'ils sont déjà installé,
soit parce qu'il y a eu une erreur.
~~~
## `pkg_check_install`
~~~
Si le programme $1 n'existe pas, alors installer les packages $2..$@
S'il n'y a pas d'arguments $2..$@ utiliser $1 comme nom de package
Retourner 0 si au moins un des packages a été installé
~~~
## `service_disable`
~~~
Désactiver le service $1 pour qu'il ne se lance pas automatiquement au
démarrage
~~~
## `service_enable`
~~~
Activer le service $1 pour qu'il se lance automatiquement au démarrage
~~~
## `network_parse_confbr`
~~~
network_parse_confbr "$confbr" br ifaces
~~~
## `network_format_confbr`
~~~
network_format_confbr "$br" ifaces --> "br:ifaces"
~~~
## `network_parse_confip`
~~~
network_parse_confip "$confip" iface gateway ipsuffixes
~~~
## `network_parse_ipsuffix`
~~~
network_parse_ipsuffix "$ipsuffix" ip suffix
~~~
## `network_format_confip`
~~~
network_format_confip "$iface" "$gateway" ipsuffixes --> "iface//gateway:ipsuffixes"
~~~
## `network_format_ipsuffix`
~~~
network_format_ipsuffix "$ip" "$suffix" --> "ip/suffix"
~~~
## `network_fix_confbrs`
~~~
normaliser le tableau $1(=confbrs): fusionner les doublons
~~~
## `network_fix_confips`
~~~
normaliser le tableau $1(=confips): fusionner les doublons, spécifier le
suffixe /24 par défaut, etc. $2 est le cas échéant l'interface associée
aux adresses ip non qualifiées
~~~
## `network_fix_mainiface`
~~~
A partir des valeurs des tableaux $1(=confbrs) et $2(=confips), et de
l'interface principale $3, déterminer l'interface principale. Si $3 est
spécifié, c'est la valeur sélectionnée. Sinon, si un bridge existe, c'est
le premier bridge qui est sélectionné. Sinon, la première interface est
sélectionnée. Sinon, on prend eth0.
Ensuite, réorganiser les tableaux de façon que confips[0] devienne la
configuration ip de l'interface principale.
~~~
## `network_fix_confs`
## `network_set_confbrs`
~~~
initialiser $1(=confbrs) avec l'état des bridges sur le système courant
~~~
## `network_set_confips`
~~~
initialiser le tableau $1(=confips) avec l'état des interfaces sur le
système courant
~~~
## `network_interfaces_check_confbr`
~~~
Vérifier que la configuration du bridge $1, dont les membres sont les
interfaces du tableau $2(=ifaces) est faite dans le fichier
$3(=/etc/network/interfaces)
~~~
## `network_interfaces_check_confip`
~~~
Vérifier que la configuration de l'interface $1, avec la passerelle $2,
avec les adresses IP du tabbleau $3(=ipsuffixes) est faite dans le fichier
$4(=/etc/network/interfaces)
~~~
## `network_interfaces_remove_iface`
~~~
Supprimer dans le fichier $2(=/etc/network/interfaces) toute la
configuration qui concerne l'interface $1
~~~
## `network_interfaces_remove_ifaces`
~~~
Supprimer dans le fichier $2(=/etc/network/interfaces) toute la
configuration qui concerne les interfaces du tableau $1=(ifaces)
~~~
## `network_interfaces_remove_confbr`
~~~
Supprimer dans le fichier $3(=/etc/network/interfaces) toute la
configuration qui concerne le bridge $1, et dont les interfaces sont
listées dans le tableau $2(=ifaces)
~~~
## `network_interfaces_add_confip`
~~~
ajouter dans le fichier $4(=/etc/network/interfaces) la configuration pour
l'interface $1, avec éventuellement la passerelle $2, et les adresses ips
telles qu'elles sont définies dans le table $3(=ipsuffixes)
~~~
## `network_interfaces_add_confbr`
~~~
ajouter dans le fichier $4(=/etc/network/interfaces) la configuration pour
le bridge $1, avec la liste des interfaces dans le tableau $2(=ifaces) et
la liste des configurations des adresses des interfaces dans le tableau
$3(=confips)
~~~
## `network_fix_hostname`
## `network_fix_mailname`
## `network_fix_exim4`
## `network_fix_postfix`
## `network_fix_hosts`
## `network_config`
~~~
(Re)configurer le réseau sur l'hôte courant. Des efforts sont faits pour
ne mettre à jour les fichiers que si c'est nécessaire. Si un des arguments
$1..$6 n'est pas spécifié, il est ignoré.
$1 (host) est le nom d'hôte.
$2 (confips) est le nom d'un tableau contenant la configuration des
adresses ips pour les interfaces.
$3 (confbrs) est le nom d'un tableau contenant la configuration des
bridges à créer/mettre à jour.
$4 (mainiface) est le nom de l'interface principale, c'est à dire
l'interface qui est sélectionnée si une adresse ip n'est pas préfixée de
son interface. En principe, l'interface principale est le premier bridge
défini ou la première interface définie.
$5 (reset_interfaces) spécifie de ne pas chercher à mettre à jour le
fichier /etc/network/interfaces, mais de le recréer depuis zéro. la valeur
'force' spécifie de recréer le fichier même si ce n'est pas nécessaire à
priori.
$6 (oldhost) est le nom d'hôte actuel, avant la modification
$7(=/etc/network/interfaces) est le fichier à mettre à jour

Le tableau confips doit contenir des définitions d'une des formes
suivantes:
[[iface][//gateway]:]address[/suffix],...
[iface:]dhcp
La deuxième forme est pour spécifier qu'une interface est configurée par
DHCP. iface vaut par défaut eth0, sauf si une définition de bridge
existe, auquel cas il s'agit du premier bridge défini. Pour chaque
interface, seule la première spécification d'adresse IP tient compte de
l'argument gateway. Les autres spécifications définissent des adresses IP
supplémentaires pour l'interface.

Le tableau brs doit contenir des définitions de la forme suivante:
br:ifaces,...
br est le nom du bridge, e.g. br0. ifaces est une liste d'interfaces
séparées par une virgule. e.g. br0:eth0,eth1
Bien que ce soit techniquement possible, ce script interdit que l'on
définisse une adresse IP pour une interface faisant partie d'un bridge.
~~~
## `network_config_partial`
~~~
une version allégée de network_config() qui ne permet que de rajouter des
adresses IPs en plus de celles qui sont déjà configurées.
$1(=confips) est le nom d'un tableau contenant la configuration des
adresses ips pour les interfaces.
$2(=/etc/network/interfaces) est le fichier à mettre à jour
~~~
## `network_update_etc_networks`
~~~
écraser le contenu du fichier /etc/networks avec la chaine $1
si $1 est vide, initialiser le fichier avec un contenu par défaut.
~~~

-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary