Éditer les dépôts dans `/etc/apt/sources.list` et `/etc/apt/sources.list.d/*.list` pour remplacer _wheezy_ par _jessie_ puis mettre à jour le cache APTavec la commande :
Faire ensuite une mise à niveau "simple", pour appliquer les mises à jour triviales :
~~~
# apt-get upgrade
~~~
Enfin, appliquer les mises à jour non triviales (nécessitant des changements de paquets dépendants, des suppressions, ...) afin d'avoir un oeil plus précis sur ce qui sera fait, avant de valider :
~~~
# apt-get dist-upgrade
~~~
Bien vérifier que le noyau Linux a été mis à jour également:
* Repasser en sysV (non conseillé/testé) : <http://without-systemd.org/wiki/index.php/How_to_remove_systemd_from_a_Debian_jessie/sid_installation>
Attention, le passage a systemd est délicat avec le démarrage réseau ! En effet, si des scripts liés au réseau sont démarrés via /etc/network/if-*up*/ vous aurez un blocage complet du démarrage...
Exemple : si le paquet openntpd est désinstallé et non purgé, votre démarrage sera bloqué => *dpkg -P openntpd*
Il faut donc vérifier que tous les scripts liés au réseau sont bien d'actualité : ls -l /etc/network/if-*up*/
Plus de détails sur <http://trac.evolix.net/infogerance/wiki/HowtoSystemd#networking>
Le fichier /etc/lsb-release n'est plus mis a jour a partir de Debian Jessie mais est encore utilisé par la command lsb_release -a et par Ansible, il faut donc le supprimer pour ne pas se retrouver avec des incohérences du type "Debian 7 Jessie" :
Si vous utilisez un chroot et systemd, vous devez (installer pkg _bind9_) -> voir <http://trac.evolix.net/infogerance/wiki/HowtoBind#InstallationetconfigurationdeBind>
~~~
# cp -a /lib/systemd/system/bind9.service /etc/systemd/system/
~~~
Ajuster la section [Service] :
~~~
EnvironmentFile=-/etc/default/bind9
ExecStart=/usr/sbin/named -f $OPTIONS
~~~
Puis :
~~~
# systemctl daemon-reload
~~~
Autre information importante pour vos zones "slave" elles sont désormais binaires par défaut,
pour conserver les anciennes il faut donc ajouter l'option (par exemple dans /etc/bind9/named.conf.options) :
~~~
masterfile-format text;
~~~
## Redis
/run n'est plus persistant. Il faut préciser dans l'unit de redis le RuntimeDirectory pour que la création de /var/run/redis soit effectuée au démarrage (et placer la socket et le pid dans /var/run/redis).
~~~
# cp -a /lib/systemd/system/redis-server.service /etc/systemd/system/
~~~
Editer /etc/systemd/system/redis-server.service et ajuster la section [Service] :
* Il faut s'assurer que les liens/fichiers dans /etc/apache2/sites-enabled/* se terminent en .conf en les renommant. (Ou modifier la directive dans apache2.conf. **Non conseillé car cela casse a2{en,dis}site.**)
SSLSessionCache: 'shm' session cache not supported (known names: default,shmcb). Maybe you need to load the appropriate socache module (mod_socache_shm?).
* **Il ne faut plus utiliser les directives MaxClients mais MaxRequestWorkers !**
* La directive `AuthzLDAPAuthoritative` est obsolète, il faut la remplacer par les directives _Require_ adéquats : <https://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html>
Pour que squid fonctionne, il faut que la version de minifirewall soit récente. Auquel cas le message d'erreur suivant peut apparaître dans cache.log et squid ne démarre pas.
~~~
2016/06/30 00:37:26 kid1| sendto FD 11: (1) Operation not permitted
2016/06/30 00:37:26 kid1| ipcCreate: CHILD: hello write test failed
~~~
Il manque une règle ip6tables. Cela a été corrigé via [ce commit](https://forge.evolix.org/projects/minifirewall/repository/revisions/705c4683a2d7214c3f9664577955f1dd32cfdf54/diff/minifirewall).
*Il faut donc mettre à jour le script d'init minifirewall* !
## Elasticsearch
Le fichier /etc/default/elasticsearch doit contenir les informations de configuration (il ne les a pas forcément par défaut !!) :
~~~
LOG_DIR=/var/log/elasticsearch
DATA_DIR=/var/lib/elasticsearch
WORK_DIR=/tmp/elasticsearch
CONF_DIR=/etc/elasticsearch
CONF_FILE=/etc/elasticsearch/elasticsearch.yml
ES_HOME=/usr/share/elasticsearch
ulimit -n 65535
sysctl -q -w vm.max_map_count=262144
~~~
Sinon, vous aurez notamment des erreurs du type :
~~~
elasticsearch[6821]: Failed to configure logging...
elasticsearch[6821]: org.elasticsearch.ElasticsearchException: Failed to load logging configuration
~~~
Il faut apparemment forcer l'activation au démarrage :
~~~
# systemctl enable elasticsearch
~~~
## Spamassassin
SA peut gueuler, voir le package sa-compile qui n'arrive pas à s'installer.
Sans doute Razor plugin qui râle, donc vérifier le chargement de celui-ci :
À cause de Apache 2.4 en Jessie, ils ne sont pas compatibles. Il faut installer la version de la branche Jessie.
Idéalement relancer le module evolinux jessie pour evoadmin (supprimer le vhost 'evoadmin' puis relancer evolinux en faisant grandement attention à ne valider que seulement l'installation de evoadmin-web).
## rbenv
Attention, une mise-à-jour majeure (tout comme une mise-à-jour majeure d'ailleurs) va casser les compilations (sauf coup de chance).
Si l'on utilise Sympa avec PostgreSQL, [la mise à jour ne gère apparemment pas le schéma SQL](http://bugs.debian.org/782273). Il faudra recréer la table *session_table* :
Et si besoin de zapper l'upgrade automatique car vous l'avez géré à la main, éditez `/var/lib/dpkg/info/slapd.postinst` et positionnez temporairement un `exit 0` pour la fonction _postinst_upgrade_configuration()_ avant de relancer votre `dist-upgrade` (pensez à remettre comme c'était après).
## NSS/PAM
En cas d'erreurs du type `pam_ldap: error trying to bind (Invalid credentials)` ou `sshd: Invalid user` pensez à vider le cache _nscd_.