Paketmanager und Abhängigkeiten
Die meisten Linux-Distributionen verwenden Paketmanager für die Installation und Entfernung von Software. Paketmanager bieten einige Vorteile wie die Möglichkeit, ein zentrales Repository zu verwenden, aus dem (fast) jede Software heruntergeladen werden kann, die Organisation von Softwareteilen in Bundles, die als eine zusammenhängende Gruppe installiert werden können, und die Hauptvorteile: Automatisch Abhängigkeitsbehandlung und Nachverfolgung der Änderungen, die Pakete vornehmen, damit sie deinstalliert werden können.
Bestimmte Softwareteile erfordern möglicherweise bestimmte Bibliotheken oder andere Programme, um Aufgaben auszuführen, die redundant wären, wenn sie in dieser Softwareteilung erneut implementiert würden. Pakete ermöglichen den Ausdruck dieser Abhängigkeiten.
Unterschiede: Paketformate und Strategien
Es gibt verschiedene Paketmanager. Jedes wurde erstellt, weil die vorhandenen nicht den Bedürfnissen einiger Menschen entsprachen. Jeder Paketmanager benötigt Pakete in seinem eigenen Format.
Darüber hinaus haben unterschiedliche Distributionen unterschiedliche Anforderungen an die enthaltene Software. Es gibt eine Reihe von Softwareteilen, die je nach den Optionen, die beim Kompilieren aus dem Quellcode in eine ausführbare Maschine gegeben werden, unterschiedliche Funktionen haben können. Einige Distributionen möchten vollständige Funktionen und eine umfassende Erfahrung bieten, während andere eine möglichst schlanke und einfache Erfahrung bieten möchten, und es gibt alles dazwischen. Die Distribution kann auch entscheiden, ihre Verzeichnisstruktur anders zu formatieren oder ein anderes Init-System zu verwenden. Sie können sich entscheiden, die Software anders zu bündeln: Es gibt möglicherweise ein Paket namens "dev-utils" in zwei verschiedenen Distributionen, aber eine Version davon enthältyacc
während der andere nicht. Aufgrund dieser unterschiedlichen Anforderungen entscheiden sich die Distributionen dafür, die Software auf unterschiedliche Weise zu kompilieren.
Dies ist der Grund, warum selbst wenn Sie ein Paket im richtigen Format für Ihren Paketmanager haben, es möglicherweise nicht funktioniert, wenn das Paket für eine andere Distribution vorgesehen war. Zum Beispiel könnte dieses Paket von yacc
der Installation abhängen, und es drückte diese Abhängigkeit aus, indem das Paket "dev-utils" benötigt wird, aber Ihre "dev-utils" enthalten dies nicht yacc
. Jetzt ist ein Paket mit einer nicht erfüllten Abhängigkeit installiert.
Das ist kein wirkliches Problem.
Ein großer Teil einer Linux-Distribution besteht darin, ein zentrales Software-Repository zu verwalten. Die Distribution sorgt dafür, dass dies alles für Sie erledigt wird. Dies macht es tatsächlich sehr einfach, Software zu installieren. Normalerweise verwenden Sie den Paketmanager, um nach Paketen zu suchen und diese auszuwählen und sie dann zu installieren. es kümmert sich um den Rest für Sie. Der Installationsprozess der Windows-Software umfasst die Suche nach Software auf Websites von Drittanbietern, den Versuch, den entsprechenden Download-Link zu finden, das Herunterladen, die Virenprüfung und das Ausführen eines Installationsprogramms, das Ihnen dann eine Reihe irrelevanter Fragen stellt. Das ganze Durcheinander ist unter Linux nicht der Standard.
Das Repository kann möglicherweise nicht alles enthalten
In einigen Fällen befindet sich eine von Ihnen benötigte Software nicht im Repository Ihrer Distribution. Die Pakete, die von einem Software-Repository bereitgestellt werden, sind eines der Unterscheidungsmerkmale von Distributionen. Wenn Sie die Software, die Sie benötigen, nicht in den Repositorys Ihrer Distribution finden können, gibt es drei mögliche Möglichkeiten (wirklich zwei plus eine Möglichkeit, die Dinge wirklich zu vermasseln).
Community-Repositories
Viele Distributionen verfügen über inoffizielle Repositorys, die von Personen verwaltet werden, die nicht mit der Distribution verbunden sind. Ubuntu nennt sie PPAs, Fedora nennt sie Fedora People Repositories. Arch Linux hat keinen spezifischen Namen für Repositorys von Drittanbietern , aber seine AUR, eine Sammlung von "Rezepten" für Pakete (Hinweis: Es gibt nur eine AUR). Sie können zunächst versuchen, ein Paket aus einer dieser Quellen zu installieren, da es einfach ist, sie zu deinstallieren, wenn sie nicht funktionieren.
Aus Quelle kompilieren
Wenn Sie kein inoffizielles Repository mit dem finden, was Sie benötigen, ist das Kompilieren aus dem Quellcode nicht schwierig. Sie müssen das Entwicklungspaket Ihrer Distribution installiert haben. Dazu gehören grundlegende Dinge wie ein Compiler, ein Linker, ein Parser und andere Tools, die normalerweise zum Kompilieren von Software benötigt werden. Dann finden Sie den Quellcode des Projekts (der fast immer in einem .tgz
oder .tbz
(als "Tarball" bezeichnet) verpackt ist ). Laden Sie ihn irgendwo in ein eigenes Verzeichnis herunter, extrahieren Sie ihn (mit tar -xf filename.tgz
und gehen Sie normalerweise in das von ihm erstellte Verzeichnis Bei diesem Verzeichnis kann es sich um eine Datei mit dem Namen README
oder handeln INSTALL
. Wenn sie vorhanden ist, lesen Sie sie. Die meisten weisen Sie an, dasselbe zu tun. Die nächsten Schritte werden über eine Befehlszeile ausgeführt. Führen Sie ls
eine ausführbare Datei mit dem Namen aus und suchen Sie sieconfigure
. Wenn es existiert, führen Sie es aus, indem Sie Folgendes tun ./configure
: Manchmal kann es einige Minuten dauern. In der Regel werden einige Tests ausgeführt, um herauszufinden, wie in Ihrer Distribution die Einstellungen vorgenommen wurden, und es wird sichergestellt, dass Sie über die zum Kompilieren dieser Software erforderlichen Tools verfügen. Der nächste Schritt ist das Ausführen make
. Dadurch wird die Software tatsächlich kompiliert, und es wird wahrscheinlich einige Zeit dauern - je nach Größe der zu kompilierenden Software zwischen einigen Minuten und Stunden. Sobald dies erledigt ist, laufen Sie make install
. Dadurch wird die Software installiert, bei der die Produkte der Kompilierung an die entsprechenden Stellen in Ihrem Dateisystem kopiert werden. Danach steht die Software zur Verfügung.
Dies war ein langer Abschnitt, der jedoch als "README, ./configure, make, make install" zusammengefasst ist . Das ist die Routine, an die man sich erinnert.
Installieren Sie ein Paket von einer anderen Distribution (tun Sie dies nicht)
Ich liste dies nur auf, weil es eine Alternative ist, aber es wird mit ziemlicher Sicherheit nicht gut enden. Es ist möglich, Pakete für andere Distributionen zu installieren, und Sie möchten dies möglicherweise tun. Nun, nicht. Tun Sie es erst, wenn Sie Ihr System sehr gut verstanden haben. Tatsächlich werde ich hier keine Befehle einfügen, die zeigen, wie es geht, obwohl es möglich ist. Wenn Sie an einem Punkt angelangt sind, an dem dies anscheinend die einzige Option ist, installieren Sie das Paket nicht mit dem Paketmanager. Ziehen Sie stattdessen Dinge aus dem Paket und platzieren Sie sie manuell in Ihrem System, zusammen mit Notizen darüber, was Sie getan haben, damit Sie sie bei Bedarf rückgängig machen können.
Das Befehlszeilenbit
Einige Leute bevorzugen die Befehlszeile wegen der Vorteile, die sie ihnen bietet. Diese können in drei Dinge zusammengefasst werden:
- Einfache Automatisierung
- Geschwindigkeit (im Vergleich zum Klicken überall in einer GUI)
- Ausdruckskraft
Das größte davon ist die Ausdruckskraft; Es gibt Dinge, die über eine Befehlszeile ausgeführt werden können und in einer grafischen Oberfläche nicht möglich sind.
Schließlich werden Befehlszeilenanweisungen häufig in hilfreichen Foren wie diesem gegeben, da es viel einfacher ist, die richtigen Informationen zu übermitteln, als Anweisungen vom Typ "Hier-dann-dort-dann-dort" zu geben.
Unterschiedliche Distributionen haben unterschiedliche Installationsvoraussetzungen. Es gibt jedoch RPMs oder DEBs (oder andere Pakete für andere Paketverwaltungssysteme), die für mehr als eine Distribution funktionieren. Die Linux-Philosophie macht Quellcodes leicht verfügbar. Wenn Sie Ihre eigene Software kompilieren, ist die Routine in allen Distributionen ziemlich gleich und es ist immer das gleiche
.tar.gz
Archiv, das Sie verwenden.Kompilierte RPMs sind eher Teil des Systems. Eine Anwendung selbst als eigenständige Einheit soll auf jedem Ziel verteilt und kompiliert werden.
Ihre zweite Frage ist etwas völlig anderes ... Nun, "viele Linux-Benutzer" bevorzugen CLI-Anwendungen aus vielen verschiedenen Gründen. Ein geringer Speicherbedarf ist nur ein Grund. Bei Verwendung von SSH sind CLI-Anwendungen sinnvoller, insbesondere wenn Sie außerhalb des Standorts auf Servern arbeiten. In den meisten Fällen sind auf diesen Servern keine grafischen Umgebungen installiert. Wenn nicht daemonisierte Programme ausgeführt werden, können sie sehr einfach abgebrochen werden. Ctrl- cund das Programm ist weg. Außerdem melden sich viele Programme bei der Konsole an, sodass das Debuggen einfacher ist. Beim Programmieren erledigen Sie den größten Teil der Kompilierung in der Konsole. Es ist nur sinnvoller, schnelles Debuggen zu kompilieren. Entweder das oder das Lesen von Protokolldateien, manchmal ist das Lesen der Konsole schneller.
quelle
Bogen. Oder FreeBSD, das als Ganzes entwickelt wird. (RHEL, SLES und ähnliches werden insgesamt unterstützt.)
Laptop-Nutzung: Mint
Verwendbare Hackbarkeit: Arch.
Sadistische Hackbarkeit: Genoo.
Spaß Hackbarkeit: LFS.
Unterstützbarkeit (Server): RHEL, Ubuntu LTS, FreeBSD (anders als Linux).
quelle