![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Encore un gestionnaire de paquets? Un autre, un de plus allez-vous dire. Le problème de tous les gestionnaire de paquets, reste l'adhérence au système qui l'utilise. C'est là qu'EPM apporte quelquechose:
EPM peut générer des paquets "portable", car il est basé sur des shell scripts, tar, le shell (Bourne, Korn ou bash), zip, et un compilateur c.
On peut éventuellement, utiliser une interface graphique qui repose sur la très portable librairie fltk.
Mais, ce qui est exceptionnel, c'est que EPM est capable de générer des format spécifique comme des paquets rpm(redhat), deb(debian) et même bff (aix), et bien d'autres encore.
Allez jeter un couip d'oeil sur le site ESP Package Manager et n'hésitez pas à consulter la documentation.
Ceci est mon organisation personnelle. Mais elle réalise sa fonction parfaitement. La structure repose sur:
ls -ltr total 56 drwxr-xr-x 3 root system 512 Oct 22 2008 man drwxr-xr-x 2 root system 512 Oct 22 2008 bin -rw-r--r-- 1 root system 328 Apr 28 11:39 COPYING -rw-r--r-- 1 root system 245 Apr 28 11:40 README drwxr-xr-x 2 root system 512 Apr 28 11:45 src -rw-r--r-- 1 root system 881 Jul 13 09:47 dos2unix.list drwxrwxrwx 2 root system 512 Jul 13 09:49 aix-5.3-powerpc
COPYING contient la licence et README le readme associé au paquet. dos2unix.list est le fichier qui va permettre de générer les paquets avec EPM. Nous allons voir son contenu par la suite.
aix-5.3-powerpc est un répertoire créé par EPM qui va contenir les paquets générés.
Les fichiers qui permettent la génération de paquets à l'aide de EPM se termine forcément par l'extension .list.
EPM offre de nombreuses possibilités, comme la génération conditionnelle des packages en fonction du systèmes, l'utilisation de scripts de postinstall, etc.. Je vous invinte à consulter sa documentation.
Le fichier que je vous présente va pouvoir vous servir de base pour vos paquets. Il est minimaliste, mais paramétrable. J'ai créé trois sections:
#------------------------------------------------------------------ # variables #------------------------------------------------------------------ $prefix=/usr/local $exec_prefix=/usr/local $epmdir=${exec_prefix}/epm $bindir=${exec_prefix}/bin $datadir=/usr/local/share $docdir=${datadir}/doc/epm $libdir=/usr/local/lib $mandir=/usr/local/man $srcdir=. #------------------------------------------------------------------ # description #------------------------------------------------------------------ %product dos2unix %copyright 1999-2009 inconnu %vendor Inconnu %license ${srcdir}/COPYING %readme ${srcdir}/README %description dos2unix and unix2dos text file converter %version 1.0 000 #------------------------------------------------------------------ # fichiers #------------------------------------------------------------------ %system all f 755 root system ${prefix}/bin/dos2unix ${srcdir}/bin/dos2unix f 755 root system ${prefix}/bin/unix2dos ${srcdir}/bin/unix2dos d 755 root system ${prefix}/man/man1 - f 640 root system ${prefix}/man/man1/dos2unix.1 ${srcdir}/man/man1/dos2unix.1 f 640 root system ${prefix}/man/man1/unix2dos.1 ${srcdir}/man/man1/unix2dos.1
Vous allez me dire que le plus fastidieux est de répertorier les fichiers à installer et à déterminer les droits.
C'est exact, mais on est aidé par l'utilitaire mkepmlist qui s'utilise ainsi:
#mkepmlist bin man f 755 root system /bin/dos2unix bin/dos2unix f 755 root system /bin/unix2dos bin/unix2dos d 755 root system /man/man1 - f 640 root system /man/man1/dos2unix.1 man/man1/dos2unix.1 f 640 root system /man/man1/unix2dos.1 man/man1/unix2dos.1
Les plus astucieux utiliserons une commande comme ceci afin d'obtenir directement les prefix voulus:
#mkepmlist bin man |sed "s# \/#\${prefix}/#" |sed "s# bin# \${srcdir}#" | sed "s# man# \${srcdir}#"
Il reste à copier cette liste dans le fichier .list.
La façon la plus simple de lancer EPM est celle-ci (Il n'y a pas d'extension .list dans la commande):
#epm dos2unix
Ceci va générer un fichier dos2unix-1.0-aix-5.3-powerpc.tar.gz dans le répertoire aix-5.3-powerpc.
La génération de paquet est aussi simple. Il suffit d'utiliser l'option - f avec le type de paquet souhaité.
#epm -f aix -v dos2unix ESP Package Manager v4.1 Copyright 1999-2007 by Easy Software Products. EPM is free software and comes with ABSOLUTELY NO WARRANTY; for details see the GNU General Public License in the file COPYING or at "http://www.fsf.org/gpl.html". Report all problems to "epm@easysw.com". Searching for product information... Stripping executables in distribution... Creating AIX distribution... Creating lpp_name file... Updating root partition liblpp.a file for dos2unix... Updating shared partition liblpp.a file for dos2unix... Copying temporary distribution files... Building AIX binary distribution... Removing temporary distribution files... Done!
Un fichier dos2unix.bff est généré. Le numéro de la version est à l'intérieur et vous pouvez lancer smitty install pour vérifier.
Si vous souhaitez plus de détails, utilisez l'option -vv.
# epm -f aix -vv dos2unix ESP Package Manager v4.1 Copyright 1999-2007 by Easy Software Products. EPM is free software and comes with ABSOLUTELY NO WARRANTY; for details see the GNU General Public License in the file COPYING or at "http://www.fsf.org/gpl.html". Report all problems to "epm@easysw.com". Searching for product information... Stripping executables in distribution... /usr/bin/strip ./bin/dos2unix strip: ./bin/dos2unix -- 0654-420 The file was already stripped as specified. /usr/bin/strip ./bin/unix2dos strip: ./bin/unix2dos -- 0654-420 The file was already stripped as specified. Creating AIX distribution... Creating lpp_name file... Updating root partition liblpp.a file for dos2unix... Creating .al file... Creating .cfgfiles file... Creating .copyright file... Creating .pre_i file... Creating .post_i file... Creating .unpre_i file... Creating .unpost_i file... Creating .inventory file... Creating liblpp.a archive... ar rc dos2unix/usr/lpp/dos2unix/inst_root/liblpp.a lpp.README ar rc dos2unix/usr/lpp/dos2unix/inst_root/liblpp.a dos2unix.al ar rc dos2unix/usr/lpp/dos2unix/inst_root/liblpp.a dos2unix.copyright ar rc dos2unix/usr/lpp/dos2unix/inst_root/liblpp.a dos2unix.inventory ar rc dos2unix/usr/lpp/dos2unix/inst_root/liblpp.a dos2unix.post_i ar rc dos2unix/usr/lpp/dos2unix/inst_root/liblpp.a dos2unix.pre_i ar rc dos2unix/usr/lpp/dos2unix/inst_root/liblpp.a dos2unix.unpost_i ar rc dos2unix/usr/lpp/dos2unix/inst_root/liblpp.a dos2unix.unpre_i Updating shared partition liblpp.a file for dos2unix... Creating .al file... Creating .cfgfiles file... Creating .copyright file... Creating .inventory file... Creating liblpp.a archive... ar rc dos2unix/usr/lpp/dos2unix/liblpp.a lpp.README ar rc dos2unix/usr/lpp/dos2unix/liblpp.a dos2unix.al ar rc dos2unix/usr/lpp/dos2unix/liblpp.a dos2unix.copyright ar rc dos2unix/usr/lpp/dos2unix/liblpp.a dos2unix.inventory Copying temporary distribution files... ./bin/dos2unix -> aix-5.3-powerpc/dos2unix/usr/local/bin/dos2unix... ./bin/unix2dos -> aix-5.3-powerpc/dos2unix/usr/local/bin/unix2dos... Directory aix-5.3-powerpc/dos2unix/usr/local/man/man1... ./man/man1/dos2unix.1 -> aix-5.3-powerpc/dos2unix/usr/local/man/man1/dos2unix.1... ./man/man1/unix2dos.1 -> aix-5.3-powerpc/dos2unix/usr/local/man/man1/unix2dos.1... Building AIX binary distribution... sh -c 'find . -print | backup -i -f ../dos2unix.bff -q -v' Backing up to ../dos2unix.bff Cluster 51200 bytes (100 blocks). Volume 1 on ../dos2unix.bff a 0 . a 105 ./lpp_name a 0 ./usr a 0 ./usr/lpp a 0 ./usr/lpp/dos2unix a 0 ./usr/lpp/dos2unix/inst_root a 2108 ./usr/lpp/dos2unix/inst_root/liblpp.a a 2102 ./usr/lpp/dos2unix/liblpp.a a 0 ./usr/local a 0 ./usr/local/bin a 38285 ./usr/local/bin/dos2unix a 38413 ./usr/local/bin/unix2dos a 0 ./usr/local/man a 0 ./usr/local/man/man1 a 392 ./usr/local/man/man1/dos2unix.1 a 389 ./usr/local/man/man1/unix2dos.1 total size: 81794 Done at Mon Jul 13 09:49:35 2009; 200 blocks on 1 volume(s) Removing temporary distribution files... /bin/rm -rf aix-5.3-powerpc/dos2unix Done!