---
categories: web
title: Howto Migration Jessie vers Stretch
...

Release Notes amd64 : <http://www.debian.org/releases/stretch/amd64/release-notes/>

## Actions préalables

Nous conseillons quelques actions qui aideront en cas de problème.

Sauvegarder localement certaines ressources (dans `/home/backup/jessie` par exemple)

~~~
# cd /etc
# git add .
# git commit -am "Commit balai avant upgrade en Stretch"
# mkdir -p /home/backup/jessie/
# cd /home/backup/jessie
# cp -r /etc ./
# mkdir -p var/lib/apt
# cp -r /var/lib/dpkg ./var/lib/
# cp -r /var/lib/apt/extended_states ./var/lib/apt/
# dpkg --get-selections "*" > ./current_packages.txt
# uptime > uptime.txt
# ps auwx > ps.out
# pstree -pan > pstree.out
# ss -tanpul > listen.out
~~~


## Mise à jour du système

Éditer les dépôts dans `/etc/apt/sources.list` et `/etc/apt/sources.list.d/*.list` pour remplacer _jessie_ par _stretch_.

~~~
# cat /etc/apt/sources.list
deb http://mirror.evolix.org/debian stretch main
deb http://mirror.evolix.org/debian/ stretch-updates main
deb http://security.debian.org/debian-security stretch/updates main

# cat /etc/apt/sources.list.d/evolix_public.list
deb http://pub.evolix.net/ stretch/
~~~

Il faut importer la clé GPG du dépôt pub.evolix.net (attention au firewall et/ou proxy pour cette action) :

~~~
# apt-key adv --keyserver keyserver.ubuntu.com --recv 44975278B8612B5D
~~~

> *Note* : si cela ne semble pas suffisant, faire :
>
> ~~~
> # wget -O- "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x44975278B8612B5D" | apt-key add -
> ~~~

Puis mettre à jour le cache APT avec la commande :

~~~
# apt update
~~~

Commencer par télécharger l'ensemble des paquets qui devront être installés (afin de limiter le temps effectif d'installation).

~~~
# apt dist-upgrade --download-only
~~~

Faire ensuite une mise à niveau "simple", pour appliquer les mises à jour triviales :

~~~
# apt upgrade
~~~

Enfin, appliquer les mises à jour non triviales (nécessitant des changements de paquets dépendants, des suppressions…) afin d'avoir un œil plus précis sur ce qui sera fait, avant de valider :

~~~
# apt dist-upgrade
~~~

## Apt

Apt utilise maintenant l'utilisateur "_apt" pour certaines de ses fonctionnalités (ex. téléchargement des paquets), les dossiers /etc/apt et /var/cache/apt doivent donc être en 755 :

~~~
chmod 755 /etc/apt /var/cache/apt
~~~

Les fichiers _/etc/apt/apt.conf.d/10evolix_ et _/etc/apt/apt.conf.d/80evolinux_ ont été concaténés en un seul fichier _/etc/apt/apt.conf.d/z-evolinux.conf_.

`apt-listchanges` n'est plus utilisé et le paquet du même nom doit être désinstallé.

Le dépôt backports doit être dans son propre fichier _/etc/apt/sources.list.d/backports.list_ et avoir un fichier _/etc/apt/preferences.d/0-backports-defaults_ associé.

## Apache

Pour passer a PHP7, il faut désactiver le module php5 et activer le module php7 :

~~~
# a2dismod php5
# a2enmod php7.0
# service apache2 restart
~~~

La configuration spécifique d'Apache est maintenant faite dans les 2 fichiers _/etc/apache2/conf-available/z-evolinux-defaults.conf_ et _/etc/apache2/conf-available/zzz-evolinux-custom.conf_. Les fichiers de configuration standards tel que _apache.conf_ doivent donc être ceux de l'_upstream_ et les modifications éventuelles ajoutées dans _/etc/apache2/conf-available/zzz-evolinux-custom.conf_.

## PHPMyAdmin

Il faut rajouter /usr/share/php/php-php-gettext a la directive open_basedir de /etc/phpmyadmin/apache.conf.

## Xorg

`startx` ou `startxfce4` donne : `parse_vt_settings /dev/tty0 (permission denied)`

Un contournement : `startxfce4 -- :1 vt1`

## Vim

par défaut, si pas de `~/.vimrc` Vim charge plein de features moisies (mouse, etc.)

décommenter dans `/etc/vim/vimrc` : `let g:skip_defaults_vim = 1`

## log2mail

