Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/11/2015, à 14:30

xunil2003

Créer un paquet Deb de ses applications

Bonjour,

Je voudrais créer des paquets deb de mes applications en python 2.7.6.
Afin de réaliser mon paquet, j'ai fait ceci :

Arborescence

laurent@laurent-PC-Bureau:~/dossier-des-paquets$ tree /home/laurent/dossier-des-paquets/remise/
/home/laurent/dossier-des-paquets/remise/
├── DEBIAN
│   ├── control
│   ├── copyright
│   ├── menu
│   ├── postinst
│   └── postrm
└── usr
    ├── bin
    │   └── Remise
    └── share
        ├── applications
        │   └── remise.desktop
        ├── pixmaps
        │   ├── Remise_Icone_16x16.png
        │   └── Remise_Icone_16x16.xpm
        └── remise
            └── remise.py

7 directories, 10 files
laurent@laurent-PC-Bureau:~/dossier-des-paquets$ 

Contenu du fichier control :

Package: Remise
Version: 1.0.0.A
Section: base
Installed-Size: 5284
Priority: optional
Architecture: all
Depends: bash, python (>= 2.7)
Maintainer: auteur<auteur@fai.pays>
Description: Calcul le pourcentage d'une remise pour vos achats.
Homepage: http://www.site-auteur.com

Contenu du fichier copyright :

This work was packaged for Ubuntu by auteur <auteur@free.fr>
on Mon, 11 Novembre 2015 00:43:48 +0200

Copyright:

    Copyright (C) 2015 

License:

    All rights reserved.

Contenu du fichier menu :

?package(remise): needs="X11|wm" \
 section="Applications/Utility" \
 hints="remise" \
 title="Remise" \
 icon="/usr/share/pixmaps/Remise_Icone_16x16.xpm" \
 command="python /usr/bin/Remise.py"

Contenu du fichier postinst:

#!/bin/bash 

#echo "L'installation de Remise est terminé"
#echo
exit 0

Contenu du fichier postrm :

#!/bin/bash

#echo "Supression de l'application au menu."
#echo "L'application Remise est désinstaller"
#echo
exit 0 

Contenu du fichier Remise:

#!/bin/bash
python /usr/share/remise/remise.py  &

Une fois les fichiers "postinst" et "postrm" de créé, je leur attribue les permissions 755 :

sudo chmod 755 /home/laurent/dossier-des-paquets/remise/DEBIAN/post*
sudo chmod 755 /home/laurent/dossier-des-paquets/remise/DEBIAN/pre*

Contenu du fichier remise.desktop :

[Desktop Entry]
Categories=Application;Utility
Comment[fr]=Calcul le pourcentage d'une remise
Comment=commentaire en eng
Exec=python /usr/share/remise/remise.py
GenericName[fr]=
GenericName=
Icon=/usr/share/pixmaps/Remise_Icone_16x16.png
MimeType=
Name[fr]=Remise
Name=Remise
Path=/usr/share/remise/
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application 

Dans Ubuntu 14.04 LTS x64 quand je fais un clique droit sur le fichier deb et clique sur ouvrir avec "Logitheque Ubuntu"

Puis clique sur Installer
Je remarque qu'il n'y a pas de description de l'application juste le site interet de l'auteur et la verson s'affiche 
Quand je clique sur installer, j'ai ce message qui s'affiche :
Le paquet est de mauvaise qualité
L'installation d'un paquet qui viole les normes de qualité n'est pas autorisée. Cela pourrait engendrer de graves problèmes sur votre ordinateur. Veuillez contacter la personne ou l'organisation qui a fourni ce paquet en incluant les renseignements ci-dessous.

