[Compilation] Compiler un logiciel.
- Stdrome1209
- yeomen
- Messages : 266
- Inscription : sam. 29 nov. 2014, 19:39
[Compilation] Compiler un logiciel.
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.
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.
Dernière modification par Stdrome1209 le mer. 04 mars 2015, 10:00, modifié 1 fois.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [Compilation] Compiler un logiciel.
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/
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/
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
- FoolEcho
- Maître du Kyudo
- Messages : 10711
- Inscription : dim. 15 août 2010, 11:48
- Localisation : Basse-Normandie
Re: [Compilation] Compiler un logiciel.
+1.

Précise l'erreur que tu obtiens (le groupe base-devel est bien installé ?).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.

«The following statement is not true. The previous statement is true.» 

- Stdrome1209
- yeomen
- Messages : 266
- Inscription : sam. 29 nov. 2014, 19:39
Re: [Compilation] Compiler un logiciel.
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 :
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]
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
- FoolEcho
- Maître du Kyudo
- Messages : 10711
- Inscription : dim. 15 août 2010, 11:48
- Localisation : Basse-Normandie
Re: [Compilation] Compiler un logiciel.
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.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]
Concernant unnethack, il faut que tu nous postes la trace de compilation parce que ça fonctionne chez moi...
«The following statement is not true. The previous statement is true.» 

- Stdrome1209
- yeomen
- Messages : 266
- Inscription : sam. 29 nov. 2014, 19:39
Re: [Compilation] Compiler un logiciel.
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 :Concernant unnethack, il faut que tu nous postes la trace de compilation parce que ça fonctionne chez moi...
Et elle s’ajoute simplement cette fonction package ?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.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
- FoolEcho
- Maître du Kyudo
- Messages : 10711
- Inscription : dim. 15 août 2010, 11:48
- Localisation : Basse-Normandie
Re: [Compilation] Compiler un logiciel.
Dans le PKGBUILD, édite la partie:
en:
... ç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
make || return 1
make PREFIX=${pkgdir}/usr install
Code : Tout sélectionner
make || return 1
}
package() {
cd ${srcdir}/slashem-$pkgver
make PREFIX=${pkgdir}/usr install

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
}
«The following statement is not true. The previous statement is true.» 

- Stdrome1209
- yeomen
- Messages : 266
- Inscription : sam. 29 nov. 2014, 19:39
Re: [Compilation] Compiler un logiciel.
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 :
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.
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

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.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
- Xorg
- Maître du Kyudo
- Messages : 1933
- Inscription : dim. 22 janv. 2012, 19:25
- Localisation : Entre le clavier et la chaise.
Re: [Compilation] Compiler un logiciel.
Ça ne sert pas à grand chose les
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.
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.
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [Compilation] Compiler un logiciel.
Sauf que le code sur aur4 ne compile pas.
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
- Xorg
- Maître du Kyudo
- Messages : 1933
- Inscription : dim. 22 janv. 2012, 19:25
- Localisation : Entre le clavier et la chaise.
Re: [Compilation] Compiler un logiciel.
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. 

- Stdrome1209
- yeomen
- Messages : 266
- Inscription : sam. 29 nov. 2014, 19:39
Re: [Compilation] Compiler un logiciel.
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.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.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [Compilation] Compiler un logiciel.
Il faut changer l'adresse de AUR voir yaourtrc
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
- Stdrome1209
- yeomen
- Messages : 266
- Inscription : sam. 29 nov. 2014, 19:39
Re: [Compilation] Compiler un logiciel.
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.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
- benjarobin
- Maître du Kyudo
- Messages : 17632
- Inscription : sam. 30 mai 2009, 15:48
- Localisation : Lyon
Re: [Compilation] Compiler un logiciel.
Oui, il est opérationnel
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
- Stdrome1209
- yeomen
- Messages : 266
- Inscription : sam. 29 nov. 2014, 19:39
Re: [Compilation] Compiler un logiciel.
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.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.
Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.