La configuration de `log2mail` est maintenant répartie dans plusieurs fichier dépendamment des services surveillés : _/etc/log2mail/config/mysql.conf_, _/etc/log2mail/config/apache_ et _/etc/log2mail/config/squid.conf_

`log2mail` est lancé par une unité systemd et non plus par un script sysV init, à mettre dans _/etc/systemd/system/log2mail.service_.

## sudo

L'attribution des droits sudo des utilisateurs admin se fait à travers le groupe _evolinux-sudo_ (à créer). Le fichier _/etc/sudoers.d/evolinux_ est à mettre à jour en conséquence.

Les utilisateurs admin sont aussi à ajouter au groupe _adm_.

## MySQL/MariaDB

MariaDB est la version utilisée par défaut au lieu de Oracle MySQL.

La configuration spécifique doit être faite dans les 2 fichiers de configuration _/etc/mysql/mariadb.conf.d/z-evolinux-defaults.cnf_ et _/etc/mysql/mariadb.conf.d/zzz-evolinux-custom.cnf_.

Il faut également surcharger l'unité systemd de MariaDB, dans _/etc/systemd/system/mariadb.service.d/evolinux.conf_.

> **Note** : C'est très important, notamment si vous avez un paramétrage qui utilise un chemin dans /home.

## PHP

La configuration spécifique doit être faite dans les 2 fichiers de configuration _/etc/php/7.0/cli/conf.d/z-evolinux-defaults.ini_ et _/etc/php/7.0/cli/conf.d/zzz-evolinux-custom.ini_.

Pour récupérer les anciennes configurations des pool FPM, il suffit simplement de les copier et de redémarrer le service `php7.0-fpm`.

~~~
# cp /etc/php5/fpm/pool.d/* /etc/php/7.0/fpm/pool.d/
~~~

## Squid

La configuration est éclatée dans plusieurs fichier de configuration : _/etc/squid/evolinux-defaults.conf_, _/etc/squid/evolinux-defaults.conf_, _/etc/squid/evolinux-acl.conf_, _/etc/squid/evolinux-httpaccess.conf_ et _/etc/squid/evolinux-custom.conf_. La liste blanche des sites se trouve dans _/etc/squid/evolinux-whitelist-defaults.conf_ et _/etc/squid/evolinux-whitelist-custom.conf_.

Il faut mettre à jour le fichier _/etc/default/squid_ pour que la directive _CONFIG_ pointe sur _/etc/squid/evolinux-defaults.conf_.

Le fichier _squid.conf_ n'est plus utilisé du tout.

## OpenDKIM

Le fichier `/etc/default/opendkim` n'est désormais plus pris en compte
puisqu'OpenDKIM a son unité systemd. Les éventuelles directives présentent dans
ce fichier, et notamment la socket, doivent se retrouver dans
`/etc/opendkim.conf` :

Par exemple, `SOCKET="inet:8889@127.0.0.1"` dans le fichier _default_ devient
`Socket inet:8889@[127.0.0.1]` dans le fichier de conf.

Pour les autres options, voir `opendkim.conf(5)`.

L'option `PidFile` doit obligatoirement être présente dans la conf (ce n'est
pas le cas par défaut), car l'unité systemd telle que fournie par Debian
s'attend à ce que le fichier `/var/run/opendkim/opendkim.pid` soit présent.
Autrement un `systemctl start opendkim` (ou équivalent sysV init) reste bloqué
et finit par générer un timeout, bien que le process soit bien lancé :

```
PidFile /var/run/opendkim/opendkim.pid
```

## Xchat -> hexchat

Xchat2 est remplacé par hexchat.
Pour conserver la configuration, **avant** de lancer hexchat, faire quelques manipulations du type :

~~~
$ cp -pr .xchat2/ .config/hexchat/
$ mv .config/hexchat/xchat.conf .config/hexchat/hexchat.conf
$ mv .config/hexchat/xchat2logs .config/hexchat/logs 
~~~

## Evoadmin-web

Pour mettre à jour vers la nouvelle version d'evoadmin-web, il faut se mettre sur la branche master et faire un git pull, avec l'utilisateur evoadmin:

~~~
$ su - evoadmin

evoadmin@hostname:~$ git checkout master
evoadmin@hostname:~$ git pull
~~~

Ensuite il faut ajouter un utilisateur, en éditant le fichier */home/evoadmin/www/conf/config.local.php*, avec la configuration suivante :

~~~
$localconf['logins']['foo'] = 'd5d3c723fb82cb0078f399888af7820d02e52751bb64597a8c20ebaba8ba4303';
~~~

Il faut généré un sha256 pour le mot de passe avec la commande suivante :

~~~
$ echo -n password |sha256sum
~~~