Was ist besser für installierte Anwendungen: / usr / bin oder das Home-Verzeichnis des Benutzers?


9

Mir ist nicht ganz klar, ob es besser wäre, eine GUI-Anwendung in /usr/binoder in meinem Home-Verzeichnis zu installieren . Ich habe durch Lesen dieses Artikels und dieser ein , aber es ist nicht wirklich über Philosophie reden , wie diese verschiedenen Verzeichnisse zu verwenden. Sollten Befehle anders behandelt werden als GUI-Anwendungen?

Antworten:


11

Dies /usr/binist das primäre Verzeichnis der ausführbaren Befehle auf dem System.

Die /usr/local:

  • Wird vom Systemadministrator bei der lokalen Installation von Software verwendet.
  • Es muss sicher sein, dass es beim
    Aktualisieren der Systemsoftware nicht überschrieben wird.
  • Es kann für Programme und Daten verwendet werden, die von einer Gruppe von Hosts gemeinsam genutzt werden können, aber nicht in gefunden werden /usr.

Lokal installierte Software muss innerhalb platziert wird , /usr/localals vielmehr , /usrwenn es installiert wird Software in / usr zu ersetzen oder zu aktualisieren.

Mehr hier .


7

Es gibt keinen besonderen Grund, zwischen GUI- und CLI-Befehlen zu unterscheiden.

/usr/bingehört zum Betriebssystem. Auch wenn Sie als Root durch nichts daran gehindert werden, sollten Sie hier nichts einfügen. Dieses Verzeichnis richtet sich an Personen, die in das Betriebssystem integrierte Software vertreiben und Namenskonflikte ordnungsgemäß behandeln / vermeiden.

/usr/local/binist ein allgemeines Verzeichnis für lokal erstellte Software. Wenn Sie hier schreiben können, können Sie einfach dieses Verzeichnis verwenden.

/opt/<name>/binist für Software, die nicht zum Betriebssystem gehört. Es ist ein guter Ort für gemeinsam genutzte Software.

Ihr Home-Verzeichnis gehört Ihnen, so dass Sie alles, was Sie möchten, irgendwo darunter ablegen können, aber es ist nicht der beste Ort, wenn andere Personen Ihr Programm ausführen müssen.


1
Ist also der einzige Unterschied zwischen / usr / local / bin und / opt / foo / bin, wo / wie die Software installiert wurde? Also sollte in der Regel jede Software, die ich manuell installiere, in die erstere gehen und alles, was von einem Paketmanager installiert wird, in die spätere? EDIT: Es scheint so. Link
TheAmpersand

Ja. Beachten Sie, dass lokal erstellte Software möglicherweise auch nach / opt / local / bin wechselt. Dadurch wird ein Problem mit / usr / local vermieden, das viel beschreibbar ist, während / usr möglicherweise schreibgeschützt bereitgestellt wird.
Jlliagre

3

Installieren Sie nichts manuell in /usr/bin. Die ganze /usr, sowie /bin, /libund /sbinwerden für die Software Ihrer Distribution vorbehalten. Es gibt eine Ausnahme : /usr/local, die für vom Systemadministrator installierte Programme vorgesehen ist und von Paketmanagern nicht berührt wird (außer zum Erstellen einiger Verzeichnisse). (Unter Linux haben andere Unix-Varianten möglicherweise Paketmanager, unter denen Software installiert wird /usr/local.)

Zwischen /usr/localund einem Ort in Ihrem Home-Verzeichnis haben Sie die Wahl. Wenn Sie möchten, dass ein Programm allen Benutzern zur Verfügung steht, geben Sie es ein /usr/local. Wenn Sie möchten, dass es nur für Sie verfügbar ist, installieren Sie es in Ihrem Home-Verzeichnis.

Ob das Programm eine GUI hat oder nicht, spielt keine Rolle.


1
/optwird manchmal auch für lokale Installationen verwendet, obwohl die Trennung zwischen /usr/localund /optnicht klar ist.
Faheem Mitha

2

Wenn es sinnvoll (oder erforderlich) ist, dass der Benutzer die Binärdateien der Anwendung ersetzen kann, muss sie im Home-Verzeichnis des Benutzers installiert werden. Andernfalls kann es in einem öffentlichen, schreibgeschützten Verzeichnis wie z /usr/bin.


0

Für den globalen Gebrauch können Sie es in / usr / bin installieren, aber niemand empfiehlt dies.

Wenn Sie eine Anwendung als bestimmten Benutzer verwenden möchten (sie sollte sicherer sein, wenn Sie sie als 1 Benutzer ausführen), installieren Sie sie im Ausgangsverzeichnis eines bestimmten Benutzers.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.