Détail :
Linitian check results for /home/laurent/dossier-des-paquets/remise.deb
E: Remise: Control-file-has-bad-owner postint laurent/laurent != root/root
E: Remise: Control-file-has-bad-owner postrm laurent/laurent != root/root
E: Remise: bad-package-name
E: Remise: package-not-lowercase
E: Remise: wrong-file-owner-uid-or-gid usr/ 1000/1000
E: Remise: wrong-file-owner-uid-or-gid usr/bin 1000/1000
E: Remise: wrong-file-owner-uid-or-gid usr/bi/Remise 1000/1000
E: Remise: wrong-file-owner-uid-or-gid usr/share 1000/1000
E: Remise: wrong-file-owner-uid-or-gid usrshare/applications/ 1000/1000
E: Remise: wrong-file-owner-uid-or-gid usrshare/applications/remise.desktop 1000/1000
E: Remise: wrong-file-owner-uid-or-gid usr/share/pixmaps/ 1000/1000
E: Remise: wrong-file-owner-uid-or-gid usr/share/pixmaps/Remise_Icone_16x16.png 1000/1000
E: Remise: wrong-file-owner-uid-or-gid usr/share/pixmaps/Remise_Icone_16x16.xpm 1000/1000
E: Remise: wrong-file-owner-uid-or-gid usr/share/remise/ 1000/1000
E: Remise: wrong-file-owner-uid-or-gid usr/share/remise/remise.py 1000/1000

[Valider]     [Ignorer et installer]

Et quand je fais un clique droit de nouveau sur le fichier deb et clique sur ouvrir avec "Programme d'installation de paquets << Qapt >>" et clique sur "Installer un paquet" tout fonctionne normalement ?

Idem depuis le shell,  tout fonctionne normalement ?

laurent@laurent-PC-Bureau:~/dossier-des-paquets$ sudo dpkg -i remise.deb
Sélection du paquet remise précédemment désélectionné.
(Lecture de la base de données... 438849 fichiers et répertoires déjà installés.)
Préparation du décompactage de remise.deb ...
Décompactage de remise (1.0.0.A) ...
Paramétrage de remise (1.0.0.A) ...
Traitement déclenché pour  gnome-menus (3.10.1-0ubuntu2) ...
Traitement déclenché pour  desktop-file-utils (0.22-1ubuntu1) ...
Traitement déclenché pour  mime-support (3.54ubuntu1.1) ...
laurent@laurent-PC-Bureau:~/dossier-des-paquets$

Donc j'ai plusieurs questions :
1/ Comment faire pour que mon paquet deb fonctionne avec la Logithèque Ubuntu qu'est-ce qui ne va pas?

2/ Dans le fichier "/usr/share/applications/remise.desktop" de mon application, j'ai ajouté en fin de ligne :

Categories=Application;Utility

Afin d'ajouter l'application dans "Menu/Utilitaires".
Si je veut l'ajouter dans "Menu/Utilitaires/autres applications" ou dans "Menu/Utilitaires/Bureautique" comment dois-je m'y prendre ?

3/ Dans le fichier "/usr/share/applications/remise.desktop" de mon application, j'ai ajouté en fin de ligne :

Comment[fr]=Calcul le pourcentage d'une remise

mais ceci ne s'affiche pas en commentaire dans le menu de KDE, comme par exemple "Dolphin (Gestionnaire de fichiers)" dans système.
Comment résoudre ce petit problème ?

4/ Dans le fichier "/DEBIAN/control de mon paquet, j'ai ajouté en fin de ligne :

Depends: bash, python (>= 2.7)

Est-ce correct, l'appli est en python 2.7.6 ?

Merci.


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#2 Le 17/11/2015, à 14:10

tiramiseb

Re : Créer un paquet Deb de ses applications

Salut,

1/ Comment faire pour que mon paquet deb fonctionne avec la Logithèque Ubuntu qu'est-ce qui ne va pas?

Les fichiers ne doivent pas appartenir à un utilisateur "normal". C'est clairement indiqué : « wrong-file-owner-uid-or-gid ».

4/ Dans le fichier "/DEBIAN/control [...] Est-ce correct

Pourquoi bash ?
Pour commencer, évite bash dans les scripts, utilise plutôt sh.
Ensuite, à part un script inutile (voir plus bas), je ne vois pas où tu as du bash dans ton truc : ce n'est que du Python, non ?

----

Par ailleurs, dans ton fichier "menu" je vois :

 command="python /usr/bin/Remise.py"

Mais dans /usr/bin, tu n'as pas de fichier "Remise.py", tu as un fichier "remise".
Par ailleurs, utilise plutôt un shebang pour permettre de lancer ce programme sans spécifier python explicitement.
Et évite les extensions dans /usr/bin.

Autrement dit, ton fichier "remise.py" devrait être placé dans /usr/bin, rendu exécutable, et sa première ligne devrait être :

#!/usr/bin/env python2.7

... le shellscript "/usr/bin/remise" (qui devrait utiliser sh plutôt que bash) est alors inutile.

Hors ligne