Page 1 sur 1
[Compilation] Compiler un logiciel.
Publié : mar. 03 mars 2015, 12:19
par Stdrome1209
Salut à toute et à tous,
Je voudrais jsute savoir si la méthode que j'utilise actuellement pour compiler un logiciel et la bonne sous Archlinux, car c'est la méthode classique en trois etapes apprise sous Ubuntu :
- ./configure
- make
- make-install
Alors bien entendu sa fonctionne sous Archlinux mais je me demande si c'est propre, ou si il y'a mieu.
Pour infole logiciel que je voudrais compiler est slashem, il existe en deux version dans les dépôts AUR mais aucune ne parviens à s'installer car yaourt m'indique une erreur dans le PKGBUILD.
Re: [Compilation] Compiler un logiciel.
Publié : mar. 03 mars 2015, 12:41
par benjarobin
Bonjour,
Alors non ce n'est pas propre... C'est propre tant que tu ne lances rien en tant que root. Sauf que le make install est fait en root...
Il faut absolument utilisé un PKGBUILD pour pouvoir gérer les fichiers installés avec pacman (mettre à jour, désinstaller...)
Copier des fichiers non gérés par pacman peut provoquer des soucis (voir des gros dans certains cas)
Sinon je ne vois pas de raison à l'échec de l'installation de :
https://aur.archlinux.org/packages/unnethack/
Re: [Compilation] Compiler un logiciel.
Publié : mar. 03 mars 2015, 12:49
par FoolEcho
+1.
Stdrome1209 a écrit :Pour infole logiciel que je voudrais compiler est Unnethack, il existe en deux version dans les dépôts AUR mais aucune ne parviens à s'installer car yaourt m'indique une erreur dans le PKGBUILD.
Précise l'erreur que tu obtiens (le groupe
base-devel est bien installé ?).

