Frage Welche "Best Practices" deuten bei der Installation von Benutzeranwendungen darauf hin, dass sie sich befinden?


Gelegentlich installiere ich Anwendungen manuell, anstatt sie zu verwenden apt oder ein anderer Paketmanager.

Welcher Ort (/usr/, /usr/local/, /opt/, /home/usw.) wird von "Best Practices" für die Installation von Benutzeranwendungen vorgeschlagen?


184
2017-08-05 14:42


Ursprung


Es hat mir immer Spaß gemacht, Sachen von der Quelle zu installieren, schrieb ich ein kleines Werkzeug, um es zu tun Das macht die Änderungen an Ihrer Shell-Startup-Datei selbst (und ändern Sie auch Ihr Bibliothekspräfix, wenn Sie es fragen, für Programme, die auf gemeinsam genutzte Bibliotheken angewiesen sind). Nicht sehr Feature-reich, aber es funktioniert 99% der Zeit. - new123456
Zugehöriger Beitrag: askubuntu.com/q/138547/62483 - Lucio
Große Diskussion über die Unterscheidung zwischen /opt und /usr/local : unix.stackexchange.com/q/11544/11917 - blong


Antworten:


Das hängt wirklich davon ab. Wenn die Anwendung ein Makefile hat (für Python-Apps) verwendet sie distutils (hat a setup.py Datei) oder ein ähnliches Build / Install System, setzen Sie es in /usr/local/ (Standardverhalten).

Wenn Sie nur einen Tarball extrahieren und direkt ausführen müssen (z. B. Thunderbird, Firefox), dann legen Sie ihn in /opt/.

Warum? Von dem, was ich verstehe, /usr/local/ hat eine ähnliche Hierarchie /usr/. Also ein Programm, das darauf wartet, "installiert" zu werden /usr/ sollte gut funktionieren in /usr/local/. Ein Programm, das nur ein Verzeichnis benötigt und alle Dateien / Bibliotheken relativ zu diesem Verzeichnis bekommt, kann ein Verzeichnis für sich selbst erhalten /opt/.


163
2017-08-05 14:53



Es scheint so viele Leute zu vergessen opt/ - Meiner Meinung nach haben Sie den Nagel auf den Kopf getroffen, als für seinen Zweck. - Marco Ceppi♦
Ich habe Eclipse heruntergeladen und nach / opt extrahiert. Wie kann ich es wie andere Programme wie javac, java vom Terminal laufen lassen. Ich habe mit update-Alternativen wie folgt, sudo update-alternatives --install "/ usr / bin / eclipse" "eclipse" "/ opt / eclipse / eclipse" 1 ABER ES SAGT KOMMANDO NICHT GEFUNDEN TYPE sudo eclipse - Deepen
Machen Sie einen Symlink von / usr / bin oder fügen Sie ihn in ~ / .bashrc zu PATH hinzu - Alex


Es ist gut, sich daran zu erinnern /usr steht nicht für Benutzer aber eher Unix-Systemressourcen.

Als solche neige ich zu der Annahme, dass jede Distribution das Recht hat, über den ganzen Inhalt von /usr, und dass meine spezifischen Ergänzungen zum System hineingehen /usr/local, die ich vor einem Upgrade aufbewahre.

Inzwischen gehen Anwendungen und andere Dinge ein /opt.

Manche Menschen fühlen sich wohl dabei, Dinge hineinzulegen /homeobwohl ich dieser Konvention selten folge.

Alles, was gesagt wurde, ich lasse den Distribution Package Manager zuerst die Dinge auf seine Art machen, und dann mache ich das oben beschriebene, wenn ich Sachen rolle.


99
2017-09-17 17:39



Es ist daran zu erinnern, dass "Unix-Systemressourcen" eine Umbenennung ist, die NACH dem Hinzufügen von '/ home' durchgeführt wurde. In den alten, alten, alten Tagen (Unix Version 6 und so weiter) würden Sie Verzeichnisse wie / usr / jimmy, / usr / siobhan, / usr / ahmed usw. sehen, weil die Verzeichnisse "user" in / usr gespeichert wurden . - Mark Leighton Fisher
OK ich beiße: für was steht opt? - Seth
@Seth Ich denke, es ist "optional" - es war ursprünglich für Software, die nicht Teil einer Standardinstallation war. - Carl H
/ usr ist User. Das lag daran, dass Linux-Benutzer Entwickler waren. Zuerst als es begann, in Devs und Benutzer zu teilen /home dir wurde eingeführt. Und dann hatte jemand die Idee, es zu sagen Unix System Resources, was eigentlich keinen Sinn ergibt, weil wir das haben Unix system Resources im /dev - Info-Screen
Richtig, / usr ist ein Backronym. Der Zweck hat sich seit den Tagen geändert, als Unix 1969 auf einer PDP-7 lief. - Walt Stoneburner


