Wie lautet der übliche Installationsort für Anwendungen in Linux?

69662
Thomas Owens

Ich installiere derzeit NetBeans und das Standardinstallationsverzeichnis ist /home/thomasowens/netbeans-6.8. Ich bin kein Fan von dieser Stelle, so betrachte ich /etc, /bin, /usr/bin, und /sbin. Hat Linux einen Platz, der per Konvention mit dem Windows- C:\Program FilesVerzeichnis identisch ist ?

68

7 Antworten auf die Frage

92
James Polley

Gemäß dem Filesystem Hierarchy Standard gibt es mehrere Stellen, die je nach Anwendung akzeptabel sind. Ich zitiere hier ausführlich davon.

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

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

  • /usr ist für gemeinsam nutzbare, schreibgeschützte Daten vorgesehen und sollte zwischen verschiedenen FHS-kompatiblen Hosts gemeinsam genutzt werden können (wenn sich in Ihrem Netzwerk viele Maschinen befinden, die alle dieselbe Architektur haben, sollten Sie einen einzigen / usr-Ordner freigeben können mit jeder Maschine im Netzwerk)

  • /usr/local ist für den Systemadministrator vorgesehen, wenn Software lokal installiert wird (dh für Anwendungen, die nur auf diesem Computer installiert sind, nicht auf jedem Computer im Netzwerk).

Diese zusammen nehmen:

  • /usr/bin ist das primäre Verzeichnis der ausführbaren Befehle auf dem System.
  • /usr/sbin ist für alle nicht wesentlichen Binärdateien, die ausschließlich vom Systemadministrator verwendet werden.
  • Systemverwaltungsprogramme, die für die Reparatur des Systems erforderlich sind, Systemwiederherstellung, Montage / usr oder andere wesentliche Funktionen müssen in platziert werden /sbinstatt (dh die Dinge, die Sie brauchen, um den Zugriff zu montieren /usr/sbinin gehen/sbin )
  • Ebenso wichtige Benutzerbefehle, die zuvor benötigt werden /usr sind, eingegeben/bin
  • Alles, was nur auf dem lokalen Rechner installiert ist, sollte in /usr/local/binoder gehen/usr/local/sbin

Es gibt 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 die von ihnen kompilierten Dinge stattdessen unter / usr / local ab. Dadurch sind sie dem Paketverwaltungssystem nicht im Weg, und Sie können herausfinden, was Sie von der Distribution installiert haben (und müssen keine Sicherungskopien erstellen, da Sie es wieder packen können) und was Sie von Hand zusammengestellt 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 einen anderen Ort, der wahrscheinlich das nächste Äquivalent zu c:\Program Files- ist /opt:

