Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 17/04/2013, à 03:14

londumas

[résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

Bonjour,
J'ai créé une application pour me rappeler les anniversaires du jour ou manqués au démarrage de l'ordinateur. J'essaye de créer un paquet avec dpgg-deb --build mais j'ai quelques problèmes.
Je l'installe avec la logithèque et je constate que mon postinst n'a pas été suivi complètement. Tout n'a pas été créé. Ainsi la ligne suivante ne s'est pas exécuté

cat << EOF >> $HOME/.config/autostart/anniv-reminder.desktop
[Desktop Entry]
Type=Application
Exec=sh -c "sleep 10 && (anniv-reminder &)"
Name=Anniversaire
Icon=/usr/share/icons/anniv-reminder.svg
Comment=Affiche les anniversaires du jour
X-GNOME-Autostart-enabled=true
EOF

De même d'autres ligne ne sont pas suivit. Que faire ? d'où vient le problème ?
Pouvez-vous regarder aussi la structure de mon .deb pour me dire si il est bien fait ?
https://docs.google.com/file/d/0B-lfbGD … sp=sharing

DEBIAN
    - contol
    - postinst
    - postrm
usr
    - share
                - anniv-reminder
                         - anniv-reminder.ogg
                         - anniv-reminder.py
                         - anniv-reminder.sh
                - applications
                         - anniv-reminder.desktop
                - doc
                         - anniv-reminder
                                    - README.txt
                - icons
                         - anniv-reminder.svg
                - pixmaps
                         - anniv-reminder.svg



Merci

Dernière modification par du Mas des Bourboux (Le 19/04/2013, à 10:12)

Hors ligne

#2 Le 17/04/2013, à 13:30

Hoper

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

Tout n'a pas été créé. Ainsi la ligne suivante ne s'est pas exécuté

Ce n'est qu'une simple hyptohèse, je n'ai pas vérifié...
Mais je ne serai pas surpris que la variable $HOME ne soit pas renseignée au moment ou ce script est exécuté. Essaye de mettre un chemin en dur, à un endroit accessible comme /tmp pour voir.


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/tdc/

En ligne

#3 Le 18/04/2013, à 01:41

londumas

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

Merci pour ta réponse.

Je pense que c'est ça car si je remplace $HOME par /home/helion ça fonctionne.
Comment alors créer un "chemin en dur" ? Comment faire ? Et surtout pourquoi ça ne fonctionne pas ?

Hors ligne

#4 Le 18/04/2013, à 15:34

Hoper

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

Probablement parce qu'il n'y a pas d'environement (variables...) dans le shell qui execute l'installation. (soit les variables ne sont jamais définies, soient elles ne sont pas exportées). De toute façon, c'est root qui installe un paquet, pas un utilisateur particulier.

J'ajoute qu'un paquet n'est pas destiné à un utilisateur, mais à TOUS les utilisateurs. Si tu veux déposer un fichier de configuration par exemple, il doit plutot se trouver dans /etc (quitte à être surchargé par l'utilisateur avec une configuration qui lui sera propre dans son répertoire).

Si ce que tu cherche à faire est à créer un icone pour ton application, tu peux peut etre jeter un oeil sur mon paquet kclean (je ne sais plus comment j'ai fait, mais j'ai forcément utilisé un truc hyper simple, ce paquet est le plus basique qui soit).

Tu pourra le télécharger ici :
http://hoper.dnsalias.net/tdc/index.php?pages/kclean


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/tdc/

En ligne

#5 Le 18/04/2013, à 15:47

londumas

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

J'ai du mal à comprendre désolé.
Je pense que le problème vient de ce que tu appelles

Comment faire cela ?
C'est à dire que $HOME ou ~ sois compris ?

Merci pour ta réponse

Hors ligne

#6 Le 18/04/2013, à 16:33

Hoper

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

C'est à dire que $HOME ou ~ sois compris ?

Tu ne pourra pas. Et même si tu y parvenais, HOME serait égal alors égal à "/root". Encore une fois, quand tu installe un paquet, c'est root qui l'instal, et pas un utilisateur particulier. si tu as deux utilisateur sur ta machine, tu fais comment pour savoir ou mettre ton fichier ?