Installieren Sie unstable Programme wie Firefox-Entwicklung in / home / Benutzer / opt / macht es viel einfacher zu entfernen, und keine Verwirrung für andere Benutzer, welche Version sie verwenden sollten ... Wenn es also kein Programm für die globale Verwendung ist, installieren es in einem Unterordner in Ihrem Home-Verzeichnis.

Installiere niemals Programme in / usr /, es wird wahrscheinlich Chaos verursachen, Dinge, die in / usr / installiert sind, sind nur für Distributionspakete gedacht. / usr / local / wird für Pakete lokal kompiliert. Und die Struktur funktioniert genauso! Dateien in / usr / local / werden gegenüber Dateien in / usr / priorisiert

/ opt / sollte für die Installation von vorkompilierten (binären) Paketen (Thunderbird, Eclipse, Netbeans, IBM NetSphere usw.) und ähnlichem verwendet werden. Aber wenn sie nur für einen einzelnen Benutzer sind, sollten sie in Ihrem Home-Verzeichnis abgelegt werden.

Wenn Sie in der Lage sein möchten, ein Programm auszuführen, das an einem "seltsamen" Ort installiert ist (wie / home / user / opt / firefox /), ohne den gesamten Pfad einzugeben, den Sie zu Ihrer $ PATH-Variablen hinzufügen müssen, können Sie dies tun Fügen Sie eine Zeile wie diese in Ihrem /home/user/.profile hinzu

export PATH=/home/user/opt/firefox:$PATH

Der Ordnername sollte derjenige sein, in dem sich die ausführbare Datei befindet, die Sie ausführen müssen.


30
2017-08-07 08:40





Der Linux-Dateisystemhierarchie-Standard gibt an /usr/local.

Von http://tldp.org/LDP/Linux-Filesystem-Hierarchie/html/usr.html:

Die ursprüngliche Idee hinter "/ usr / local" war eine separate ("lokale")   '/ usr' Verzeichnis auf jeder Maschine neben '/ usr', die gerade sein könnte   schreibgeschützt von woanders montiert. Es kopiert die Struktur von   "/ usr". Heutzutage wird "/ usr / local" allgemein als ein guter Ort in   was zu selbst kompilierten oder Drittanbieter-Programmen zu halten. Das / usr / lokal   Die Hierarchie wird vom Systemadministrator bei der Installation verwendet   Software lokal. Es muss vor dem Überschreiben sicher sein, wenn der   Systemsoftware wird aktualisiert. Es kann für Programme und Daten verwendet werden, die   sind unter einer Gruppe von Hosts teilbar, aber nicht in / usr. Örtlich   Die installierte Software muss in / usr / local und nicht in / usr platziert werden   es sei denn, es wird installiert, um Software in / usr zu ersetzen oder zu aktualisieren.


25
2017-08-05 14:45



Scheint dem / usr / local-Kram mit den Infos auf der opt-Seite zu widersprechen: tldp.org/LDP/Linux-Filesystem-Hierarchie/html/opt.html "" Dieses Verzeichnis ist für alle Software- und Add-On-Pakete reserviert, die nicht zur Standardinstallation gehören. Zum Beispiel werden normalerweise StarOffice, Kylix, Netscape Communicator und WordPerfect Pakete hier gefunden. Um dem FSSTND zu entsprechen, sollten alle Anwendungen von Drittanbietern in diesem Verzeichnis installiert werden. "..." (ähnlich wie Windows neue Software in seinem eigenen Verzeichnisbaum C: \ Windows \ Progam Files \ "Program Name installiert ")" - Pod


Normalerweise habe ich einen Ordner mit dem Namen "Programs" in meinem Haus, wo ich diese Programme installiere, merkwürdig genug (oder nicht), sie sind alle Java-Sachen im Moment.

Es hat einen großen Vorteil für mich, wenn ich Computer neu installiere oder ändere, werden sie mit dem Rest meines Hauses bewegt. Es hat einen klaren Nachteil, diese Apps sind nur für meinen Benutzer verfügbar.


5
2017-08-05 14:57



Wie kann ich Ubuntu 16.04 neu installieren, ohne Daten im Home-Ordner zu verlieren? Ich versuchte es mit Formate / Verzeichnis nur dann den gleichen alten Benutzernamen und Passwort eingeben, aber ich fand, dass Ubuntu einen anderen Home-Ordner erstellt. - Ibrahim Disouki


Verwenden Sie "checkinstall", um Ihr Alien-Paket in eine Deb-Datei zu konvertieren, sodass es mit dem Paket-Manager deinstalliert werden kann.

Beachten Sie, dass Konfigurationsdateien oft nicht als Konfigurationsdateien behandelt werden (vielleicht ignoriert oder vielleicht als Teil der App behandelt werden), und dass Vor- und Nachinstallations-Skripte manchmal verpfuscht werden, obwohl sie Sie normalerweise warnen, wenn sie denkt Deb hat ein schlechtes Vor- oder Nachinstallations-Skript.


1
2017-08-16 01:41