444 lines
12 KiB
Markdown
444 lines
12 KiB
Markdown
---
|
|
title: Howto Debian: migration Squeeze (6) -> Wheezy (7)
|
|
---
|
|
|
|
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
|
|
|
|
* Release Notes i386 : <http://www.debian.org/releases/wheezy/i386/release-notes/>
|
|
* Release Notes amd64 : <http://www.debian.org/releases/wheezy/amd64/release-notes/>
|
|
|
|
Attention, il est [recommandé](http://www.debian.org/releases/wheezy/amd64/release-notes/ch-upgrading.en.html#upgrading-full) d'utiliser `apt-get` et non `aptitude` :
|
|
|
|
|
|
Avant de mettre à jour penser à vérifier les paquets étiquetés et suspendus et modifier si besoin :
|
|
|
|
~~~
|
|
# apt-cache policy
|
|
# aptitude search "~ahold"
|
|
~~~
|
|
|
|
Commencer par télécharger l'ensemble des paquets qui devront être installés (afin de limiter le temps effectif d'installation).
|
|
|
|
~~~
|
|
# apt-get dist-upgrade --download-only
|
|
~~~
|
|
|
|
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 œil plus précis sur ce qui sera fait, avant de valider :
|
|
|
|
~~~
|
|
# apt-get dist-upgrade
|
|
~~~
|
|
|
|
## VERSIONS
|
|
|
|
Passage de Squeeze à Wheezy :
|
|
|
|
* MySQL 5.1.49 → 5.5.53
|
|
* PHP 5.3.3 → 5.4.45
|
|
* Apache 2.2.16 → 2.2.22
|
|
* Tomcat 6.0.35 → 6.0.45
|
|
|
|
## /etc/securetty
|
|
|
|
La syntaxe a changé. Si il y a des restrictions particulières, il faudra les remettre en place.
|
|
|
|
## /etc/nagios/nrpe.cfg
|
|
|
|
Si vous avez une erreur :
|
|
|
|
~~~
|
|
nrpe: Cannot write to pidfile '/var/run/nrpe.pid' - check your privileges.
|
|
~~~
|
|
|
|
Workaround : modifier pid_file :
|
|
|
|
~~~
|
|
pid_file=/var/run/nagios/nrpe.pid
|
|
~~~
|
|
|
|
## Shell
|
|
|
|
Attention, vérifiez bien que le lien `/bin/sh` ne change pas de destination (de Bash à Dash) sans prévenir !!
|
|
On a constaté un cas où `/bin/sh` pointait vers Dash après mise-à-jour alors que ça pointait vers Bash avant.
|
|
Vérifier dans les backups vers quoi pointait `/bin/sh` avant l'upgrade
|
|
|
|
## Apache
|
|
|
|
`httpd.conf` n'existe plus par défaut : si il était vide mais que vous conservez votre ancien `apache2.conf` vous aurez une erreur du type :
|
|
|
|
~~~
|
|
Starting web server: apache2
|
|
apache2: Syntax error on line 207 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/<httpd.conf:> No such file or directory
|
|
~~~
|
|
|
|
Workaround : touch `/etc/apache2/httpd.conf`
|
|
|
|
## /etc/sudoers
|
|
|
|
Il est conseillé de migrer la configuration en utilisant `/etc/sudoers.d/XXXX` : <http://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.en.html#package-specific-issues>
|
|
|
|
## PHP
|
|
|
|
### Directives obsolètes
|
|
|
|
Les directives suivantes n'existe plus, il faut donc les commenter ou supprimer de la configuration.
|
|
|
|
* `allow_call_time_pass_reference`
|
|
* `magic_quotes_gpc`
|
|
* `register_long_arrays`
|
|
|
|
|
|
### php5-suhosin
|
|
|
|
> The php5-suhosin package has been removed. If your PHP configuration included the suhosin module, it will fail to load after the PHP upgrade. Run dpkg --purge php5-suhosin to remove the leftover configuration in /etc/php5/conf.d/suhosin.ini.
|
|
|
|
|
|
## Evomaintenance
|
|
|
|
> /usr/share/scripts/evomaintenance.sh: 54: /usr/share/scripts/evomaintenance.sh: sendmail: not found
|
|
|
|
Il faut soit mettre le path complet dans evomaintenance : `/usr/sbin/sendmail`
|
|
|
|
|
|
## Evoadmin Web
|
|
|
|
Version de Squeeze incompatible avec Wheezy, il faut prendre la version GIT :
|
|
|
|
Il faut mettre dans `/etc/apache2/envvars`
|
|
|
|
~~~
|
|
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
~~~
|
|
|
|
## Dovecot
|
|
|
|
La configuration de Dovecot est désormais découpée en Wheezy, cela peut donner des résultats
|
|
surprenants lors de la mise-à-jour. Il est conseillé de reprendre la configuration de zéro
|
|
ou preque. Bien penser à éditer différents fichiers :
|
|
|
|
~~~
|
|
# vim conf.d/10-auth.conf
|
|
|
|
disable_plaintext_auth = no
|
|
!include auth-ldap.conf.ext
|
|
|
|
# vim conf.d/15-lda.conf
|
|
|
|
protocol lda {
|
|
auth_socket_path = /var/run/dovecot/auth-master
|
|
postmaster_address = postmaster@example.com
|
|
}
|
|
|
|
# vim conf.d/10-ssl.conf
|
|
|
|
ssl_cert = </etc/ssl/certs/dovecot.pem
|
|
ssl_key = </etc/ssl/private/dovecot.pem
|
|
|
|
# vim conf.d/10-master.conf
|
|
|
|
service auth {
|
|
unix_listener auth-userdb {
|
|
}
|
|
# Postfix smtp-auth
|
|
unix_listener /var/spool/postfix/private/auth {
|
|
group = postfix
|
|
mode = 0660
|
|
}
|
|
unix_listener auth-master {
|
|
group = vmail
|
|
mode = 0660
|
|
}
|
|
user = root
|
|
}
|
|
|
|
# vim conf.d/10-mail.conf
|
|
mail_location = maildir:/home/vmail/%d/%n
|
|
mail_uid = vmail
|
|
mail_gid = vmail
|
|
~~~
|
|
|
|
Attention également, il faudra éventuellement installer :
|
|
|
|
~~~
|
|
# aptitude install dovecot-ldap
|
|
# mv /etc/dovecot/dovecot-ldap.conf /etc/dovecot/dovecot-ldap.conf.ext
|
|
~~~
|
|
|
|
|
|
Test de la configuration :
|
|
|
|
~~~
|
|
# dovecot -n
|
|
~~~
|
|
|
|
|
|
## MySQL
|
|
|
|
### option secure_file_priv
|
|
|
|
Penser à ajouter la valeur par défaut à `secure-file-priv` dans la config de MySQL (premier trouvé par ordre de préférence) :
|
|
|
|
* `/etc/mysql/conf.d/evolinux.cnf`
|
|
* `/etc/mysql/conf.d/evolix.cnf`
|
|
* `/etc/mysql/my.cnf`
|
|
* `/etc/mysql/conf.d/000-evolinux-defaults.cnf`
|
|
|
|
~~~{.ini}
|
|
[mysqld]
|
|
secure-file-priv = ""
|
|
~~~
|
|
|
|
### option default-character-set
|
|
|
|
~~~
|
|
[ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf8'
|
|
~~~
|
|
|
|
Contournement : désactiver cette option…
|
|
|
|
Erreurs :
|
|
|
|
~~~
|
|
mysqld_safe[27427]: 150828 1:11:22 [ERROR] An old style --language value with language specific part detected: /usr/share/mysql/english/
|
|
mysqld_safe[27427]: 150828 1:11:22 [ERROR] Use --lc-messages-dir without language specific part instead.
|
|
~~~
|
|
|
|
Désactiver l'option obsolète `language = /usr/share/mysql/english`
|
|
|
|
|
|
Pour désactiver le moteur InnoDB, skip-innodb n'est plus suffisant, vous allez obtenir l'erreur :
|
|
|
|
~~~
|
|
mysqld: 150828 1:16:04 [ERROR] Unknown/unsupported storage engine: InnoDB
|
|
~~~
|
|
|
|
Vous devez ajouter :
|
|
|
|
~~~{.ini}
|
|
skip-innodb
|
|
default-storage-engine=myisam
|
|
~~~
|
|
|
|
|
|
### mysqldump
|
|
|
|
Depuis la version 5.5, on ne peut plus "dumper" la base performance_schema, on obtient une erreur :
|
|
|
|
~~~
|
|
mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user 'mysqladmin'@'localhost' for table 'cond_instances' when using LOCK TABLES
|
|
~~~
|
|
|
|
Ceci est normal, la base performance_schema ne devant pas être dumpée en général.
|
|
|
|
Voir <http://bugs.mysql.com/bug.php?id=61414> et <http://dev.mysql.com/doc/refman/5.5/en/performance-schema-restrictions.html>
|
|
|
|
### .my.cnf
|
|
|
|
Si vous obtenez une erreur :
|
|
|
|
~~~
|
|
Warning: Using unique option prefix pass instead of password is deprecated and will be removed in a future release. Please use the full name instead.
|
|
~~~
|
|
|
|
Corrigez vos fichiers `.my.cnf` pour mettre `password` à la place de `pass`.
|
|
|
|
## base-passwd
|
|
|
|
Si vous obtenez ce message :
|
|
|
|
~~~
|
|
update-passwd has found some differences between your system accounts
|
|
and the current Debian defaults. It is advisable to allow update-passwd
|
|
to change your system; without those changes some packages might not work
|
|
correctly. For more documentation on the Debian account policies please
|
|
see /usr/share/doc/base-passwd/README.
|
|
|
|
The list of proposed changes is :
|
|
[…]
|
|
~~~
|
|
|
|
Il est conseillé de refuser et de conserver les uid/gid utilisés.
|
|
|
|
## firmware bnx2
|
|
|
|
Rajouter non-free dans sources.list pour installer la mise à jour des firmwares bnx2.
|
|
|
|
## Oracle
|
|
|
|
Oracle veut utiliser `/dev/shm` en tmpfs, mais celui-ci a été déplacé en Wheezy, c'est maintenant `/run/shm`, avec un symlink vers `/dev/shm`, mais le symlink ne suffit pas ! Il faut donc revenir à l'ancienne méthode, pour cela on mettra dans le fstab :
|
|
|
|
|
|
~~~
|
|
tmpfs /dev/shm tmpfs nosuid,nodev,size=50%,mode=1777 0 0
|
|
~~~
|
|
|
|
## libnss LDAP
|
|
|
|
Attention, si vous avez répondu YES à "Make the configuration file readable/writeable by its owner only?" le fichier `/etc/libnss-ldapconf` repassera en 600.
|
|
|
|
Si nécessaire :
|
|
|
|
~~~
|
|
# chmod 644 /etc/libnss-ldapconf
|
|
# dpkg-reconfigure libnss-ldap
|
|
~~~
|
|
|
|
|
|
## ProFTPD
|
|
|
|
~~~
|
|
proftpd[24268]: Fatal: LoadModule: error loading module 'mod_vroot.c': Operation not permitted on line 74 of '/etc/proftpd/modules.conf'
|
|
~~~
|
|
|
|
Désactiver le module `mod_vroot` ou installer le paquet `proftpd-mod-vroot`.
|
|
|
|
~~~
|
|
proftpd[18591]: Fatal: unknown configuration directive 'LDAPDNInfo' on line 14 of '/etc/proftpd/ldap.conf'
|
|
proftpd[18591]: Fatal: unknown configuration directive 'LDAPDoAuth' on line 15 of '/etc/proftpd/ldap.conf'
|
|
~~~
|
|
|
|
Les directives `LDAPDNInfo` et `LDAPDoAuth` sont à remplacer par `LDAPBindDN` et `LDAPUsers`.
|
|
|
|
## Roundcube
|
|
|
|
Si la mise à jour automatique de la bdd roundcube se passe mal, et que l'on a l'erreur "[Native message: Unknown column 'changed' in 'field list']" dans `/var/log/roundcube/error.log` :
|
|
|
|
~~~
|
|
# mysql
|
|
> USE roundcube;
|
|
> ALTER TABLE `identities` ADD `changed` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' AFTER `identity_id`;
|
|
~~~
|
|
|
|
## Mailgraph
|
|
|
|
Il faut appliquer ce patch pour /usr/share/scripts/mailgraph.sh
|
|
|
|
~~~{.diff}
|
|
--- old 2015-06-11 18:01:16.476793959 +0200
|
|
+++ mailgraph.sh 2015-06-11 17:59:05.926043623 +0200
|
|
@@ -1,5 +1,6 @@
|
|
#!/bin/sh
|
|
MAILGRAPH_PATH=/usr/lib/cgi-bin/mailgraph.cgi # Debian
|
|
+export SCRIPT_NAME="mailgraph.cgi"
|
|
#MAILGRAPH_PATH=/usr/local/www/cgi-bin/mailgraph.cgi # FreeBSD
|
|
#MAILGRAPH_PATH=/usr/local/lib/mailgraph/mailgraph.cgi # OpenBSD
|
|
|
|
@@ -11,6 +12,7 @@
|
|
|
|
$MAILGRAPH_PATH | sed '1,2d ; s/mailgraph.cgi?//' > $MAILGRAPH_DIR/index.html
|
|
|
|
-for i in 0-n 0-e 1-n 1-e 2-n 2-e 3-n 3-e; do
|
|
+for i in 0-g 1-g 2-g 3-g 0-n 0-e 1-n 1-e 2-n 2-e 3-n 3-e; do
|
|
QUERY_STRING=$i $MAILGRAPH_PATH | sed '1,3d' > $MAILGRAPH_DIR/$i
|
|
done
|
|
~~~
|
|
|
|
## Script Perl add.pl mail-add.pl
|
|
|
|
Cas pack samba ou mail. Il faut patcher le script et installer une librairie.
|
|
|
|
|
|
~~~
|
|
# aptitude install libdigest-sha-perl
|
|
# sed -i 's/SHA1/SHA/g' add.pl
|
|
~~~
|
|
|
|
|
|
|
|
~~~{.diff}
|
|
--- mail-add.pl 2015-08-31 09:27:24.000000000 +0200
|
|
+++ /tmp/a 2015-08-31 09:37:00.000000000 +0200
|
|
@@ -148,7 +148,7 @@
|
|
my $result = $ldap->search(
|
|
base => $edn,
|
|
filter => "(uid=$ldapuid)",
|
|
- attrs => "uid"
|
|
+ attrs => ["uid"]
|
|
);
|
|
|
|
$result->code && die $result->error;
|
|
@@ -206,7 +206,7 @@
|
|
$result = $ldap->search(
|
|
base => $edn,
|
|
filter => "(mailacceptinggeneralid=$mail)",
|
|
- attrs => "uid"
|
|
+ attrs => ["uid"]
|
|
);
|
|
$result->code && die $result->error;
|
|
if ($result->entries) {
|
|
@@ -225,7 +225,7 @@
|
|
$result = $ldap->search(
|
|
base => $edn,
|
|
filter => "(objectClass=posixAccount)",
|
|
- attrs => "uidNumber"
|
|
+ attrs => ["uidNumber"]
|
|
);
|
|
$result->code && die $result->error;
|
|
my $uid = $minuid; # uidNumber initial
|
|
@@ -374,7 +374,7 @@
|
|
$result = $ldap->search(
|
|
base => $dn,
|
|
filter => '(objectClass=posixGroup)',
|
|
- attrs => "gidNumber",
|
|
+ attrs => ["gidNumber"],
|
|
);
|
|
$result->code && die $result->error;
|
|
my @entries = $result->entries;
|
|
@@ -492,7 +492,7 @@
|
|
my $result = $ldap->search(
|
|
base => $edn,
|
|
filter => "(mailacceptinggeneralid=$alias)",
|
|
- attrs => "mailacceptinggeneralid"
|
|
+ attrs => ["mailacceptinggeneralid"]
|
|
);
|
|
$result->code && die $result->error;
|
|
if ($result->entries) {
|
|
@@ -540,7 +540,7 @@
|
|
my $result = $ldap->search(
|
|
base => $dn,
|
|
filter => "(objectClass=mailAccount)",
|
|
- attrs => "uid"
|
|
+ attrs => ["uid"]
|
|
);
|
|
$result->code && die $result->error;
|
|
|
|
@@ -590,7 +590,7 @@
|
|
my $result = $ldap->search(
|
|
base => $dn,
|
|
filter => "(objectClass=mailAlias)",
|
|
- attrs => "mailacceptinggeneralid"
|
|
+ attrs => ["mailacceptinggeneralid"]
|
|
);
|
|
$result->code && die $result->error;
|
|
~~~
|
|
|
|
## Asterisk
|
|
|
|
Si vous utilisez le module "meetme" vous devrez désormais installer le paquet "asterisk-dahdi"
|
|
|
|
## Sympa
|
|
|
|
La config évolue :
|
|
|
|
~~~
|
|
#ScriptAlias /wws /usr/lib/cgi-bin/sympa/wwsympa.fcgi
|
|
ScriptAlias /wws /usr/lib/cgi-bin/sympa/wwsympa-wrapper.fcgi
|
|
~~~
|
|
|
|
avec les droits suivants :
|
|
|
|
~~~
|
|
-rwxr-xr-x 1 sympa sympa 610018 janv. 17 2015 /usr/lib/cgi-bin/sympa/wwsympa.fcgi
|
|
-rwsr-sr-x 1 sympa sympa 6192 janv. 17 2015 /usr/lib/cgi-bin/sympa/wwsympa-wrapper.fcgi
|
|
~~~
|
|
|
|
## Evocheck
|
|
|
|
Si **IS_DPKGWARNING_FAILED**, télécharger `/etc/apt/apt.conf.d/80evolinux` et supprimer `/etc/apt/apt.conf`.
|