it-swarm.com.de

In welches Verzeichnis soll ich Programme unter Linux installieren?

Ich möchte ein Programm unter Linux installieren und als Daemon ausführen. (Team Speak 3 in diesem Fall, aber die Frage ist allgemeiner Natur). Es wird kein Paket bereitgestellt, nur geteerte Binärdateien. Wo in der Verzeichnisstruktur sollte ich ein solches Programm gemäß Konvention platzieren?

Im Web fand ich, dass/opt für "optionale Addon-Apps" steht, während/usr für "Benutzerprogramme" steht. Ich fand ein Tutorial, das/opt vorschlug, während das andere/usr vorschlug.

Welches ist also "korrekter"?

52
Eiver

Das "korrektere" hängt von Ihrer Verteilung ab. Sie sollten die Richtlinien Ihrer Distribution überprüfen, wo Software abgelegt werden soll, die nicht vom Paketmanager verwaltet wird (häufig /usr/local) OR, wie Sie Ihr eigenes Paket dafür erstellen.

Wie Sie sagten, hat TeamSpeak einfach alles in einem Ordner abgelegt (und ist möglicherweise nicht einfach zu reorganisieren). Ja, /opt/ Ist wahrscheinlich am besten.

(In Archlinux kann der Paketmanager beispielsweise dort installiert werden, sodass ich immer noch ein PKGBUILD erstellen würde, das in /opt Installiert werden soll.)

Auch Distributionen versuchen normalerweise , dem Dateisystem-Hierarchie-Standard zu folgen, daher sollten Sie hier nach allgemeineren Konventionen suchen.

33
Leiaz

Wenn Sie Ihre eigene Software kompilieren, steuern Sie letztendlich den Installationsort. Konventionell wird Software, die manuell kompiliert und installiert wurde (nicht über einen Paketmanager, z. B. apt, yum, pacman), in /usr/local Installiert. Einige Pakete (Programme) erstellen ein Unterverzeichnis in /usr/local, In dem alle relevanten Dateien gespeichert werden, z. B. /usr/local/openssl. Andere Pakete installieren die erforderlichen Dateien in vorhandenen Verzeichnissen wie /usr/local/sbin Und /usr/local/etc. Dies sind einfach Standardspeicherorte und können während der Kompilierung geändert werden.

Wenn Sie Software kompilieren, kann der Installationsort mithilfe der Option --prefix= Angegeben werden, wenn ./configure Ausgeführt wird. Es wird dringend empfohlen, dass Sie sich alle verfügbaren Optionen für Ihr Paket ansehen, indem Sie $ ./configure --help | less Ausführen. Darüber hinaus ist es eine gute Idee, die mit Ihrem Paket gelieferten Dokumente INSTALL und README] zu durchsuchen. Sie enthalten in der Regel Installationsanweisungen und paketspezifische Abhängigkeitsinformationen.

Es sollte auch beachtet werden, dass, obwohl Sie Software überall speichern können, gemäß FHS der Quellcode für lokal installierte Software in /usr/local/src Wenn Sie festlegen, wo Sie Ihre Quellbäume speichern, können Sie einen Baum leicht finden, wenn Sie eine Bestandskonfigurationsdatei oder eine Binärdatei kopieren müssen. Obwohl einige Pakete es verwenden, sollte Ihr Quellcode nicht in /usr/src Gespeichert werden, da dies für Systemsoftware wie den Kernel vorgesehen ist.

Schließlich müssen Sie sicherstellen, dass Ihr Installationsort in Ihrem $PATH Enthalten ist. Wenn Sie sich entscheiden, Ihr Paket in /opt Zu installieren, aber nicht in Ihrem $PATH, Findet Ihre Shell die ausführbaren Dateien nicht und Sie müssen den absoluten Pfad verwenden, um Ihre Programme aufzurufen. Hier sind einige großartige Diskussionen von AU über die Konfiguration Ihres $PATH

Zusätzliche Lesung: man hier

7
Creek

