[quote=“ymer”]En quoi est-ce pas bien de compiler en root ?
C’est juste une question de parano ou non ?[/quote]
[quote]
Linus Torvalds conseille de ne pas compiler le noyau dans le répertoire /usr/src/. Voici un extrait du mail qui explique pourquoi il ne faut pas compiler son noyau dans ce répertoire :
I would suggest that people who compile new kernels should:
-
NOT do so in /usr/src. Leave whatever kernel (probably only the
header files) that the distribution came with there, but don’t touch
it.
-
compile the kernel in their own home directory, as their very own
selves. No need to be root to compile the kernel. You need to be root
to install the kernel, but that’s different.
-
not have a single symbolic link in sight (except the one that the
kernel build itself sets up, namely the “linux/include/asm” symlink
that is only used for the internal kernel compile itself).
And yes, this is what I do. My /usr/src/linux still has the old 2.2.13
header files, even though I haven’t run a 2.2.13 kernel in a loong
time. But those headers were what glibc was compiled against, so those
headers are what matches the library object files.
And this is actually what has been the suggested environment for at
least the last five years. I don’t know why the symlink business keeps
on living on, like a bad zombie. Pretty much every distribution still
has that broken symlink, and people still remember that the linux
sources should go into “/usr/src/linux” even though that hasn’t been
true in a loong time.
Pour les anglophobes, voici une traduction de cet extrait :
Je suggère aux personnes qui compilent un nouveau noyau de :
- ne pas le faire dans /usr/src. Quelque soit le noyau provenant de votre
distribution (probablement les fichiers d’entêtes uniquement),
mais en tout cas n’y touchez pas.
- compiler le noyau dans leur propre répertoire personnel. Il est inutile
d’être root pour compiler le noyau. Vous avez besoin d’être root
pour installer le noyau, mais c’est différent.
- ne pas avoir l’intention de faire un lien symbolique (excepté celui que le
noyau créé lui-même, à savoir le lien “linux/include/asm” qui est utilisé
uniquement pour la compilation interne du noyau).
Et bien sûr, c’est ce que je fais. Mon /usr/src/linux a encore les
fichiers d’entêtes de mon ancien 2.2.13, malgré que je n’ai pas utiliser
le noyau 2.2.13 depuis très longtemps. Mais ces entêtes étaient ceux
qui avait compilé par glibc, donc ces entêtes sont ceux qui correspondent
aux fichiers de la bibliothèque objet.
Et c’est en fait ce qui a été l’environnement suggéré depuis au moins cinq
ans. Je ne sais pas pourquoi l’habitude de faire des liens symboliques
est restée ainsi. De nombreuses distributions ont ce lien symbolique cassé,
et les gens se souviennent que les sources du noyau devraient être dans
"/usr/src/linux" même si ce n’est pas vrai depuis très longtemps.[/quote]