Page 1 sur 1

[Compilation] questions sur tmpfs (résolu)

Publié : jeu. 03 avr. 2014, 08:08
par falke
Bonjour,

j'ai lu ici
Improving compile times

Compiling requires handling of many small files and involves many I/O operations; therefore it is a prime activity to benefit from moving its working directory to a #tmpfs.
For one session

The BUILDDIR value may be exported within a shell to temporarily set makepkg build directory to an existing tmpfs:

$ BUILDDIR=/tmp/makepkg makepkg

Permanently

Just uncomment the BUILDDIR line in /etc/makepkg.conf, see Makepkg#Improving compile times for details
que pour préserver le nombre d'écritures sur un SSD mais aussi pour compiler plus vite , on pouvait réaliser la compilation en mémoire vive.

j'ai donc comme indiqué édité le makepkg.conf avec BUILDDIR=/tmp/makepkg

(/tmp est monté en tmpfs)

En effet, quand je compile (toujours depuis yaourt) des choses s'écrivent dans makepkg.
Le problème, c'est que j'ai remarqué que dans /tmp yaourt utilisait aussi un dossier

yaourt-tmp-falke/

pour travailler.
En fait la compilation d'un paquet écrit à la fois dans /tmp/makepkg et le dossier yaourt-tmp-falke.
Je ne sais pas ce qu'il y fait exactement mais j'ai bien l'impression que mettre BUILDDIR=/tmp/makepkg fait doublon et ne sert à rien.

Pouvez vous confirmer ?

Re: [Compilation] questions sur tmpfs

Publié : jeu. 03 avr. 2014, 08:57
par oktoberfest
Salut,

je ne suis de loin pas un spécialiste de yaourt mais sans toucher au fichier makepkg.conf mes compilations se sont toujours faites dans /tmp/yaourt-tmp-<user>.

Re: [Compilation] questions sur tmpfs

Publié : dim. 06 avr. 2014, 15:52
par Xorg
Par défaut, le /tmp est un système de fichier type tmpfs il me semble sous ArchLinux.

En fait, yaourt fait ceci :
- Il télécharge l'archive est l'extrait vers /tmp/yaourt-tmp-$USER/aur-$PKG.
- Il télécharge les fichiers sources (ceux indiqués dans le PKGBUILD) dans ce même répertoire.
- makepkg compile dans le dossier /tmp/makepkg/$PKG/src.
- makepkg "installe" (fakeroot) dans /tmp/makepkg/$PKG/pkg.
- yaourt reprend la main et met le paquet créé dans /tmp/yaourt-tmp-$USER/PKGDEST.XXX.

Je crois que tu confonds makepkg et yaourt : yaourt ne fait qu'appeler pacman et makepkg en quelques sortes. Donc c'est normal ça. :)