Was ist nach der manuellen Installation eines Programms in Linux zu tun?

358
宇宙人

Weil ich nicht die Verwaltung die Erlaubnis auf dem Linux - Server haben, also muss ich die gesamte Software installieren mit configure, make, make installin einem lokalen Verzeichnis, um zu vermeiden Erlaubnis verweigert.

Ich werde zum Beispiel Folgendes tun, um ein Programm zu installieren:

./configure --prefix=/myDir/bin make make install 

Nach der Installation bekomme ich einige Dateien, die erstellt wurden in /myDir/bin:

bin/ include/ lib/ lib64/ libexec/ share/ 

Meine Frage ist nach der Installation, was soll ich tun?

Mit einiger Suche finde ich, dass viele über Satz LD_LIBRARY_PATH, LIBRARY_PATH, PKG_CONFIG_PATH... Aber ich bin mir nicht ganz klar über die Funktionalität dieser Einstellungen.

Was ist die vollständige Einstellung und Konfiguration nach der make-Installation?

1

1 Antwort auf die Frage

0
lemonsqueeze

Die "vollständige Einstellung und Konfiguration nach der Installation" hängt von der installierten Software ab. Was ich tun würde, ist mit den üblichen / wichtigsten Dingen zu beginnen und nach Bedarf Dinge hinzuzufügen:

  • PATH: bestimmt, wo nach Programmen gesucht werden soll. Wenn Sie möchten, dass Ihre Sitzung die von Ihnen installierten sucht und verwendet, benötigen Sie Folgendes: export PATH="/myDir/bin:$PATH"in Ihrem Profil. Ansonsten müssen Sie /myDir/bin/lsjedes Mal anrufen .

  • LD_LIBRARY_PATH: wird verwendet, um zu steuern, welche gemeinsam genutzten Bibliotheken ( .soDateien) beim Ausführen von dynamisch verknüpften ausführbaren Dateien verwendet werden. Wenn nicht gesetzt, werden die Libs des Systems verwendet. Wenn festgelegt, werden die Verzeichnisse, auf die es verweist, zuerst durchsucht. Wenn Sie .soDateien installiert haben, müssen Sie sie so einstellen, dass Ihre Programme sie finden:
    export LD_LIBRARY_PATH=/myDir/lib

    Beachten Sie, dass dies Systembinärdateien betreffen kann, die jetzt stattdessen Ihre Bibliotheken verwenden. Wenn Sie sicher sein wollen, setzen Sie ihn nicht global und verwenden Sie stattdessen Wrapper-Skripts, um Programme auszuführen:

    #!/bin/bash export LD_LIBRARY_PATH=/myDir/lib exec /myDir/bin/firefox "$@" 

Sachen zusammenstellen:

  • CFLAGS/ CPPFLAGS: Wird von gcc / g ++ beim Kompilieren des Quellcodes verwendet. Stellen Sie es ein, um zu sagen, wo sich Ihre Header befinden:export CFLAGS=-I/myDir/include

  • LDFLAGS: Wird von gcc beim Linken verwendet. Legen Sie fest, wo Ihre Bibliotheken liegen:
    export LDFLAGS=-L/myDir/lib

Sie müssen diese beiden für configureSkripts festlegen, um Ihre Bibliotheken zu finden. Sie können auch eine config.site- Datei verwenden.

  • PKG_CONFIG_PATH: wird von verwendet pkg-config, um seine Dateien zu finden. Normalerweise sieht es unter /usr/share/pkgconfigfür .pcDateien. Wenn Sie mehr Programme kompilieren /myDir/share/pkgconfigmöchten, die Ihre Bibliotheken benötigen, und es gibt einige Dinge darin, sollten Sie diese auch festlegen.

Den Rest können Sie je nach Bedarf herausfinden: man super_duper_prgfunktioniert nicht? Der Doc des Mannes wird Ihnen davon erzählen MANPATH.

Vielen Dank für Ihre Wiederholung. Momentan treffe ich mich mit einem solchen Fall, bei dem ich das `git` aus dem Quellcode kompilieren und installieren muss. Es stellt sich heraus, dass 'zlib' zuvor installiert werden muss. Ich installiere also die `zlib` in` `/ myDir` und und` / myDir` in `LD_LIBRARY_PATH`. Aber wenn ich "make git" mache, zeigt es immer noch nicht, dass "zlib.h" gefunden werden kann. Ich weiß, dass eine Lösung darin besteht, mit "--with-zlib" zu konfigurieren, gibt es eine Möglichkeit, dies durch das Einstellen zu vermeiden? 宇宙人 vor 9 Jahren 0
Ja, Sie müssen die Variablen CFLAGS und LDFLAGS einstellen. Ich habe meine Antwort bearbeitet. lemonsqueeze vor 9 Jahren 0