Ce tutoriel suppose que vous avez déjà installer l'installateur de paquet avec:
apt-get install dtc-package-installer
ou
git clone http://git.gplhost.com/dtc-package-installer.git
Nous avons eu beaucoup de demande relative à un tutoriel permettant cela. Voici donc une rapide explication sur comment faire. Nous allons prendre le pack phpBB comme exemple, celui-ci étant facile à créer, et ne devrait pas être trop difficile à comprendre. Les même règles devraient pouvoir s'appliquer aux autres paquets.
- 1. Créez un répertoire dans DTCPATH/shared/package-installer/
Rien de spécial, notez bien que les noms doivent être en minuscules (just pour faire propre) et SANS ESPACE s'il vous plais.
- 2. Allez dans votre nouveau répertoire, et créez l'archive du paquet
Ce que vous devez faire est de décompresser l'archive, et pourquoi pas la renommer plus proprement. Je vous suggère d'utiliser le nom du paquet en lui même. Juste après, vous devriez appliquez un chown nobody:nogroup pour que l'archive s'installe correctement (sinon vous n'aurez pas les droits appropriés). Ensuite, faites un "du -b" dans le dossier de votre archive décompressée et notez le quelque part pour plus tard, vous pouvez maintenant la re-compresser avec l'extension tar.gz ou tar.bz2 par exemple.
- 3. Editez le fichier dtc-pkg-info.php
Ce que je vous suggère de faire est simplement une copie du même fichier d'un autre paquet. (/usr/share/dtc/shared/package-installer/)
Changer toutes les valeurs de champs: name, version, short_desc, long_desc, et tous les champs de type booléen (type yes/no). Disons que vous avez réglé "need_database" sur oui, l'installateur de paquet va donc demander à l'utilisateur quelle base utiliser, avec quel utilisateur et mot de passe. Vous n'avez pas à écrire d'interface pour faire cela, DTC va le demander pour vous.
Régler la valeur de "unpack_type" correctement (tar.gz si l'archive de votre paquet à cette extention), régler la taille obtenue plus tôt avec la commande du -b, réglez le nom de fichier de l'archive, et le nom du dossier que vous avez paqueté dans "resulting_dir". Vous pouvez régler "renamedir_to" avec l'un ou l'autre nom, ou n'importe avec lequel vous voulez que DTC renomme votre répertoire.
- 4. Ecrivez le script dtc-pkg-install.php
Aprés décompression de l'archive dans le sous-répertoire vhost de l'utilisateur, l'installateur va exécuter ce script. C'est l'endroit oé vous devrez écrire toutes les commendes de post-installation.
Le meilleurs moyen pour vous de comprendre comment les écrire, est de jeter un œil sur le script d'installation de phpBB qui a pas mal d'options. Au début, vous allez voir tous les paramètres envoyés au script. Vous devrez utilisez $_REQUEST["xxx"] sachant que xxx est le paramètre de l' URL. Le début du script récolte les informations relatives au chemin (path), renommez alors le répertoire du paquet avec celui que l'utilisateur va utiliser. Certains scripts n'apprécient pas d'avoir un nom de répertoire différent de celui qu'ils utilisent, voilé le pourquoi de cette organisation.
Juste après, vous voyez que le script construit une structure appelée $data. Celle-ci va-t-être envoyée à la fonction HTTP_Post() qui est interne au panneau de contrôle. Le but de cette fonction est d'appeler toutes les URL en postant tous les paramètres. L'autre paramètre est le référant, on y porte peut d'intérêt, c'est pour cela qu'il y a deux fois $url dedans.
Cet appel HTTP_Post() est utiliser pour envoyer tout ce qui va être saisi par l'utilisateur de l'installateur de phpBB. En fait, toutes les informations, nous les avons déjà, c'est donc facile de les envoyer directement à phpBB, les utilisateurs n'ont donc pas à les saisir deux fois. Si vous jeter un œil sur l'installateur d'osCommerce, il envoie juste l'utilisateur sur l'url de l'installateur d'osCommerce, simplement parce que j'étais trop paresseux pour faire quelque chose qui automatiserais toutes les options. Il vous est également possible de faire de même, c'est même peut être mieux si le projet pour lequel vous créer votre paquet installateur change son propre installateur souvent.
Voici un rapide résumé des commandes à exécuter :
git commit -a
git pull http://git.gplhost.com/dtc-package-installer.git master
git rebase
git log
git-format-patch [ID-OF-PREVIOUS-COMMIT]
git rebase risque de vous renvoyer une erreur, pas d'inquiétude à ce sujet, c'est simplement pour passer votre patch en tête de liste mais il y est déjà. ce n'est donc pas une erreur en soit.
Cela va vous générer un gros fichier, ne l'envoyer pas par mail sur la dev list. Envoyez le simplement quelque part sur un serveur en envoyer le lien par mail à al dev list.
Si toute fois vous aviez, vraiment, besoins de plus d'information à ce propos, dites-moi simplement ce que vous pensez qu'il manque, je le rédigerais ici.