Ich muss Software auf meinem Fedora-Rechner kompilieren. Wo ist der beste Ort, um die Software nicht zu beeinträchtigen?
package-management
compiling
software-installation
directory-structure
fhs
theotherreceive
quelle
quelle
Antworten:
Faustregel, zumindest auf Debian-Systemen:
/usr/local
das für Zeug ist „systemweit“ , dh/usr/local
in einer Distro-Standardtendenziell zu$PATH
und folgt einer Standardhierarchie UNIX - Verzeichnis mit/usr/local/bin
,/usr/local/lib
usw./opt
für Sachen vertrauen Sie nicht systemweit, mit pro-App - Präfixen, dh zu machen/opt/firefox-3.6.8
,/opt/mono-2.6.7
und so weiter. Die hier enthaltenen Informationen erfordern eine sorgfältigere Verwaltung, können aber auch das System weniger beschädigen. Sie lassen sich leichter entfernen, da Sie nur den Ordner löschen und er ist verschwunden.quelle
/opt
wenn Sie dies tunsudo
.Wenn Sie wirklich nicht möchten, dass es überhaupt stört, platzieren Sie es nirgendwo in Ihrem
$PATH
.Wenn Sie es möchten, stellen Sie
$PATH
zumindest sicher, dass Sie es nicht auf installieren/usr/local
. Ich habe festgestellt, dass dort eine Menge Software angezeigt wird, auch wenn sie von der Distribution installiert wurde/usr
.Meine Lieblingsmethode zum Installieren von individuell kompilierter Software befindet sich in meinem
$HOME
Verzeichnis. Auf diese Weise müssen Siesudo
nichts verwenden, und es ist sehr schön vom Rest Ihres Systems getrennt. Zum Beispiel:Und wenn Sie möchten, können Sie dann
/home/username/stage/bin
Ihre hinzufügen$PATH
.quelle
/usr/local
. B. ) "für lokale Installationen reserviert" sind .FHS sagt, dass es in / usr / local abgelegt werden soll, wo Distributionen es nicht berühren sollten.
/usr/local/bin
für die Binärdateien/usr/local/src
für die Quelle und/usr/local/lib
für Bibliotheken. Weitere Informationen finden Sie in der FHS-Spezifikationquelle
/etc/mysql
für die Konfiguration verwenden?/usr/local/etc
standardmäßig einen Ordner gibt. Ich denke, ich sollte diesen verwenden ... :-)Die meiste Zeit mag ich es, meine eigenen kompilierten Sachen unterzubringen
/opt
. Es ist eine Art Pseudo-Standard-Ort. Sie können auch darüber nachdenken/usr/local
, aber ich ziehe es vor, meine Sachen zu 100% isoliert zu halten.quelle
/opt
, aber ich habe schon oft gesehen, wo/usr/local
es Müll gibt, der von der Distribution kommt/usr/local
waren Verzeichnishierarchien, die denen im Standardbaum entsprachen, und möglicherweise Indexdateien für Dinge wie TeX.Setzen Sie sie an
/usr/local/src
.Ich extrahiere die Quelle in dieses Verzeichnis. Es wird ein Pfad wie erstellt
Dann erstelle ich einen symbolischen Link dazu:
Mach dein ganzes Gebäude in
/usr/local/src/postgresql
.Diese Vorgehensweise ist hilfreich, wenn Sie zwischen Versionen und Dokumenten wechseln müssen, welche Version Sie verwenden.
quelle
Das erinnert mich daran, dass ich checkinstall öfter benutzen muss ! Auf diese Weise mache ich einfach das Übliche
gefolgt von
um eine .deb- Datei zu erstellen ...
quelle
Wenn es möglich ist, würde ich vorschlagen, Ihre Software zu kompilieren und dann ein FC-Paket zu erstellen (ich glaube, es verwendet yum, um Softwarepakete zu installieren). Anschließend können Sie das Paket Ihrer eigenen kompilierten Software installieren und entfernen, ohne das gesamte System zu beschädigen.
quelle
Wenn Sie mehrere Anwendungen, die Sie selbst erstellt haben, problemlos installieren und entfernen möchten, können Sie Stow als einfachen Paketmanager verwenden.
quelle
Per der FHS ,
/usr/local/
ist für Anwendungen aus den Quellen kompiliert verwendet, während/opt/
für 3rd - Party - Anwendungen verwendet wird , nicht von Ihrem Betriebssystem - Anbieter unterstützt.quelle
Zwei Dinge, die ich empfehlen würde:
Systemweit: Verwenden Sie stow und installieren Sie es unter / usr / local / stow / package-version. Dann können Sie ganz einfach zwischen den Versionen wechseln.
Bei mir zu Hause oder wenn ich keine / usr / local-Schreibrechte habe, installiere ich persönlich Programme unter ~ / .local, was durch den XDG-Standard angedeutet wird .
Sie können auch lokal verstauen, obwohl ich es nie getan habe :)
quelle
Ich habe ein etwas anderes Setup als die meisten Leute, weil ich viel entwickle. Ich habe ein / home / jackson / bin / -Verzeichnis, in das ich etwas installiere, und ich habe mein .bashrc bearbeitet, indem ich dies hinzufüge:
Ich würde das nicht für alles tun, aber es ist schön während der Entwicklung.
quelle
Es ist eigentlich nicht so schwer, Debs oder RPMs aus einem Quell-Tarball zu erstellen. Auf diese Weise können Sie die Funktionen des Paketmanagers Ihrer Distribution nutzen, um Ihr System sauber zu halten. Das mache ich die meiste Zeit: erstelle einfach eine kleine Drehzahl.
quelle
Wenn Sie eine Anwendung kompilieren, können Sie den Pfad der ausführbaren Dateien in Ihre PATH-Umgebungsvariable einfügen. Dies hat keine Auswirkungen auf andere Benutzer.
quelle
Es gibt immer die Möglichkeit, "es dorthin zu bringen, wo es hingehört", aber schreiben Sie zuerst eine einfache Drehzahl.
quelle
Wenn Ihre Anwendung für alle Benutzer im System verfügbar sein soll und Sie über die erforderlichen Berechtigungen verfügen, verwenden Sie / opt. Wenn Sie möchten, dass die Anwendung nur für Sie (und root) verfügbar ist, verwenden Sie / home / username
quelle
Der einfachste Weg dies zu tun ist, das
.src.rpm
Quellpaket ( für RPMites) zu nehmen, es zu entpacken, die neue Quelle / Konfiguration / was auch immer hinein zu hacken, die Version entsprechend zu ändern und zu bauen. Durch die Installation wird Ihr Paketmanager auf das neue Paket aufmerksam, kann es für Abhängigkeiten berücksichtigen und deinstallieren / aktualisieren.Dies ist das erste Mal eine lästige Pflicht, aber wenn eine neue Version (oder ein kritischer Patch) herauskommt, ist das Update einfacher. Ein weiterer Vorteil ist, dass Sie mit lokaler Software ein eigenes Repository erstellen können, das z. B. von den Maschinen in einem Labor gemeinsam genutzt werden kann.
quelle
Schreiben Sie ein RPM, es ist nicht schwierig, hat Richtlinien, wo Dinge abgelegt werden sollen und macht die Deinstallation zum Kinderspiel.
Wenn Sie dies tun, installieren Sie Dateien unter
/usr
und nicht unter/usr/local
, wie alle anderen Dateien, die über das Paketsystem übertragen werden.quelle