Kommen wir zu allen bin- und sbin-Ordnern (vom Dateisystem-Hierarchiestandard):
/bin
ist für Binärdateien auf Systemebene/sbin
ist für andere Binärdateien auf Systemebene vorgesehen, hauptsächlich für den Bootloader und Systemadministratoren/usr/bin
ist für nicht unbedingt notwendige binaries/usr/sbin
- Hier fängt das Chaos an - nicht unbedingt erforderlich für Systemadministratoren? Was heißt das? Für Experimente?/usr/local/bin
- kein Wort über diesen Ordner/usr/local/sbin
- lokal installierte Systemverwaltungsprogramme. Nochmal? Wie wäre es/usr/sbin
?
Die Frage ist also: Warum gibt es so viele Verzeichnisse und was sind die Bedeutungen von /usr/sbin
, /usr/local/sbin
und /usr/local/bin
?
Viele Programme werden über Archive verteilt und müssen aus dem Quellcode erstellt werden. Normalerweise haben sie makefile, also ist es ziemlich einfach. Dieser Prozess umfasst das Erstellen von Dateien in usr / local / lib, usr / local / bin ... usr / local / whatever, ohne bestimmte Ordner für ein bestimmtes Programm zu erstellen.
Wieso ist es so?
Ich denke, es ist nicht richtig, denn wenn wir das Programm entfernen müssen, müssen wir jede seiner Dateien manuell löschen, wenn der Ersteller des Programms sich nicht darum gekümmert hat.
Antworten:
1. Verzeichnisstruktur
Dies sollte im Filesystem Hierarchy Standard ( 2.3 PDF ) behandelt werden
2. Installation
Ich benutze wo immer möglich einen Paketmanager (zB yum oder apt-get). Dies ist für eine sehr große Anzahl von Anwendungen möglich. In einigen Fällen müssen Sie möglicherweise ein Repository hinzufügen. Meine zweite Wahl wären Pakete auf niedrigerer Ebene wie RPMs, und das Kompilieren aus dem Quellcode wäre mein letzter Ausweg (aber manche Leute bevorzugen dies).
Einige Paketmanager können über RPMs installiert werden (z. B.
yum install oddity.rpm
).Wenn Sie aus dem Quellcode kompilieren, ist es wahrscheinlich kein großer Schritt, ein eigenes Paket zu erstellen, damit der Systeminstallateur weiß, was Sie getan haben.
Dann reduziert sich Ihr Problem auf z
yum remove packagename
Die Alternative ist, eine gute Dokumentation über alle durchgeführten Sysadmin-Aktivitäten aufzubewahren (ich führe trotzdem ein Tagebuch in einer Textdatei).
quelle
/usr/(s)bin
wurden in der Regel von einem Netzwerk-Dateisystem eingehängt. Aus diesem Grund musste alles vorhanden sein, was zum Booten der Maschine benötigt wurde/(s)bin
. Der größte Teil/usr/local
wird jetzt für Programme verwendet, die Sie außerhalb des Paketmanagers installieren (was Sie nicht tun sollten).Zeug in allen * / sbin-Verzeichnissen ist normalerweise nur für Systemadministratoren nützlich. Sie können sie von Ihrem PFAD fernhalten, wenn Sie ein normaler Benutzer sind.
Die verschiedenen Verzeichnisse sind wenig sinnvoll, wenn Sie einen einzelnen Unix-Rechner auf einer einzelnen Festplatte haben, aber sinnvoller, wenn Sie ein großes System und verschiedene Partitionen haben. Denken Sie daran, dass viele dieser Gewohnheiten in den 80er und 90er Jahren gemacht wurden, als die Systeme etwas anders waren.
/sbin
neigt dazu, sehr klein zu sein. Dies sind Dienstprogramme, die Sie benötigen, wenn Sie wirklich abgespritzt sind. Sie würden dies mit / root und / lib auf eine minimale Root-Partition setzen. Die Dinge in / sbin waren früher alle statisch verknüpft, da dynamisch verknüpfte Apps unbrauchbar sind, wenn Ihre / usr-Partition überlastet ist. fsck ist hier und statisch verlinkt. Wenn Sie eine Abhängigkeit von / usr haben, können Sie / usr / offensichtlich nicht überprüfen. Natürlich, wenn Wurzelpartition abgespritzt wird, sind Sie sehr verschraubt. Aus diesem Grund ist dies eine so kleine Partition - verringern Sie die Wahrscheinlichkeit eines fehlerhaften Plattenblocks, indem Sie hier nur sehr wenige Blöcke verwenden./usr/sbin
Binärdateien sind allgemeine Sysadmin-Tools, mit denen Sie mindestens in den Einzelbenutzermodus wechseln und alle Volumes bereitstellen können. Sie dürfen dynamisch verknüpft werden.Die getrennten Partitionen für / sbin (also / sbin auf / partition) und / usr sind auch sinnvoller, wenn Sie sich daran erinnern, dass die Sicherung sowohl für die Zeit als auch für das Band sehr teuer war. Wenn sie sich auf separaten Partitionen befinden, können Sie sie anders planen.
/usr/local
kann ein Netzwerk-Dateisystem sein. Daher werden lokal geschriebene Sysadmin-Tools, die von vielen Computern gemeinsam genutzt werden können, manchmal in / usr / local / sbin abgelegt. Offensichtlich können keine Netzwerk-Fixing-Utils dorthin gehen.Wiederum machten viele Dinge auf großen Maschinen in einer Netzwerkumgebung auf verwalteten Maschinen mit mehreren Volumes mehr Sinn, weniger auf einer Linux-Maschine auf einer einzelnen Root-Partition.
quelle
Sie sollten Ihre zweite Frage wirklich als separate Frage hier auf Superuser haben. Es hat nichts mit dem ersten zu tun.
Ja, Akten überall zu haben, ist zum Kotzen. Deshalb gibt es viele Verpackungslösungen. RedHat hat RPM erstellt, das überall verwendet wird. Solaris hatte ihr Paketformat. HP / UX hatte ihre und es gibt passende und viele andere Paketformate. Bewahren Sie die Dinge an den richtigen Stellen auf (/ usr / bin, / usr / lib), lassen Sie sie jedoch einfach hinzufügen und entfernen.
Für den Quellcode gab es Tools, mit denen Sie in einem Unterverzeichnis von / usr / local konfigurieren und installieren konnten und die Symlinks zu / usr / local / bin für Sie handhabten. Seit der großen Verbreitung von Pakettools ist dies weniger notwendig, und ich habe ihre Namen vergessen.
Einige Leute möchten in / opt / packagename installieren und dort alles zusammenhalten. Das Gute: Alles ist in einem Verzeichnis und eine Deinstallation ist
rm -rf /opt/packagename
. Der Nachteil dabei ist, dass man / opt / packagename / bin zum PATH aller hinzufügen muss und dass die Leute normalerweise nicht auf einer separaten Partition / opt setzen und die Root-Partition ausfüllen.quelle
Zur Beantwortung Ihrer zweiten Frage:
Üblicherweise werden Programme mit einem sogenannten Paketmanager verteilt . Ein Paketmanager holt normalerweise Binärpakete (Software, die für eine bestimmte Plattform kompiliert wurde) und wirft sie in Verzeichnisse (einige laden den Quellcode herunter, kompilieren ihn auf Ihrem Computer und installieren ihn). Auf diese Weise weiß der Paketmanager, wo sich die Dateien befinden, die zu einem bestimmten "Programm" (Paket) gehören, und wenn Sie das Paket entfernen möchten, kümmert sich der Paketmanager um die Bereinigung aller Daten.
Auch wenn Sie den Quellcode selbst mit kompilieren
und installiere es mit
das kannst du normalerweise tun
Dadurch werden die Dateien aus dem Dateisystem gelöscht.
quelle
make install
Ausgabe analysiert und die dort genannten Dateien löscht.