Ich habe gerade einige neue Header-Dateien heruntergeladen und habe einen Ordner mit ihnen, den ich verfügbar machen möchte. Erstens möchte ich sie für jede Datei verfügbar machen, die sie verwenden möchte. Daher möchte ich die neue Header-Datei (nennen wir sie newheader.h) dort einfügen können, wo ich möchte, genau wie beispielsweise math.h. Wo soll ich sie ablegen?
Zweitens möchte ich diese Dateien allen Benutzern zur Verfügung stellen. Ich habe Root-Berechtigungen. Gibt es ein spezielles Verzeichnis, in das ich sie legen muss? Vielen Dank!
Antwort1
Bewahren Sie sie in auf /usr/local/include
. Vonhttp://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html, Elemente in diesem Verzeichnis sind „… vor dem Überschreiben geschützt, wenn die Systemsoftware aktualisiert wird“, was wichtig ist, da Sie nicht möchten, dass die heruntergeladenen Header-Dateien durch Systemaktualisierungen überschrieben werden, was passieren könnte, wenn Sie sie in ablegen /usr/include
.
Antwort2
Auf MEINEM System /usr/local/include/
existiert das Verzeichnis und ist leer. Der Filsystem Hierarchy Standard besagt (FHS 3.0) Das zu verwendende Verzeichnis ist /usr/local/include
. Dateien sollten für alle lesbar ( 0444
) und Verzeichnisse durchsuchbar ( 0555
) sein.
Antwort3
Die Frage ist, was möchten Sie erreichen?
Normalerweise gibt es drei Szenarien:
- Entwicklung
- lokale Installation (in Ihrem
$HOME
) - Globale Installation
Für die ersten beiden sollten Sie wahrscheinlich den -I
Schalter verwenden, um einen Pfad zu den Headern anzugeben. Der erste wäre wahrscheinlich -I../mylib/include
, der zweite vielleicht -I/home/user/local_libs/somelib/include
.
Die dritte ist eine globale Installation, die sie in platzieren sollte /usr/local/include
, aber von einem Tool wie automake oder cmake verwaltet wird. Beim Verpacken sollte der Betreuer den Installationspfad und/oder den Include-Pfad anpassen, um die Header in zu installieren /usr/include
.
Bei der Verwendung von automake können Sie Hinweise erhalten, die--prefix
Parameterist standardmäßig für eine sichere Installation vorgesehen /usr/local
, die nicht mit Systempaketen interferiert, während Debian-Betreuer ./configure --prefix=/usr
ihre Paketskripte ausführen. Der Include-Pfad wird aus diesem Präfix erstellt, sodass er der Paketinstallation folgt.