Je viens de télécharger de nouveaux fichiers d'en-tête et un dossier que je souhaite rendre disponible. Premièrement, je voudrais les rendre disponibles à tout fichier souhaitant les utiliser. Donc, j'aimerais pouvoir inclure le nouveau fichier d'en-tête (appelez-le newheader.h) où je veux, tout comme math.h, par exemple. Où devrais-je le mettre?
Deuxièmement, je souhaite mettre ces fichiers à la disposition de tous les utilisateurs. J'ai des permissions root. Y a-t-il un répertoire spécial dans lequel j'ai besoin de le mettre? Merci beaucoup!
Stockez-les dans /usr/local/include
. Depuis http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html , les éléments de ce répertoire sont "... à l'abri de tout écrasement lorsque le logiciel système est mis à jour". , ce qui est important car vous ne voulez pas que les fichiers d’en-têtes que vous avez téléchargés soient gâchés par les mises à jour du système, ce qui peut arriver si vous les mettez dans /usr/include
.
Sur MY system, le répertoire /usr/local/include/
existe et est vide. La norme de hiérarchie Filsystem indique ( FHS 3. ) que le répertoire à utiliser est /usr/local/include
. Les fichiers doivent être lisibles par tout le monde (0444
) et les répertoires doivent être interrogeables (0555
).
La question est, que voulez-vous réaliser?
Généralement, vous avez trois scénarios:
$HOME
)Pour les 2 premiers, vous devriez probablement utiliser le commutateur -I
pour donner un chemin aux en-têtes. Le premier serait probablement -I../mylib/include
, le second pourrait être -I/home/user/local_libs/somelib/include
.
Le troisième est une installation globale, qui devrait les placer dans /usr/local/include
, mais géré par un outil comme automake ou cmake. Lors de l'empaquetage, le responsable doit adapter le chemin d'installation et/ou le chemin d'inclusion pour installer les en-têtes à /usr/include
.
Lors de l’utilisation d’automake, vous pouvez avoir des notifications au-delà de --prefix
paramètre par défaut à /usr/local
pour une installation sûre qui n’interfère pas avec les paquets système, alors que les responsables Debian exécutent ./configure --prefix=/usr
dans leurs scripts. Le chemin d'inclusion est construit à partir de ce préfixe, il suit donc l'installation du package.