Re: [Compilation] Compiler un logiciel.
Publié : mar. 03 mars 2015, 17:28
par Stdrome1209
Merci pour ces indications, donc au pire je peux simplement lancer le binaire ainsi créer sans l'installer en me rendant dans le dossier où j'ai compilé le logiciel puis en lançant un "./mon_binaire", c'est sans risque dans ce cas ?
Oui base-devel est bien installé, j'arrive d'ailleur à installer d'autres logiciels avec yaourt.
J'ai donc essayé slashem et slashem-surses, et pour les deux version j'ai la même erreur :
Code : Tout sélectionner
=> Construction et installation du paquet
=> ERREUR : Fonction package() manquante dans /tmp/yaourt-tmp-stdrome/aur-slashem-c
=> ERREUR Makepkg n'a pas pu construire slashem-curses
=> Relancer la compilation de slashem-curses ? [o/N]
Re: [Compilation] Compiler un logiciel.
Publié : mar. 03 mars 2015, 17:53
par FoolEcho
Stdrome1209 a écrit :J'ai donc essayé slashem et slashem-surses, et pour les deux version j'ai la même erreur :
Code : Tout sélectionner
=> Construction et installation du paquet
=> ERREUR : Fonction package() manquante dans /tmp/yaourt-tmp-stdrome/aur-slashem-c
=> ERREUR Makepkg n'a pas pu construire slashem-curses
=> Relancer la compilation de slashem-curses ? [o/N]
Ici c'est parce que les PKGBUILDs n'ont pas été adaptés aux derniers changements de pacman. Une fonction package est désormais impérative.
Concernant unnethack, il faut que tu nous postes la trace de compilation parce que ça fonctionne chez moi...
Re: [Compilation] Compiler un logiciel.
Publié : mer. 04 mars 2015, 10:23
par Stdrome1209
FoolEcho a écrit :Concernant unnethack, il faut que tu nous postes la trace de compilation parce que ça fonctionne chez moi...
Oups je me suis planté, ce n’est pas de Unnethack qu’il s’agit mais bien de Slashem. Au fait Unnethack c’est juste pour tester l’installation que tu l’as installé (auquel cas c’est super sympa) ou tu est joueur ?
FoolEcho a écrit :Ici c'est parce que les PKGBUILDs n'ont pas été adaptés aux derniers changements de pacman. Une fonction package est désormais impérative.
Et elle s’ajoute simplement cette fonction package ?
Re: [Compilation] Compiler un logiciel.
Publié : mer. 04 mars 2015, 11:03
par FoolEcho
Dans le PKGBUILD, édite la partie:
en:
Code : Tout sélectionner
make || return 1
}
package() {
cd ${srcdir}/slashem-$pkgver
make PREFIX=${pkgdir}/usr install
... ça devrait suffire (non testé... attention, le logiciel est vieux et pourrait parfaitement ne même pas compiler ou fonctionner).
Pour une version plus propre, il faut rajouter prepare() aussi:
Code : Tout sélectionner
prepare(){
cd ${srcdir}/slashem-$pkgver
patch -Np1 -i ${srcdir}/se007E7F3-curses-a4.patch
sh sys/unix/setup.sh
cd ${srcdir}/slashem-$pkgver/include
sed -e '/define COMPRESS/ s|/usr/bin/compress|/bin/gzip|' \
-e '/define COMPRESS_EXTENSION/ s|".Z"|".gz"|' \
-e 's|^/\* \(#define DLB\) \*/|\1|' -i config.h
sed -e 's|^/\* \(#define LINUX\) \*/|\1|' \
-e 's|^/\* \(#define TIMED_DELAY\) \*/|\1|' -i unixconf.h
cd ${srcdir}/slashem-$pkgver/src
sed -e 's|^# \(WINTTYLIB = -lncurses\)|\1|' \
-e 's|^WINTTYLIB = -ltermlib|#&|' -i Makefile
cd ..
sed -e '/^GAMEUID\s*=/ s|games|root|' \
-e '/^GAMEGRP\s*=/ s|bin|root|' \
-e '/^SHELLDIR\s*=/ s|/games|/bin|' \
-e '/GAMEDIR/ s|/local/slashemdir|/share/slashem|' \
-e '/SHELLDIR/ s|/local/bin|/bin|' -i Makefile
}
build() {
cd ${srcdir}/slashem-$pkgver
make || return 1
}
package() {
cd ${srcdir}/slashem-$pkgver
make PREFIX=${pkgdir}/usr install
sed -e "s|HACKDIR=.*/pkg/$pkgname/usr/|HACKDIR=/usr/|" \
-i ${pkgdir}/usr/bin/slashem
install -Dm644 dat/license ${pkgdir}/usr/share/licenses/$pkgname/license
}
Re: [Compilation] Compiler un logiciel.
Publié : mar. 21 juil. 2015, 11:31
par Stdrome1209
Je viens (enfin) de tester et ça fonctionne, merci FoolEcho.
Enfin la compilation est l'installation fonctionne pour la version classique (paquet "slashem"), par contre il refuse de se lancer avec pour message d'erreur :
Code : Tout sélectionner
/usr/bin/slashem: ligne 60 : cd: /tmp/yaourt-tmp-mickael/aur-slashem/pkg/slashem/usr/share/slashem: Aucun fichier ou dossier de ce type
/usr/bin/slashem: ligne 66: /tmp/yaourt-tmp-mickael/aur-slashem/pkg/slashem/usr/share/slashem/slashem: Aucun fichier ou dossier de ce type
Sinon pour la version "slashem-curses" tout fonctionne, mais je n'aime pas cet interface
Toujours est-il que j'aimerais comprendre comment fonctionne la compilation sous Arch Linux afin de moins dépendre des mainteneurs et de pouvoir faire mes propres PKGBUILD pour installer un logiciel à partir des sources comme je le faisais sous Ubuntu, si ce dernier n´est plus maintenu.
Re: [Compilation] Compiler un logiciel.
Publié : mar. 21 juil. 2015, 12:33
par Xorg
Ça ne sert pas à grand chose les
commande || return 1
dans un PKGBUILD. Dans tous les cas, si la partie de droite est exécutée, c'est que la partie de gauche s'est terminée avec un erreur, et la fonction concernée verra que le code de sortie est différent de 0, donc elle lèvera quand même une erreur.
Le PKGBUILD de slashem sur AUR 3 date de 2009, il est complètement obsolète. Il y a un soucis dans le PKGBUILD.
Je te conseille très vivement de récupérer le paquet plus récent sur AUR 4,
ici, il a été mis à jour il y a peu.
Re: [Compilation] Compiler un logiciel.
Publié : mar. 21 juil. 2015, 12:47
par benjarobin
Sauf que le code sur aur4 ne compile pas.
Re: [Compilation] Compiler un logiciel.
Publié : mar. 21 juil. 2015, 13:48
par Xorg
Ah effectivement, je n'avais pas essayé. Je vois qu'un patch a été appliqué par le mainteneurs du paquet il y a 6 jours. C'est le moment de lui faire un retour si ça ne va pas, car le dernier commentaire remonte à 2011.

Re: [Compilation] Compiler un logiciel.
Publié : mar. 21 juil. 2015, 19:25
par Stdrome1209
Xorg a écrit :Le PKGBUILD de slashem sur AUR 3 date de 2009, il est complètement obsolète. Il y a un soucis dans le PKGBUILD.
Je te conseille très vivement de récupérer le paquet plus récent sur AUR 4, ici, il a été mis à jour il y a peu.
Je vais essayer ça, mais il y'a un truc à faire sur Yaourt dans ce cas ? Car chez moi Yaourt ne me propose pas cette version.
Re: [Compilation] Compiler un logiciel.
Publié : mar. 21 juil. 2015, 20:11
par benjarobin
Il faut changer l'adresse de AUR voir yaourtrc
Re: [Compilation] Compiler un logiciel.
Publié : mar. 21 juil. 2015, 21:30
par Stdrome1209
Ok merci benjarobin, mais AUR 4 est complétement opérationnel à l'heure actuelle ? D'après ce que j'avais lu il l'est depuis Juin mais entre la théorie et la pratique il y'a parfois un monde.
Re: [Compilation] Compiler un logiciel.
Publié : mar. 21 juil. 2015, 21:48
par benjarobin
Oui, il est opérationnel
Re: [Compilation] Compiler un logiciel.
Publié : mer. 22 juil. 2015, 09:33
par Stdrome1209
Bon j'ai tapé "rogue" et "roguelikes" AUR 4 et moins de la moitié de ce qui été disponible sur AUR 3 l'est sur la version 4, il faut vraiment que j'apprenne à compiler sur Arch Linux.