Je suis un novice. Je construis un paquet rpm pour ma propre application et j'ai décidé d'utiliser distutils pour y arriver. J'ai réussi à créer un substitue de% post en utilisant les conseils de ce site, dont je suis vraiment reconnaissant, mais j'ai des problèmes avec% postun. Laissez-moi vous décrire ce que j'ai fait. Dans setup.py, j'exécute une commande qui crée un lien symbolique nécessaire à l'exécution de l'application. Cela fonctionne bien mais le problème est quand je veux enlever le rpm, le lien reste là. Donc j'ai pensé que je devrais utiliser% postun dans le fichier spec. Ma question est: existe-t-il un moyen de le faire dans setup.py ou dois-je modifier manuellement le fichier spec? S'il vous plaît aviser ou me signaler quelques manuels ou quoi que ce soit. Mercidistutils setup.py et% post% postun
Répondre
Oui, vous pouvez spécifier un script post-installation, il suffit de déclarer dans le bdist_rpm dans les options arg le fichier que vous souhaitez utiliser:
setup(
...
options = {'bdist_rpm':{'post_install' : 'post_install',
'post_uninstall' : 'post_uninstall'}},
...)
Dans le fichier post_uninstall, il mit votre code besoin de supprimer le lien, quelque chose comme:
rm -f /var/lib/mylink
Ni distutils ni setuptools n'ont de fonctionnalité de désinstallation. À un certain point, la communauté python a convenu que la désinstallation devrait être gérée par le système de conditionnement. Dans ce cas, vous voulez utiliser rpm, il y a probablement un moyen de supprimer les paquets à l'intérieur du système rpm, mais vous ne le trouverez pas dans distutils ou setuptools.
@ pycon2009, il y avait une présentation sur distutils et setuptools. Vous pouvez trouver toutes les vidéos
Eggs and Buildout Deployment in Python - Part 1
Eggs and Buildout Deployment in Python - Part 2
Eggs and Buildout Deployment in Python - Part 3
Il y a une vidéo appelée How to Build Applications Linux Distributions will Package. Je ne l'ai pas vu, mais cela semble approprié.
Merci, je vais certainement regarder ces vidéos. – MichalKlich
Merci beaucoup, qui a pris soin de ce que j'avais l'intention de faire. – MichalKlich