Wie werden Pakete tatsächlich über apt-get install installiert?

29

Gibt es bei der apt-get installInstallation eines Pakets auf Ubuntu einen grundlegenden Unterschied zwischen dem Abrufen des Quellcodes für dieses Paket und dem Erstellen eines neuen Pakets? Lädt die apt-get installFunktionalität einfach die Quelle herunter und erstellt sie auf Ihrem Computer in einem bestimmten Verzeichnis, oder läuft hinter den Kulissen mehr?

Schließlich (vielleicht hat dies keine Antwort) ist eine Methode besser als die andere? Was ich hier anspreche, ist, ob der Build selbst aus Quellcode irgendwelche Vorteile hat oder ob es besser ist, apt-getsein Ding machen zu lassen ?

Mathematiker1975
quelle

Antworten:

25

Zu den Vorteilen eines Paketverwaltungssystems wie apt, yum, pacman usw. gehören:

  • Es ist einfach abzufragen, welche Version eines Pakets installiert oder verfügbar ist.
  • Es ist einfach, ein Paket vollständig zu entfernen und sicherzustellen, dass alle seine Dateien gelöscht sind.
  • Es ist einfach, die Integrität der Paketdateien zu überprüfen, sodass Sie feststellen können, ob sie beschädigt oder manipuliert wurden.
  • Es ist einfach, ein Paket zu aktualisieren, indem Sie die neue Version installieren und alle alten Versionsdateien entfernen. Dadurch wird sichergestellt, dass keine verweilenden Dateien aus dem alten Paket herumliegen, um die Dinge zu verwirren oder zu beschädigen.
  • Es ist leicht zu erkennen, welche Pakete Dinge erfordern oder bereitstellen, die andere Pakete bereitstellen oder benötigen, sodass Sie sicher sein können, dass Sie über die erforderlichen Elemente verfügen, damit das Paket ordnungsgemäß funktioniert.
  • Es ist einfach, Gruppen von Paketen zu installieren oder zu entfernen.
  • In vielen Fällen ist es möglich, ein Downgrade auf eine frühere Version eines Pakets durchzuführen, beispielsweise wenn eine neue Version einen Fehler aufweist.

Obwohl es für Fedora ist, siehe auch:

https://fedoraproject.org/wiki/Package_management_system

Die Installation von der Quelle aus kann Vorteile haben

  • Sie können die Binärdateien anpassen (Optionen aktivieren / deaktivieren)
  • Ein aktuelleres Paket ist dann in den Repositories verfügbar
  • Manchmal notwendig für Bugfixes

Die Nachteile sind jedoch, dass Sie das Paket dann manuell aktualisieren müssen, wenn eine neue Version verfügbar ist, und dass Sie häufig den Support verlieren.

IMO, wenn Sie alle oder die meisten Ihrer Pakete kompilieren möchten, würde ich Gentoo raten.

Panther
quelle
1
Um diese hervorragende Antwort zu verdeutlichen, wird Update Manager, wenn Sie sich selbst kompilieren, nicht darüber informiert und aktualisiert Ihre Anwendung daher nicht für Sie, wenn Updates veröffentlicht werden. Apt (Ubuntus ausgewählter Paketmanager) wird ebenfalls nicht kompiliert. es lädt die fertig kompilierten Binärdateien herunter. Schließlich behält apt automatisch Ihr Menüsystem bei, wenn Sie Programme installieren oder entfernen. Wenn Sie manuell kompilieren, müssten Sie das selbst tun.
Paddy Landau
1
Ein weiterer kleiner Vorteil des Kompilierens von Paketen besteht darin, dass sie mit mehr Wissen über Ihre genaue Hardware kompiliert werden und möglicherweise schneller ausgeführt werden. Wenn Sie diesen Weg gehen, sollten Sie checkinstall verwenden. asic-linux.com.mx/~izto/checkinstall Verfolgt, was installiert wurde, und hilft bei Bedarf, es später sauber zu entfernen.
Joe
Ich stehe über den schnelleren Teil korrigiert.
Joe
18

Apt-get ist das APT-Dienstprogramm für die Paketverarbeitung (CLI), Back-End von Synaptic und Aptitude .

Die apt-get- Methode beim Auslösen von Ihrem System überprüft die in der Datei aufgeführten offiziellen Quellen oder Repositorys

etc/apt/sources.list

Zum Beispiel. beim laufen (was ich benutze) läuft sowassudo apt-get update && sudo apt-get upgrade

Bildbeschreibung hier eingeben

Dabei gibt Ign (Ignore) vor dem Link an, dass seit dem letzten Besuch in diesen Repositorys keine Änderungen vorgenommen wurden, und Get gibt an, dass die Quellendatei abgerufen wurde, in der die Änderungen des neu verfügbaren Pakets in diesem Repository angegeben sind.

Nein, apt-get - Dienstprogramm nicht lädt die Quelldatei , es vielmehr lädt das deb - Paket verpackt und freigegeben von dem offiziellen Ubuntu Packagers der für getestet wurde Stabilität und Integration mit Ihrem System.

Die Pakete, die apt-get heruntergeladen hat , finden Sie in

/var/cache/apt

wo Sie alle sehen , Updateswie .deb - Pakete , und Sie können sogar vergleichen ihre Version Cross-Check durch dieses Besuch Precise-Updates Pakete .

Was das Kompilieren aus Quellpaketen betrifft, ist es nicht ratsam und wird nicht einmal für Ubuntu 12.04 empfohlen, da es sich um ein LTS-Release handelt. Die Gründe dafür können Sie hier einsehen

Ist es besser, aus dem Quellcode zu kompilieren oder von einem .deb-Paket zu installieren?

Würde das Kompilieren von Programmen aus dem Quellcode mein Betriebssystem beschleunigen?

Vorteile / Nachteile der Installation aus dem Quellcode

Für weitere Referenzen: apt-get , sources.list .

atenz
quelle
Tatsächlich sind die drei Programme apt-get, aptitude und synaptic Backends fürdpkg
Javier López,
1
Aptitude ist das Frontend für dpkg . Während dpkg als Front-End für dpkg-deb und dpkg-query verwendet werden kann
atenz
2

Wenn Sie aus dem Quellcode erstellen, stehen Ihnen weitere Optionen zur Verfügung. Bei der Installation von wird apt-getnur ein vorgefertigtes Paket installiert.

Was besser ist, hängt davon ab, wofür Sie es brauchen. Ich musste noch nie aus dem Quellcode kompilieren, habe aber auf meinem Ubuntu-Laptop keine umfangreichen Aufgaben.

Corey Whitaker
quelle
Apt-get baut also nichts auf - lädt nur im Wesentlichen eine Binärdatei herunter?
Mathematiker1975
3
Genau. Es wird eine vorgefertigte Binärdatei für Ihre Architektur heruntergeladen (amd64, i386, armel usw.).
tgm4883
2

Ich denke, Sie können apt-get verwenden, um Paketquellen zu installieren.

  1. Sie müssen Quellcode-Repositorys aktivieren

    Öffnen Sie die Datei /etc/apt/sources.list und Sie sehen auskommentierte Zeilen (beginnend mit #), auf denen "source" steht.

    Kommentiere sie aus

  2. Installieren Sie die Abhängigkeiten des gewünschten Programms:

    sudo apt-get build-dep "program"

  3. Laden Sie Ihr Programm herunter und kompilieren Sie es:

    sudo apt-get -b source "program"

Danach erhalten Sie ein DEB-Paket in Ihrem Home-Verzeichnis.

LnxSlck
quelle