Die Linux Standard Base und die Filesystem Hierarchy Standard sind wohl die Standards, wo und wie Sie Software auf einem Linux-System installieren sollten, und würden vorschlagen, Software zu platzieren, die nicht in enthalten ist Ihre Verteilung entweder in /opt oder /usr/local/ oder vielmehr Unterverzeichnisse darin (/opt/<package> /opt/<provider> /usr/local/bin).

Die beste Vorgehensweise besteht darin, heruntergeladene Software in ein installierbares Softwarepaket zu konvertieren, das für Ihre Distribution typisch ist, z. B. die Formate dpkg oder rpm. Dies erleichtert das Melden, Aktualisieren und saubere Entfernen der Software.

5
HBruijn

Binärdateien werden nach gängigen Konventionen in den Ordner bin verschoben. Wie Sie Ihre Paketstruktur organisieren würden, liegt bei Ihnen. Ich kann mir /opt/<prog_name>/ Vorstellen, wenn es sich nur um eine Liste von Binärdateien handelt.

1
bbsanem

Ich hatte die gleiche Frage bei der Installation von Eclipse über das Eclipse-Installationsprogramm.

Mir ist aufgefallen, dass Gimp, Perl und Vim im /usr/share Ordner und beschlossen, es dort zu installieren.

1
senpai

~/.local/bin

Dies ist in systemds Standard definiert, der Folgendes über den Inhalt des Verzeichnisses zu sagen hat:

Ausführbare Dateien, die im Suchpfad $PATH Des Benutzers angezeigt werden sollen. Es wird empfohlen, keine ausführbaren Dateien in diesem Verzeichnis abzulegen, die für den Aufruf von einer Shell nicht nützlich sind. Diese sollten stattdessen in einem Unterverzeichnis von ~/.local/lib/ abgelegt werden. Beim Platzieren architekturabhängiger Binärdateien an dieser Stelle ist Vorsicht geboten. Dies kann problematisch sein, wenn das Ausgangsverzeichnis von mehreren Hosts mit unterschiedlichen Architekturen gemeinsam genutzt wird.

Abhängig von Ihrer Distribution müssen Sie möglicherweise das Verzeichnis zu Ihrem Pfad hinzufügen, indem Sie dies in Ihren ~/.bashrc Einfügen:

PATH=$PATH:~/.local/bin

Siehe auch this .

0
Matthias Braun

Es gibt zwei Möglichkeiten, wie Programme installiert werden können, je nachdem, wie sie gepackt sind.

  1. Über den Software-Manager (apt, synaptic, Gdebi usw.) - das Programm liegt in Form eines Pakets vor, normalerweise .deb oder rpm. Software-Manager behandeln in den meisten Fällen Abhängigkeiten und installieren Binärdateien normalerweise in /usr/bin, Konfigurationsdateien in /etc Und so weiter. Sie können auch eine Konfigurationsdatei für das Programm in Ihrem Haus erstellen, normalerweise ~/.foo. Wenn Sie diese Datei bearbeiten können, können Sie auf diese Weise auch einfach die Einstellungen für Ihre Sitzung ändern. Wenn Sie das Paket entfernen, findet der Manager alle Dateien und entfernt sie sauber (er speichert alle Speicherorte in einer speziellen Textdatei). Möglicherweise werden jedoch einige Konfigurationsdateien beibehalten, z. B. die in Ihrem Home-Ordner.

  2. Sie laden ein Programm (normalerweise komprimiert) in Form vorkompilierter Binärdateien für Ihre Architektur herunter. Die ausführbare Datei des Programms befindet sich normalerweise in einem einzelnen Ordner neben anderen Dateien (dynamisch verknüpfte Bibliotheken usw.). Dieser gesamte Ordner kann mit Root-Rechten entweder nach /opt Oder /usr/bin Und kopiert werden kann, wenn die Berechtigungen dies zulassen, von jedem Benutzer verwendet werden. Ich selbst habe die Ordner mit Binärdateien in meinem Home-Ordner auf ~/bin Abgelegt. Jetzt sollten Sie das Programm ausführen können, indem Sie die Bin-Datei aufrufen.

0
Štěpán Doan