Introduction
Cette documentation s’attarde sur l’installation des packages MySQL en environnement Solaris.
Dans l’environnement évoqué, le user mysql a pour répertoire par défaut
(home directory) : /Software/mysql
et les versions 4.1.10a et 5.0.4 max sont
installées sur une machine Solaris SPARC 2.8 biprocesseur 32 bits.
L’installation ne se fera pas dans le répertoire par défaut /usr/local
mais
dans le répertoire /Software/mysql
, délocalisation qui nécessite des opérations
particulières.
Généralités et objectifs
Les packages zippés (extension .gz) MySQL 4.1.10a et 5.0.4 pour Solaris 2.8 (SPARC, 32 bits) sont téléchargés à partir du site Web de MySQL :
mysql-max-4.1.10a-sun-solaris2.8.sparc.pkg.gz
mysql-max-5.0.4-sun-solaris2.8.sparc.pkg.gz
Dans cette documentation, seule l’installation de la version 5.0.4 beta est présentée, l’installation de la version 4.1.10 étant rigoureusement analogue.
Problème des packages Solaris livrés par MySQL
Un problème majeur se présente avec les packages livrés par MySQL pour
Solaris car l’appel de la commande pkgadd -R<target_dir>
engendre
automatiquement une installation dans le répertoire
<target_dir>/usr/local
, cependant dans la plupart des environnements, on
souhaite généralement installer MySQL dans un environnement normalisé.
Il existe une méthode simple pour générer une installation des packages Solaris MySQL dans un répertoire autre que le répertoire par défaut /usr/local. Cette méthode fait l’objet de cette documentation technique.
Objectif des installations
L’objectif des installations consiste à installer respectivement les
packages MySQL 4.1.10a et 5.0.4 respectivement dans les répertoires
/Software/mysql/mysql-4.1.10
et /Software/mysql/mysql-5.0.4
.
mysql@SRVUNXFR> cd /Software/mysql mysql@SRVUNXFR> ls -lrt
total 10 drwxr-xr-x 3 mysql dba 512 May 6 18:10 mysql-4.1.10 drwxr-xr-x 3 mysql dba 512 May 6 18:12 mysql-5.0.4 lrwxrwxrwx 1 mysql dba 11 May 6 18:17 mysql-5.0 -> mysql-5.0.4 lrwxrwxrwx 1 mysql dba 12 May 6 18:17 mysql-4.1 -> mysql-4.1.10
Installation du package MySQL 5.0.4
Décompression et mise en format fichier du package (pkgtrans)
Avec le user root, le fichier
mysql-max-5.0.4-beta-sun-solaris2.8-sparc.pkg.gz
est installé dans le
répertoire /Software/mysql
et l’opération de dézip du package est lancée avec
la commande gunzip (pour cette opération, vérifier l’espace disponible dans le
filesystem /Software/mysql
).
root@SRVUNXFR> cd /Software/mysql
root@SRVUNXFR> gunzip mysql-max-5.0.4-beta-sun-solaris2.8-sparc.pkg.gz
Le package MySQL 5.0.4 se présente alors sous la forme d’un seul fichier :
mysql-max-5.0.4-beta-sun-solaris2.8-sparc.pkg
.
La mise en format fichier du package MySQL 5.0.4 est alors réalisée dans le
répertoire /tmp
avec la commande pkgtrans :
pkgtrans <package_name> <target_dir>
root@SRVUNXFR> pkgtrans mysql-max-5.0.4-beta-sun-solaris2.8-sparc.pkg /tmp
The following packages are available: 1 mysql-max mysql (sun4u) 5.0.4 Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]: 1 Transferring <mysql-max> package instance
À l’issue de la commande pkgtrans
, le package MySQL 5.0.4 au format fichier
est installé dans le répertoire /tmp/mysql-max
, répertoire qui contient les
fichiers pkginfo
, pkgmap
et le répertoire reloc
:
root@SRVUNXFR> cd /tmp/mysql-max root@SRVUNXFR> ls -ll
total 352 -rw-r--r-- 1 root sys 173 Apr 17 07:14 pkginfo -rw-r--r-- 1 root sys 159229 Apr 17 07:14 pkgmap drwxr-xr-x 3 root sys 215 May 6 16:12 reloc
Le propriétaire des fichiers dans le répertoire /tmp/mysql-max
n’est pas forcément root. Si effectivement root n’est pas le propriétaire des fichiers,
lancer la commande chown
afin que root en soit le propriétaire .
root@SRVUNXFR> cd /tmp/mysql-max
root@SRVUNXFR> chown -R root:sys *
Le répertoire reloc
Le répertoire reloc
contient le répertoire
mysql-max-5.0.4-beta-sun-solaris2.8-sparc
, répertoire dans lequel se trouve la
distribution MySQL 5.0.
/tmp/mysql-max/reloc |
/mysql-max-5.0.4-beta-sun-solaris2.8-sparc |
/bin |
/lib |
||
/share |
||
... |
Le fichier pkginfo
Le fichier /tmp/mysql-max/pkginfo
contient les entrées ci-dessous :
/tmp/mysql-max/pkginfo
PKG=mysql-max
NAME=mysql
ARCH=sun4u
VERSION=5.0.4
CATEGORY=application
VENDOR=MySQL AB
EMAIL=build@mysql.com
PSTAMP=MySQL AB Build Engineers
BASEDIR=/usr/local
CLASSES=none
C’est l’entrée BASEDIR=/usr/local
qui est à la source du problème
d’installation automatique dans un répertoire /usr/local
.
Le fichier pkgmap
Le fichier pkgmap
liste tous les fichiers et répertoires dans le répertoire
reloc pour l’installation de la distribution, il liste également le
propriétaire, le groupe du propriétaire et les droits. Le flag en deuxième
position dans le fichier pkgmap
permet d’indiquer si il s’agit d’un répertoire
(d), d’un fichier (f) ou d’un fichier d’information (i).
Exemple :
...
1 d none mysql-max-5.0.4-beta-sun-solaris2.8-sparc 0755 bin bin
1 f none mysql-max-5.0.4-beta-sun-solaris2.8-sparc/README 0644 bin bin 1937 40976 1113394105
1 d none mysql-max-5.0.4-beta-sun-solaris2.8-sparc/bin 0755 bin bin
...
1 f none mysql-max-5.0.4-beta-sun-solaris2.8-sparc/bin/mysqld 0755 bin bin 7737028 38662 1113411306
...
1 i pkginfo 173 14029 1113714878
Dans l’exemple ci-dessus :
La ligne 1 d none mysql-max-5.0.4-beta-sun-solaris2.8-sparc/bin 0755 bin
bin
indique à pkgadd
d’installer le répertoire bin
dans le répertoire
BASEDIR (/usr/local)
à partir du répertoire bin
dans le répertoire
/tmp/mysql-max/reloc/mysql-max-5.0.4-beta-sun-solaris2.8-sparc
; ce répertoire
aura pour propriétaire bin (groupe bin) avec les droits 0755.
La ligne 1 f none mysql-max-5.0.4-beta-sun-solaris2.8-sparc/bin/mysqld
0755 bin bin
indique à pkgadd
d’installer le fichier mysqld
dans le répertoire
BASEDIR/bin (/usr/local/bin)
contenu dans le répertoire
/tmp/mysql-max/reloc/mysql-max-5.0.4-beta-sun-solaris2.8-sparc/bin
; ce
répertoire aura pour propriétaire bin (groupe bin) avec les droits 0755.
Systématiquement, en dernière position dans le fichier pkgmap
, le fichier
pkginfo
est référencé avec le flag i :
1 i pkginfo 173 14029 1113714878
173
correpond au résultat de la commande :
wc -c pkginfo | cut -f6 -d' '
14029
correpond au résultat de la commande :
sum pkginfo | cut -f1 -d' '
1113714878
correpond au résultat de la commande :
grep 'pkginfo' pkgmap | cut -f6 -d' '
Ces valeurs sont essentielles car elles sont analysées par la commande
pkgadd
pour gérer la cohérence du package.
Personnalisation des fichiers pkgmap et pkginfo
Modification du fichier pkginfo
Pour empêcher la création du répertoire /usr/local
, la variable BASEDIR
dans
le fichier /tmp/mysql-max/pkginfo
est modifiée (/usr/local
est remplacé par /
)
:
|
|
Modification du fichier pkgmap
Pour terminer la personnalisation de l’installation du package MySQL-5.0.4,
le fichier pkgmap
est également modifié pour :
- prendre en compte un propriétaire et un groupe différents :
mysql dba
- refléter les modifications apportées au fichier
pkginfo
dans l’étape précédente.
1/ la chaîne de caractère bin bin
est remplacée par la chaîne mysql dba
dans
le fichier pkgmap
.
2/ les résultats des commandes ci-dessous (suite à la modification du
fichier pkginfo
dans l’étape précédente) sont reportées dans le fichier pkgmap
,
cette étape est cruciale sous peine de voir la commande pkgadd
échouer.
|
... 1 i pkginfo 164 13113 1113714878 |
Le fichier pkgmap
modifié se présente alors ainsi :
...
1 d none mysql-max-5.0.4-beta-sun-solaris2.8-sparc 0755 mysql dba
1 f none mysql-max-5.0.4-beta-sun-solaris2.8-sparc/README 0644 mysql dba 1937 40976 1113394105
1 d none mysql-max-5.0.4-beta-sun-solaris2.8-sparc/bin 0755 mysql dba
...
1 f none mysql-max-5.0.4-beta-sun-solaris2.8-sparc/bin/mysqld 0755 mysql dba 7737028 38662 111341..
...
1 i pkginfo 164 13113 1113714878
Installation
À l’issue de la personnalisation des fichiers pkgmap
et pkginfo
qui permet
d’éviter le sous répertoire /usr/local
et d’appliquer le propriétaire mysql
(groupe dba)
, l’installation du package MySQL 5.0.4 dans le répertoire
/Software/mysql
peut être lancée avec la commande pkgadd
:
root@SRVUNXFR> cd /tmp root@SRVUNXFR> pkgadd -d /tmp -R/Software/mysql
The following packages are available: 1 mysql-max mysql (sun4u) 5.0.4 Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]:1
À l’issue de l’installation un répertoire mysql-5.0.4 est bien créé dans le
répertoire /Software/mysql
et le propriétaire est mysql (groupe dba)
.
Un répertoire var
est créé par la commande pkgadd
dans le répertoire de destination /Software/mysql
,
ce dernier peut être tout simplement supprimé.
root@SRVUNXFR> cd /Software/mysql root@SRVUNXFR> ls -lrt
drwxr-xr-x 3 root other 512 May 6 16:21 var drwxr-xr-x 14 mysql dba 512 May 6 16:21 mysql-5.0.4
root@SRVUNXFR> rm -rf var