#1 Le 21/11/2009, à 02:38
- billou
[Résolut] Problème avec "preinst" et remplacement de fichier
Salut, ça fait plus de deux heures que je me casse les dents sur un paquet deb.
Je cherche à me créer un Fix pour OpenArena, ce dernier ayant tendance à déconner pas mal niveau son (grésillements), j'ai bien trouvé la solution à mon problème, mais ce dernier en crée de nouveau avec l'utilisation du son sur le système.
J'ai donc choisit d'utiliser un script créant le fichier nécessaire juste avant l'exécution d'openarena, et le supprimant quand je quitte le jeu.
Voulant automatiser tout ça, je me suis créé un paquet Deb, avec lequel je comptais modifier le fichier openarena.desktop pour éviter de trop pourrir le tout, et rediriger ce dernier vers mon script (executable) qui pointera vers l'executable d'openarena, sans que ce dernier ne soit touché/renommé.
Dossier DEBIAN :
fichier "control" :
Package: openarena-fix-audio
Version: 1.0
Architecture: i386
Maintainer: Camille.D
Depends: openarena
Section: games
Priority: optional
Description: Fix audio pour OpenArena
Ce paquet contient un fix pour les grésillements du son avec OpenArena
.
Ce fix est sous licence libre, un critère garant de vos droits et libertés.
fichier "preinst" :
#!bin/sh
rm /usr/share/applications/openarena.desktop
Dossier /usr/bin :
fichier openarena-fix (script executable)
#!/bin/sh
#création du fix temporaire
echo "pcm.!default {
type plugin
card 0
}
ctl.!default {
type hw
card 0
}
pcm.!default {
type plug
slave.pcm "dmixer"
}
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm {
type hw
card 0
}
rate 44100
period_time 0
period_size 2048
buffer_size 32768
}
slowptr 1
}" > ~/.asoundrc
#lancement de openarena
openarena
#suppression du fichier .asoundrc:
rm ~/.asoundrc
Dans le dossier /usr/share/applications
Fichier "openarena.desktop"
[Desktop Entry]
Name=OpenArena
Comment=A fast-paced 3D first-person shooter, similar to id Software Inc.'s Quake III Arena
Exec=openarena-fix
Terminal=false
Icon=openarena128
Type=Application
Categories=Game;ArcadeGame;
Comment[fr_FR.UTF-8]=Un jeu de shoot 3D à la première personne, similaire à Quake III Arena
Un coup de chown root:root et de chmod 4755 sur tous les dossier sauf "DEBIAN"
Puis je crée le paquet :
dpkg --build ~/OpenArena-Fix OpenArena-Fix.deb
Enfin, mon paquet est créé, et je tente de l'installer :
dpkg -i OpenArena-Fix.deb
Et j'obtiens :
Dépaquetage de openarena-fix-audio (à partir de OpenArena-Fix.deb) ...
dpkg (sous-processus) : impossible d'exécuter nouveau script pre-installation: Aucun fichier ou dossier de ce type
dpkg : erreur de traitement de OpenArena-Pack.deb (--install) : le sous-processus nouveau script pre-installation a retourné une erreur de sortie d'état 2
Des erreurs ont été rencontrées pendant l'exécution :
OpenArena-Pack.deb
Je tente alors une suppression manuelle du fichier d'origine qui je pense fout la merde (openarena.desktop d'origine) et même erreur.
Je tente alors de supprimer le fichier "preinst" dans le dossier DEBIAN et j'obtiens :
Dépaquetage de openarena-fix-audio (à partir de OpenArena-Fix.deb) ...
dpkg : erreur de traitement de OpenArena-Pack.deb (--install) :
tentative d'écrasement de '/usr/share/applications/openarena.desktop', qui est aussi dans le paquet openarena 0:0.8.1-4
Traitement des actions différées (« triggers ») pour « desktop-file-utils »...
Des erreurs ont été rencontrées pendant l'exécution :
OpenArena-Pack.deb
Et ce malgré la suppression manuelle du fichier "openarena.desktop" d'origine auparavant !!
Franchement je sature là... Si quelqu'un pouvait m'aider... En plus le pense que ça aiderais plus d'un joueur, beaucoup de monde rencontre des problèmes de grésillement avec OpenArena...
Dernière modification par billou (Le 24/11/2009, à 03:26)
Hors ligne
#2 Le 21/11/2009, à 10:59
- lawl
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Pourquoi dans le café !?
A force de le fréquenté tu a oublié que les problèmes on les expose dans le reste du forum !
Hors ligne
#3 Le 21/11/2009, à 13:17
- HymnToLife
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Comme le message te le dit, un paquet n'a pas le droit de supprimer des fichiers qui appartiennent à d'autre paquets. La solution, c'est d'utiliser dpkg-divert dans ton preinst, dans ce genre là :
dpkg-divert --package openarena-fix-audio --divert /usr/share/applications/openarena.desktop.broken --rename /usr/share/applications/openarena.desktop
- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !
Hors ligne
#4 Le 21/11/2009, à 14:16
- billou
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Je viens d'essayer HymnToLife et j'obtiens encore une erreur
Dépaquetage de openarena-fix-audio (à partir de .../OpenArena-Fix.deb) ...
dpkg (sous-processus) : impossible d'exécuter nouveau script pre-installation: Aucun fichier ou dossier de ce type
dpkg : erreur de traitement de /media/Perso/Systèmes/OpenArena-Fix.deb (--install) :
le sous-processus nouveau script pre-installation a retourné une erreur de sortie d'état 2
Et le comble c'est que ta commande, dans un terminal, avec un ptit sudo... Elle fonctionne !
Hors ligne
#5 Le 21/11/2009, à 14:31
- HymnToLife
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Peut-être un problème de PATH, essaie avec /usb/bin/dpkg-divert (et assure-toi que le fichier .desktop est bien là, donc supprime la diversion si tu l'as créée manuellement).
- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !
Hors ligne
#6 Le 21/11/2009, à 15:05
- billou
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Je viens d'essayer, j'ai bien supprimé la diversion, et le fichier openarena.desktop d'origine est bien au bon endroit, et j'obtiens encore la même erreur
Ptain c'est dingue... C'est quoi ce bordel?
Hors ligne
#7 Le 21/11/2009, à 16:42
- HymnToLife
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Faudrait que je teste chez moi, mais je suis en mode révisions, là. Dans une semaine, si t'a pas trouvé avant.
- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !
Hors ligne
#8 Le 21/11/2009, à 17:13
- billou
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Arf, dans une semaine y'a l'install party chez moi, et je dois avoir finit toutes mes modifications/ajouts/patchs avant ça.
En tout cas merci du coup de main, j'installerais ça à la main via le chroot, en attendant d'avoir une solution plus propre, j'espère que toi (ou quelqu'un d'autre) pourra m'éclairer, car là je sature
Merci en tout cas
Hors ligne
#9 Le 21/11/2009, à 18:58
- Link31
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Ton script pour ~/.asoundrc est une très mauvaise idée... Si tu tiens vraiment à faire ce genre de manipulation dans les préférences des utilisateurs et à leur insu, fais au moins un backup du fichier ~/.asoundrc d'origine et restaure-le après.
Hors ligne
#10 Le 21/11/2009, à 19:12
- billou
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
J'y avais songé link, mais bon... Tant que le reste n'est pas réglé...
Je compte également intégrer un petit bout de script vérifiant si compiz est lancé, et dans ce cas, le désactivera, tout en créant également un fichier dans /tmp
Une fois le jeu quitté, le script vérifiera si le fichier est présent dans /tmp, pour réactiver compiz ensuite.
Hors ligne
#11 Le 22/11/2009, à 17:56
- billou
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Up?!
Hors ligne
#12 Le 23/11/2009, à 05:13
- billou
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Up?!
Hors ligne
#13 Le 24/11/2009, à 00:22
- benbugohit
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
alors là :
#!bin/sh rm /usr/share/applications/openarena.desktop
Ton problème est dans ton script de préinstall !
il manque le "/" entre le "!" et le "bin", non ?
#!/bin/sh
rm /usr/share/applications/openarena.desktop
et en vérifiant que le fichier à supprimer existe :
#!/bin/sh
[ -e /usr/share/applications/openarena.desktop ] && rm /usr/share/applications/openarena.desktop
un petit
help test
pour comprendre ce
[ -e /usr/share/applications/openarena.desktop ] && rm
Dernière modification par benbugohit (Le 24/11/2009, à 00:23)
#### | - Sur un ordi depuis l'âge de 9 ans
(o_o) | - linuxien depuis 2002 (debian potato, mandrake 8, gentoo 2004.0,...)
..|~|.. | - ubuntu 10.10 sur Dell Vostro 1310
Hors ligne
#14 Le 24/11/2009, à 01:08
- billou
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Tout est réglé désormais, le fix pour les problèmes de grésillement avec OpenArena est prêt : http://forum.ubuntu-fr.org/viewtopic.php?pid=3091322
Dernière modification par billou (Le 24/11/2009, à 01:08)
Hors ligne
#15 Le 24/11/2009, à 02:09
- benbugohit
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Nickel !
Et qu'est-ce qui a marché alors ?
Parce qu'on est 400 à avoir essayé de t'aider, alors pour faire avancer le chmilblick et connaître les aventures en détails, just'avant qu'on apprenne que le film est fini ?
Dire ta vérité et partager à la communauté ce qui a "réglé" ton soucis... cher adhérent de l'April
La liberté, ce n'est pas que se servir ou tourner le dos librement
PS : je viens de regarder le lien vers ton post, ok
Donc tu peux mettre "résolu" ?
Et ça confirme l'erreur du "!" :-p
Dernière modification par benbugohit (Le 24/11/2009, à 02:16)
#### | - Sur un ordi depuis l'âge de 9 ans
(o_o) | - linuxien depuis 2002 (debian potato, mandrake 8, gentoo 2004.0,...)
..|~|.. | - ubuntu 10.10 sur Dell Vostro 1310
Hors ligne
#16 Le 24/11/2009, à 03:14
- billou
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
Pas la peine de me faire la leçon, je sais bien tout ça, je comptais intervenir plus tard, mais en ce moment je suis très occupé (vous comprendrez pourquoi bientôt...)
Puis c'est pas comme si je partageais rien hein... Y'a que voir le résultat du script.
Bref, pour la soluce, j'ai remplacé par ceci :
#!/bin/sh -e
dpkg-divert --package openarena-fix --divert /usr/share/applications/openarena.desktop.broken --rename /usr/share/applications/openarena.desktop
exit 0
La commande reste la même, mais j'ai mis #!/bin/sh -e à la place de #!/bin/sh et j'ai rajouté un exit 0 à la fin du script
Pour les curieux, voici le fichier postrm, pour prendre en compte également la suppression :
#!/bin/sh -e
dpkg-divert --package openarena-fix --rename --remove /usr/share/applications/openarena.desktop
exit 0
J'ai trouvé ces deux solutions en fouinant dans les paquets des dépôts officiels, j'ai rapidement noté cette différence, et ai donc testé.
Hors ligne
#17 Le 24/11/2009, à 10:36
- benbugohit
Re : [Résolut] Problème avec "preinst" et remplacement de fichier
respect !
autant pour moi pour mon post précédent !
et merci pour les éclaircissements !
#### | - Sur un ordi depuis l'âge de 9 ans
(o_o) | - linuxien depuis 2002 (debian potato, mandrake 8, gentoo 2004.0,...)
..|~|.. | - ubuntu 10.10 sur Dell Vostro 1310
Hors ligne