/opt ist für die Installation von Zusatz-Anwendungssoftwarepaketen reserviert.`

/optist wahrscheinlich der nächste entspricht c:\program filesin, dass es der einzige Ort ist eine Anwendung mit allen Dateien zusammen in einem Ordner, anstatt verstreut über finden erwarten würde /usr/bin, /varund /etc. Es wird normalerweise nur von sehr großen Paketen verwendet. Da Netbeans jedoch einen eigenen Ordner haben möchte, ist es in diesem Fall wahrscheinlich am sinnvollsten, es unter / opt / netbeans abzulegen

interessant. Wenn ich Linux entworfen hätte, hätte ich die im Netzwerk freigegebenen Apps in / usr / shared und dann die privaten lokalen Host-Apps in / usr abgelegt. Auf diese Weise konnte ich / usr / shared teilen, ohne dass ich / usr durch Vererbung geteilt habe. djangofan vor 14 Jahren 3
Wirklich nette Antwort. Ich mag auch den Kommentar, das Paketverwaltungssystem aus dem Weg zu räumen. DaveParillo vor 14 Jahren 1
Definitiv / entscheiden Sie sich für "vollständige Pakete von Drittanbietern". Bei den meisten Installationen werden die verschiedenen Binärdateien, Bibliotheken, Dateien usw. in verschiedene Verzeichnisse unterteilt. Wenn Sie jedoch ein "All-in-One" -Verzeichnis haben, können Sie mit / opt problemlos damit umgehen. Avery Payne vor 9 Jahren 1
Kurze Fragen zum Paar: 1) Wenn / usr von allen Rechnern in einem Netzwerk gemeinsam genutzt werden kann, heißt das nicht, dass auch alle untergeordneten Verzeichnisse freigegeben werden könnten, wodurch / usr / local für andere Rechner im Netzwerk sichtbar wird. 2) Was ist FHS? 3) Wenn Sie von Befehlen sprechen, die für das Einhängen von / usr erforderlich sind, sprechen Sie darüber, wie das Betriebssystem von einem Herunterfahren heruntergefahren wird? Ich entschuldige mich für die Bombardierung von Fragen 7 Jahre später, aber ich bin neu in Linux und hatte dieselbe Frage, nachdem ich Installationsanleitungen gesehen hatte, wo sie Sachen ablegen sollten, aber nicht warum. +1 btw Ungeheuer vor 7 Jahren 0
4
DaveParillo

Eigentlich kommt es auf persönliche Vorlieben an. Ich werde meine erklären, was es wert ist.

/ usr, / usr / bin sind normalerweise Orte, an denen vom System installierte Software installiert werden soll. Wenn ich Dinge selbst installiere, installiere ich sie an einem von mehreren Orten:

  1. Wenn es sich um ein Skript oder ein kleines Programm handelt, das ich nur verwenden werde, installiere ich es in ~ / bin - hier endet das meiste meiner Sachen.
  2. Wenn es etwas ist, das Sie (NetBeans) mit einem eigenen Dateibaum beschrieben haben, 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 und # 3? Keine Ahnung, es ist nur eine Gewohnheit, die ich im Laufe der Zeit entwickelt habe. Es stellt sich jedoch heraus, dass / opt normalerweise zu einem tiefen Dateibaum wird, aber nur zwei oder drei "Dinge" installiert haben. In diesem Moment habe ich in opt 2 Lampp und Lotus Notes installiert, zwei Verzeichnisse, die jeweils ziemlich große Bäume haben. In / usr / local / bin habe ich 20 oder 30 Einträge, aber kein Unterverzeichnis.

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

1
Adam Luchjenbroers

Der Filesystem Hierarchy Standard bietet zwar einige Anleitungen. Ich habe festgestellt, dass die meisten Distributionen Pakete gerne installieren /usr/share.

Aus diesem Grund habe ich die Praxis übernommen, Anwendungen zu installieren, die nicht über den Paket-Manager (rpm / apt-get / emerge) installiert wurden /usr/local. Dies ermöglicht es mir, Anwendungen und Bibliotheken, die nicht über die Paketverwaltung verwaltet werden, getrennt von denen zu verwalten, die es sind.

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

0
William Hilsum

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

Wenn es jedoch um modernere Programme (oder Programme ohne Installationsprogramm) geht, die viele zusätzliche Dateien enthalten, lege ich sie gerne in ein eigenes Verzeichnis /bin.

Was ist der Unterschied zwischen / bin, / usr / bin und / sbin? / bin ist am sinnvollsten, da es sich um BINary-Dateien handelt. Thomas Owens vor 14 Jahren 3
0
digitxp

Normalerweise werden sie in mehreren Ordnern installiert, hauptsächlich in / usr, / local, / bin usw. Sie können den Installationsort des Programms im GDebi-Installationsprogramm (auf der Registerkarte "Dateien") ermitteln. Wenn Sie Netbeans verschieben möchten, schlage ich vor, die Option nach / opt zu verschieben, da Google anscheinend alles installiert.

0
CarlF

Mit der Antwort von James Polley einverstanden, aber in der Tat ist das Standardverzeichnis sehr sinnvoll, wenn Sie die Anwendung nicht für mehrere Konten freigeben müssen. Ich musste zum Beispiel Eclipse 3.0 (veraltet) installieren, um Flex-Arbeit unter Linux zu erledigen, und ich habe es in $ HOME / eclipse3 geschrieben.

0
Dale

Ich benutze / apps gerne für die meisten Add-On-Apps, die ich auf mehreren Servern installiere. Ich bewahre eine Kopie des Ordners in / install / apps auf meinem NFS-Server auf. Wenn ich einen neuen Linux-Server erstelle, mounte ich den Installationsordner und die Kopie / Apps, und ich habe viele verschiedene allgemeine Apps auf dem neuen Server. Ich lösche die Einträge, die ich für diesen neuen Server nicht brauche, und bin fertig. Nun, vielleicht muss ich ein oder drei Skripts ausführen, um Umgebungsvariablen oder Pfadanweisungen festzulegen, aber das ist ziemlich viel, 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 in Linux. Wo verfügbar, wähle ich das Tarball über RPM oder yum usw. aus, sodass ich es mit cp -r auf / apps bereitstellen kann und die App meinem zukünftigen NFS-Server hinzufügen kann.

Die Frage fragt nach der Convention. Sie haben beschrieben, was Sie persönlich tun. Kannst du das wenigstens mit einer Convention in Verbindung bringen? fixer1234 vor 7 Jahren 1