it-swarm.com.de

Was ist der herkömmliche Installationsort für Anwendungen unter Linux?

Ich installiere gerade NetBeans und das Standardinstallationsverzeichnis ist /home/thomasowens/netbeans-6.8. Ich bin kein Fan dieses Ortes, also schaue ich mir /etc, /bin, /usr/bin und /sbin an. Hat Linux einen Ort, der gemäß der Konvention mit dem Windows-Verzeichnis C:\Program Files identisch ist?

70
Thomas Owens

Gemäß dem Dateisystem-Hierarchie-Standard sind je nach Anwendung mehrere Bereiche zulässig. Ich zitiere hier ausführlich.

  • bin ist natürlich die Abkürzung für "binär"
  • sbin ist die Abkürzung für "Server Binary", ansonsten definiert als:

    Dienstprogramme für die Systemadministration (und andere reine Root-Befehle)

  • /usr ist für gemeinsam nutzbare, schreibgeschützte Daten vorgesehen und sollte zwischen verschiedenen FHS-kompatiblen Hosts geteilt werden können (wenn Sie viele Computer in Ihrem Netzwerk haben und alle dieselbe Architektur haben, sollten Sie in der Lage sein, ein einzelnes/usr zu teilen Ordner mit jedem Rechner im Netzwerk)

  • /usr/local wird vom Systemadministrator bei der lokalen Installation von Software verwendet (dh für Anwendungen, die nur auf diesem Computer und nicht auf jedem Computer im Netzwerk installiert sind).

Zusammengenommen:

  • /usr/bin ist das primäre Verzeichnis der ausführbaren Befehle auf dem System.
  • /usr/sbin gilt für alle nicht unbedingt erforderlichen Binärdateien, die ausschließlich vom Systemadministrator verwendet werden.
  • Systemverwaltungsprogramme, die für die Systemreparatur, Systemwiederherstellung, Bereitstellung/Benutzer oder andere wichtige Funktionen erforderlich sind, müssen stattdessen in /sbin abgelegt werden (dh die Dinge, auf die Sie zugreifen müssen, um /usr/sbin bereitzustellen, müssen in /sbin abgelegt werden).
  • Ebenso werden wichtige Benutzerbefehle, die vor dem Mounten von /usr erforderlich sein können, in /bin abgelegt.
  • Alles, was nur auf dem lokalen Computer installiert ist, sollte in /usr/local/bin oder /usr/local/sbin abgelegt werden.

Es gibt jedoch eine andere Verwendung für/usr/local. Die meisten Dinge, die Sie über den Paketmanager Ihrer Distribution installieren, werden unter/usr abgelegt. Viele Leute legen stattdessen Dinge, die sie von Hand kompiliert haben, unter/usr/local ab. Dies hält sie vom Paketverwaltungssystem fern und lässt Sie erkennen, was Sie von der Distribution installiert haben (und Sie müssen keine Sicherungskopie erstellen, da Sie es erneut abrufen können) und was Sie von Hand kompiliert haben. Sie können auch verschiedene Versionen gleichzeitig ausführen (z. B./usr/bin/firefox vs/usr/local/bin/firefox).


Gerade als Sie dachten, die Dinge seien erledigt, gibt es noch einen anderen Ort, der wahrscheinlich dem c:\Program Files - /opt am nächsten kommt:

/opt ist für die Installation von Add-On-Anwendungssoftwarepaketen reserviert. "

/opt ist wahrscheinlich das nächste Äquivalent zu c:\program files, da Sie erwarten, dass sich hier eine Anwendung mit all ihren Dateien in einem Ordner befindet und nicht über /usr/bin, /var und /etc verteilt ist. Es wird normalerweise nur von sehr großen Paketen verwendet, aber in diesem Fall ist es wahrscheinlich am sinnvollsten, es unter/opt/netbeans abzulegen, da Netbeans einen eigenen Ordner haben möchte

95
James Polley

Es kommt wirklich auf die persönlichen Vorlieben an. Ich erkläre meins für das, was es wert ist.

