Wo wird installierte Software in Linux gespeichert?

Wo wird installierte Software in Linux gespeichert?

Mögliches Duplikat:
Wo ist ein typisches Linux-Programm installiert

Ich bin neu bei Linux und möchte noch ein paar weitere Fragen zu Paketen haben.

Unter Windows lade ich eine .exeDatei herunter und installiere sie. Bei der Installation definiere ich den Pfad, in dem die Anwendung gespeichert werden soll. In diesem Ordner habe ich alle für die Anwendung erforderlichen Dateien.

Wenn ich jedoch ein Paket in Linux mit yumoder installiere apt-get, weiß ich nicht, wo das Paket installiert ist und wo die erforderlichen Dateien für diese Anwendung gespeichert sind. Ich habe gesehen, dass sich die meisten Konfigurationen im /etcVerzeichnis befinden. Aber warum speichert Linux die erforderlichen Dateien für eine Anwendung in verschiedenen Verzeichnissen?

Kann mir jemand sagen, wie Pakete installiert werden und wo und wie sie gespeichert werden? Und wenn ich etwas Falsches über die Paketverwaltung verstehe, korrigieren Sie mich bitte.

Antwort1

Viele Programme (die Binärdateien/Skripte) landen wie Sie bereits bemerkt haben in /binoder /usr/binmit anderen Teilen in verschiedenen Konfigurationsverzeichnissen (oft in/unter etc).

Für jeden spezifischen Befehl können Sie auscheckenwo ist

whereis prog_name

und Sie erhalten Informationen darüber, wo dieser Befehl zu finden ist. Sie können auch versuchenwelche

which prog_name

Auch dasGrafik und Erklärung/Beispielekönnte hilfreich sein.

Antwort2

Sie können eine Liste der Dateien erhalten, die ein bestimmtes yumPaket installiert, indem Sie Folgendes tun:

yum install yum-utils

Dann können Sie es wie folgt ausführen:

repoquery --list yum-utils

(Ersetzen Sie im zweiten natürlich „yum-utils“ durch den Namen des Pakets, dessen Dateiliste Sie sehen möchten.)

Für apt-getkönnen Sie Folgendes verwenden:

dpkg -L package-name

Antwort3

Unter Windows, insbesondere älteren Versionen, war es üblich, dass Programme Konfigurationsdateien und nicht konstante Daten in ihrem C:\Program FilesVerzeichnis speicherten. Dies ist darauf zurückzuführen, dass Programme normalerweise unter DOS im Einzelbenutzermodus, ohne Netzwerk und ohne Dateiberechtigungen installiert und ausgeführt wurden.

Aus Sicherheitsgründen ist dies keine gute Idee. Orte, an denen ausführbarer Code gespeichert ist, sollten von veränderbaren Daten getrennt werden. Auf diese Weise ist es einfacher, geeignete Dateiberechtigungen anzuwenden, um Änderungen an installierten Binärdateien durch nicht autorisierte Benutzer zu verhindern. Ebenso sollten Bibliotheksverzeichnisse, die getrennt von den Haupt-Ausführungsdateien aktualisiert werden können, ebenfalls in einem separaten Verzeichnis liegen.

Mit dem Aufkommen von Vista und den UAC-Ärgernissen verliert diese Tradition endgültig an Bedeutung.

UNIX und Linux, die schon viel früher Mehrbenutzersysteme waren, neigten schon viel früher dazu, ausführbare Verzeichnisse von anderen Verzeichnissen zu trennen, da man verhindern wollte, dass andere Benutzer als Root installierte Binärdateien ändern. Das ist auch der Grund, warum es manchmal /usrseparate /sbinPartitionen gibt – ein besonders sicherheitsbewusster Administrator kann diese Partitionen schreibgeschützt mounten und sie erneut schreibgeschützt mounten, wenn eine Installation/Deinstallation durchgeführt werden muss.

Pakete werden normalerweise von einem Paketmanager installiert. Es gibt verschiedene Paketmanager, wie aptitude(Debian und abgeleitete Distributionen), yum(Redhat und abgeleitete Distributionen), pacman(ich habe vergessen, welche Distribution das ist...) und andere.

Mit dem Paketmanager können Sie Repositorien durchsuchen, Software herunterladen, installieren, abfragen und entfernen, ähnlich wie bei einem hochentwickelten (und kostenlosen) „App Store“. Er übernimmt die Verantwortung dafür, dass Abhängigkeiten berücksichtigt werden und verfolgt, was aktuell installiert ist.

Normalerweise erlaubt der Paketmanager dieselben Operationen auch für Pakete, die Sie manuell außerhalb von Repositorys heruntergeladen haben. Es stehen auch Tools zur Verfügung, wenn Sie aus selbst erstellter oder kompilierter Software eigene Pakete erstellen möchten.

Da das Paket selbst KEINE ausführbare Datei ist, müssen Sie keine nicht vertrauenswürdige ausführbare Datei ausführen, von der Sie nicht wirklich wissen, was sie tut. (Windows kommt bei Updates endlich auf die Idee, .msu's statt .exe's zu verteilen – aber .msi's gibt es schon eine Weile ...)

Antwort4

Unter Linux/Unix landen die meisten Programme nicht in einem einzigen Verzeichnis, sondern verschiedene Teile davon (ausführbare Dateien, Konfigurationsdateien, Protokolldateien, Dokumentation, andere Ressourcen) sind über das Dateisystem verstreut – normalerweise durch symbolische Links. DieWikipedia-Artikelbeschreibt ausführlicher die Standardverzeichnisstruktur unter einer normalen Dateisystemhierarchie und zeigt die verschiedenen Verzeichnisse und was Sie in jedem erwarten können.

verwandte Informationen