Konfigurieren Ihres Builds
Wenn Sie Quellcode haben, der durch Ausführen von ./configure
und kompiliert wurde make, verwenden Sie normalerweise make install(oder sudo make install), um ihn zu installieren. Dadurch werden Dateien aus dem Build-Verzeichnis in den Installationspfad kopiert. Wenn das zu installierende Objekt ausführbare Befehle bereitstellt, werden diese ausführbaren Dateien in der Regel in ein Verzeichnis kopiert, das sich in befindet $PATHoder zu dem Sie möglicherweise hinzufügen sollten
$PATH .
Obwohl das Erstellen und Installieren von Software oft so einfach wie das Ausführen ./configureist make, möchten Sie manchmal make checkoder make testund dann make installoder sudo make installmanchmal Optionen an das configureSkript übergeben, um das Build zu konfigurieren. Insbesondere konfigurieren Sie , wie Pfnuesel sagt , auf diese Weise,
wo die Software installiert werden soll. Obwohl der make installSchritt die Software tatsächlich installiert, werden in der Regel die Speicherorte festgelegt, an denen alles installiert wird
./configure.
Die häufigste Option hierfür ist --prefix. Das Standardpräfix configureist normalerweise , wenn Sie nicht angeben, was verwendet werden soll /usr/local. (Gelegentlich verwendet der Quellcode eines Programms oder einer Bibliothek standardmäßig ein anderes Präfix. Glücklicherweise ist dies selten.)
Ist ./configurealso meist gleichbedeutend mit ./configure --prefix=/usr/local. Um Software in Ihrem Home-Verzeichnis zu installieren, können Sie ./configure --prefix=/home/galahad(sofern /home/galahades sich um Ihr Home-Verzeichnis handelt) oder verwenden --prefix="$HOME". Dann musst du natürlich noch die Software mit bauen und installieren make. Ich sollte sagen, dass nicht jede Software, die in Quellcodeform vertrieben wird, auf diese Weise erstellt wird. Sie sollten immer nach Dokumentation im extrahierten Quellcode-Archiv suchen.
Was --prefixbedeutet
Wenn Sie ausführen , geben Sie an, dass die Software unter dem Verzeichnis installiert werden soll
. Dabei werden jedoch selten, wenn überhaupt, lose Dateien abgelegt . Stattdessen werden Dateien, die unterschiedlichen Zwecken dienen, in den verschiedenen Unterverzeichnissen von abgelegt . Wenn diese Unterverzeichnisse nicht vorhanden sind, werden sie erstellt../configure --prefix=directorydirectorydirectorydirectory
Ausführbare Dateien gehen normalerweise ein directory/bin, obwohl sie einsteigen können, directory/sbinwenn sie üblicherweise für die Systemadministration verwendet werden, oder (heutzutage seltener),
directory/gameswenn es sich um Spiele handelt. Bibliotheken gehen in
directory/liboder ein anderes ähnlich benanntes Verzeichnis wie
directory/lib32. Header-Dateien gehen rein
directory/include. Manualseiten gehen rein
directory/man. Von der Software verwendete Datendateien gehen ein
directory/share.
Das bedeutet directoryes, ein Präfix zu sein . Es ist das übergeordnete Verzeichnis, das die Speicherorte enthält, an denen verschiedene Dateien installiert werden. Es erscheint daher als Präfix in den absoluten Pfaden der meisten Dateien und Verzeichnisse, die durch Ausführen von make install
oder erstellt wurden sudo make install.
Hiervon gibt es einige Ausnahmen. Systemweite Konfigurationsdateien - die manchmal erstellt werden, wenn die Software installiert wird, die sie verwendet, jedoch nicht immer - werden normalerweise verwendet /etc. Dies wird normalerweise nicht durch die Angabe eines anderen Präfixes beeinflusst. Auch wenn Sie viel Software installieren /usr/local, wird diese meistens weiterhin verwendet
/etc, und Ihr /usr/local/etcVerzeichnis ist wahrscheinlich nicht vorhanden, leer oder enthält nur sehr wenige Dateien.
Auf vielen Systemen erhalten Sie durch Ausführen weitere Informationen zum typischen Dateisystemlayout man hier. Wenn Sie ein GNU / Linux-System verwenden, interessiert Sie möglicherweise der Dateisystem-Hierarchiestandard .