2009-09-10 17 views
4

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

2

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 
+0

Merci beaucoup, qui a pris soin de ce que j'avais l'intention de faire. – MichalKlich

0

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é.

+0

Merci, je vais certainement regarder ces vidéos. – MichalKlich