Si vraiment tu veux bricoler (c'est HYPER CRADE) comme truc, tu peux, dans ton script, faire un grep dans le fichier /etc/passwd (en regardant l'uid 1000 par exemple) pour trouver le bon chemin. Mais franchement, c'est très naze comme technique. Si c'est que pour toi, pourquoi pas, mais ne va surtout pas diffuser un paquet comme ça, tu te ferai (à juste titre) incendier smile


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/tdc/

En ligne

#7 Le 19/04/2013, à 01:44

londumas

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

Ce que je ne comprends pas c'est que quand j'installe EasyTag, par exemple, celui-ci crée un dossier dans $HOME appelé .easytag. Si tu regardes les fichiers cachés dans ton home, il y en a plein comme ça. Comment faire la même chose ?
Désolé si je repose la question, mais je ne comprends pas comment cela peut être impossible si d'autres paquets le font.

Hors ligne

#8 Le 19/04/2013, à 08:51

Hoper

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

Je pense (je peux me tromper) que ces paquets utilise un script de post installation qui crée ce fichier de configuration dans tous les répertoires existants dans /home. (et franchement, c'est un peu crade car cela veut dire qu'un utilisateur qui est déclaré après n'aura donc pas ces fichiers !)

Le plus simple, pour avoir le coeur net, c'est de regarder comment fonctionne le paquet en question smile Pour retrouver le contenu du répertoire DEBIAN (et donc le fichier de control et les scripts qui vont autour), utilise la commande : dpkg -e truc.deb


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/tdc/

En ligne

#9 Le 19/04/2013, à 09:13

bbtux2

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

Ce n'est pas à l'installation du paquet que le fichier de config de l'utilisateur est crée, mais lors de la première utilisation de l'application par l'utilisateur.
Fichier "créé par l'utilisateur" (ex : par fenêtre de dialogue si pas de fichier de config) ou alors recopié depuis un fichier modèle (Dans /etc ?) qui pourrait contenir $HOME.

Hors ligne

#10 Le 19/04/2013, à 09:47

londumas

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

Il y a juste ça dans postinst

#!/bin/sh
set -e
# Automatically added by dh_installmenu
if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ]; then
	update-menus
fi
# End automatically added section

toujours pas d'idée. Pourtant le nombre de paquets qui installe un fichier de config dans $HOME est énorme

Hors ligne

#11 Le 19/04/2013, à 10:02

bbtux2

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

du Mas des Bourboux a écrit :

Ce que je ne comprends pas c'est que quand j'installe EasyTag, par exemple, celui-ci crée un dossier dans $HOME appelé .easytag. Si tu regardes les fichiers cachés dans ton home, il y en a plein comme ça. Comment faire la même chose ?
Désolé si je repose la question, mais je ne comprends pas comment cela peut être impossible si d'autres paquets le font.

Je viens d'installer EasyTag et pas de fichier de config dans mon $HOME

Je le lance et il me créer le dossier .easytag avec ses fichiers de configs dedans.

C'est ce qui permet aussi parfois de régler certains problèmes : On efface le dossier ou le fichier de config du $HOME et on relance le programme qui posait problème qui recréer une config de base vierge.

Hors ligne

#12 Le 19/04/2013, à 10:11

londumas

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

Donc la solution s'est de créer le dossier à la première ouverture/exécution.
Merci
Je peux mettre en résolu alors.

Merci beaucoup pour ton aide

Dernière modification par du Mas des Bourboux (Le 19/04/2013, à 10:12)

Hors ligne

#13 Le 19/04/2013, à 14:35

Hoper

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

@bbtux2 :

C'était tellement évident que je suis joliment passé à coté.
Si un truc est trop simple j'y pense pas big_smile
Merci smile


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/tdc/

En ligne

#14 Le 22/04/2013, à 16:00

londumas

Re : [résolu] Création d'un paquet avec sudo dpkg-deb --build <paquet>

Retour sur expérience...
Le fait de créer à la première exécution donne quelque chose de pas mal. Mon application commence à donner quelque chose. Vous pouvez regarder ce que cela donne ici.
Application

Juste quelque questions. Lorsque j'installe par la Logithèque cela me créer un lanceur sans l'icone que j'ai choisi. Il met l'icone des boites en cartons.
Que choisir comme licence ? Je veux la rendre libre mais juste donner mon mail si il y a des retours.
Que lire et quel tutoriel pour apprendre à faire un ppa pour Launchpad ? J'ai créé mon ppa mais on ne peut pas lui donner un .deb apparemment.

Merci pour votre aide à vous deux

Hors ligne

Haut de page ↑