/ usr,/usr/bin sind normalerweise Speicherorte für Software, die vom zu installierenden System installiert wird. Wenn ich Dinge selbst installiere, installiere ich sie an einer von mehreren Stellen:

  1. Wenn es sich nur um ein Skript oder ein kleines Programm handelt, das ich verwenden werde, installiere ich es in ~/bin - hier landen die meisten meiner Sachen.
  2. Wenn es sich um etwas handelt, wie Sie es beschrieben haben (NetBeans), mit einem eigenen vollständigen Dateibaum, installiere ich es in/opt
  3. Wenn es sich um eine einzelne ausführbare Datei handelt, installiere ich sie in/usr/local/bin

Warum unterscheide ich zwischen # 2 & # 3? Keine Ahnung, es ist nur eine Gewohnheit, die ich im Laufe der Zeit entwickelt habe. Es hat sich herausgestellt, dass/opt normalerweise zu einem tiefen Dateibaum wird, aber nur 2 oder 3 tatsächliche 'Dinge' installiert sind. In diesem Moment habe ich lampp und Lotus Notes in opt installiert, 2 Verzeichnisse, unter denen sich jeweils ziemlich große Bäume befinden. In/usr/local/bin habe ich 20 oder 30 Einträge, aber kein Unterverzeichnis.

Ich installiere keine Dinge in/usr/bin oder/usr/sbin, weil ich Dinge, die ich manuell hinzufüge (nicht Teil der einfachen Installation aus dem Standard-Repository), gerne getrennt halten möchte.

5
DaveParillo

Der Dateisystem-Hierarchie-Standard bietet zwar einige Anleitungen. Ich habe festgestellt, dass die meisten Distributionen gerne Pakete in /usr/share installieren.

Aus diesem Grund habe ich die Praxis übernommen, Anwendungen, die nicht über den Paket-Manager (rpm/apt-get/emerge) installiert wurden, in /usr/local zu installieren. Auf diese Weise kann ich Anwendungen und Bibliotheken, die nicht über die Paketverwaltung verwaltet werden, von den anderen trennen.

Diese Technik hat mir geholfen, mein System sowohl unter Fedora Core als auch unter Gentoo zu verwalten.

1

Ich verwende/apps gerne für die meisten Add-On-Apps, die ich auf mehreren Servern installiere. Ich behalte eine Kopie des Ordners in/installs/apps auf meinem NFS-Server. Wenn ich einen neuen Linux-Server erstelle, mounte ich den Installationsordner und die Kopie/Apps und ich habe viele verschiedene gemeinsame Apps auf dem neuen Server. Ich lösche die Einträge, die ich für diesen neuen Server nicht benötige und bin fertig. Nun, vielleicht muss ich ein oder drei Skripts ausführen, um Umgebungsvariablen oder Pfadanweisungen festzulegen, aber das ist ziemlich genau das, was erforderlich ist, um viele neue Server einzurichten.

Ich komme aus einem Windows- und .net-Hintergrund. Eines der Versprechen von .net war, dass die meisten Apps mit Windows xcopy installiert werden können. Ich suche das Gleiche unter Linux. Wo verfügbar, wähle ich den Tarball über RPM oder yum usw. aus, damit ich/apps mit cp -r bereitstellen und die App für zukünftige Bereitstellungen auf meinem NFS-Server hinzufügen kann.

0
Dale

Ich hätte gedacht, dass der Standardspeicherort /bin ist, dort wird so ziemlich alles standardmäßig installiert, wenn apt-get oder ähnliches verwendet wird ...

... Wenn es jedoch um modernere Programme (oder solche ohne Installationsprogramm) geht, die viele zusätzliche Dateien enthalten, möchte ich sie in einem eigenen Verzeichnis innerhalb von /bin ablegen.

0
William Hilsum

In der Regel werden sie in mehreren Ordnern installiert, hauptsächlich in/usr,/local,/bin usw. Den Installationsort des Programms finden Sie im GDebi-Installationsprogramm (auf der Registerkarte "Dateien"). Wenn Sie Netbeans verschieben möchten, würde ich vorschlagen, es nach/opt zu verschieben, da Google anscheinend dort seine Inhalte installiert.

0
digitxp

Stimmen Sie der Antwort von James Polley zu, aber tatsächlich ist das Standardverzeichnis sehr sinnvoll, es sei denn, Sie müssen die Anwendung für mehrere Konten freigeben. Ich musste zum Beispiel Eclipse 3.0 (veraltet) installieren, um Flex unter Linux ausführen zu können, und habe es in $ HOME/Eclipse3 abgelegt.

0
CarlF