In diesem kleinen Handbuch werde ich erklären (und Ihnen beibringen), warum es besser ist, ein Programm (z. B. Firefox, Vlc usw.) aus seinem Quellcode zu kompilieren, als es herunterzuladen (aus dem Software Center, Yumex, Pacman usw.) ) und installieren.
Zuerst gehen wir mit der Theorie:
Was ist "kompilieren"?
Beim Kompilieren wird der Quellcode (Code, der in einer bestimmten Programmiersprache geschrieben ist, z. B. C, C ++ usw.) in ein ausführbares Programm für dessen Betrieb umgewandelt, indem der Prozessor verwendet wird, um die Sprache zu konvertieren, die zum Generieren des Codes in binär und verwendet wird Assembler. Es wird auch oft als Verpackung bezeichnet.
Warum ist es besser zu "kompilieren"?
Zuerst müssen Sie Folgendes wissen, um zu verstehen, warum. Auf "grobe" Weise (einfach, nicht sehr professionell usw.) gesagt, haben jede Rasse (Pentium, Core, Atom usw.) und ihre Prozessorspezies (Intel, AMD, ARM usw.) Anweisungen (in Assembler geschriebene Software) das verarbeitet den Code) ihres Modells (Core i7, Core i5, Atom x2, Phantom x8, Arm usw.) und hat auch allgemeine Anweisungen, die alle ihrer Art haben.
Wenn Sie von den Repositorys über das Software Center / apt-get / Yumex / Yum / Pacman / etc herunterladen, wird dies als automatisch installiertes Programm bezeichnet vorkompiliert für den Betrieb auf allen möglichen Prozessoren (Intel und Amd). Da es sich um ein vorkompiliertes Programm handelt, gehen die für dieses bestimmte Prozessormodell typischen Anweisungen verloren (denken Sie daran, dass ein Programm wie Firefox oder Chrome mit mehr als 7 oder 8 Millionen Codezeilen alle spezifischen Anweisungen für jedes Programm eingeben muss Prozessor auf dem Markt, die Menge an Code wäre so groß, dass dieses Programm nicht mehr effizient wäre) und nichts mehr als die allgemeinen seiner Schöpfermarke (Intel, Amd, Arm) übrig lassen.
Wenn Sie den Quellcode eines Programms selbst herunterladen, dekomprimieren und kompilieren, wird er mit den spezifischen Anweisungen von kompiliert TU Prozessor, (was nicht bedeutet, dass es nicht auf einer Maschine mit einer anderen funktioniert, sondern nur, dass es speziell und rein für Ihren Prozessor optimiert wird.Auf diese Weise wird die gesamte Leistung freigesetzt und freigesetzt, die Ihr Prozessor dank seiner spezifischen Anweisungen liefern kann.
In weiteren technischen Details sind diese spezifischen Anweisungen eng mit dem sogenannten Chipsatz Ihres Motherboards verknüpft. Dies bereitet denjenigen von uns, die Intel haben, große Kopfschmerzen, wenn wir den Prozessor und das Motherboard aktualisieren möchten.
Sie wären überrascht über die Kraft, die Ihr AMD Atom x2 oder du Intel Core im Inneren, 2 Core Duo, i3usw. von Ihrem alten PC. Verstehst du jetzt, warum in der Linux-Welt viel über das Kompilieren des berühmten Kernels (Herz jedes Betriebssystems) geredet wird? Stellen Sie sich vor, Sie kompilieren ein ganzes System (grafische Umgebung (Gnome, Kde usw.), Kernel, häufig verwendete Programme (Firefox, VLC, Chrome, Wine usw.) speziell für Ihren PC) mit der Geschwindigkeit und Optimierungsstufe, die Sie hätten.
Dieses Kompilierungsprinzip, um einen speziell für Ihren Computer optimierten Code zu erhalten, wird von Distributionen wie Gentoo und Derivaten verwendet (worüber ich jetzt nicht sprechen werde, ich verwende Fedora minimal mit der Kompilierung von Gnome 3, dem Kernel und anderen Programmen) System, Ihre Updates und Ihre Programme werden immer kompiliert.
Nachteile der Zusammenstellung:
Ich habe bereits alle Vorteile erklärt, aber wie alles im Universum hat es einen dagegen.
Im Kompilierungsfall sind sie;
- Die dafür benötigte Zeit (Firefox mit einem i7 4790K (ohne Übertaktung, da ich sehr schlecht mit Spannungen umgehen kann) dauert 3 Minuten, Gnome Shell (die Leiste sonst nichts) mit Gnome-Control-Center dauerte ungefähr 2 Minuten, beide wurden kompiliert zur gleichen Zeit in Fedora. Aber auf einer Maschine mit einem weniger leistungsstarken Prozessor kann diese Zeit unverhältnismäßig lang sein.
- Der Prozessor verbraucht maximal 100% seiner Leistung mit allen Kernen, sodass Verbrauch und Hitze sprunghaft ansteigen (berücksichtigen Sie dies, wenn Sie übertakten oder wenn es sich insbesondere um ein Notebook handelt), sodass Sie bequem einen Partner vorbereiten können oder ein Kaffee für den Anlass.
- Möglicherweise fehlt Ihnen eine Bibliothek (Tool), die ein Programm verwendet, damit bei der Kompilierung keine Fehler auftreten. Im Allgemeinen verfügen alle Distributionen über Pakete oder Sätze davon, um dies zu vermeiden (sie sind mit verschiedenen Bibliotheken und anderen Dingen ausgestattet, die es dem Kernel ermöglichen, während des Prozesses ordnungsgemäß mit dem Prozessor zu kommunizieren).
Wie kann ich kompilieren?
Hier spreche ich über das Kompilieren eines Programms für den normalen Gebrauch, nicht eines Kernels.
aptitude install build-essential dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor
Ich habe die Debian-Richtlinie festgelegt, aber wenn Ihre Distribution nicht Debian ist und Sie den Fehler erhalten, dass kein solches Paket vorhanden ist, ignorieren Sie es einfach. Ich muss klarstellen, dass ich diese Systeme schon lange nicht mehr verwendet habe. Wenn sich also ein Paket nicht mehr in den Repositorys befindet, machen Sie sich keine Sorgen.
Für Fedora:
sudo yum -y installiere Kernel-HeaderKernel-Entwicklungsudo yum groupinstall "Entwicklungstools"sudo yum groupinstall "Entwicklungsbibliotheken"
Hier muss ich mich für diejenigen entschuldigen, die Arch (ich kenne die Distribution nicht gut) und OpenSuse verwenden, da ich diese Distributionen oder die entsprechenden Pakete nicht kenne, um eine korrekte Kompilierung durchzuführen (und ich habe nicht bestätigt, was sich im Netzwerk befindet, also Ich weiß nicht, ob sie für diese beiden arbeiten.
Nachdem Sie alle erforderlichen Anforderungen erfüllt haben, müssen Sie nur noch den Quellcode des Programms herunterladen, das Sie kompilieren möchten. Je nachdem, welche Erweiterung Sie über das Terminal entpacken (keine Sorge, ich überlasse Ihnen die Befehle) und Wenn Sie in den Ordner gehen (immer mit dem Terminal), gehen Sie wie folgt vor:
Wenn Sie die Möglichkeit haben, sich selbst zu konfigurieren, um die Komponenten und andere auszuwählen:
./configure
Dann geben Sie ein:
make
Und schließlich, um das Programm unter Linux zu installieren:
make install
Befehle zum Entpacken über das Terminal (die Datei wird in einem Ordner entpackt, in dem sich die Datei befindet):
.Tar-Dateien (tar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pack | tar cvf file.tar / file / * Entpacken | tar xvf file.tar Inhalt anzeigen | tar tvf file.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (Teer mit gzip ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pack und Reißverschluss | tar czvf file.tar.gz / file / Entpacken und entpacken | tar xzvf file.tar.gz Inhalt anzeigen (nicht extrahiert) | tar tzvf file.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimieren | gzip -q Datei (Die Datei komprimiert und benennt sie in "file.gz" um.) Unzip | gzip -d file.gz (Die Datei entpackt sie und belässt sie als "Datei". Hinweis: gzip komprimiert nur Dateien, keine Verzeichnisse
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimieren | bzip2 Datei | bunzip2-Datei (Die Datei komprimiert und benennt sie in "file.bz2" um.) Unzip | bzip2 -d file.bz2 | bunzip2 file.bz2 (Die Datei entpackt sie und belässt sie als "Datei".) Hinweis: bzip2 komprimiert nur Dateien, keine Verzeichnisse
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (Teer mit bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimieren | tar -c Dateien | bzip2> file.tar.bz2 Unzip | bzip2 -dc file.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (aktuelle Versionen von tar) Inhalt anzeigen | bzip2 -dc file.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimieren | zip file.zip / mayo / archives Unzip | Datei entpacken.zip Inhalt anzeigen | entpacke -v file.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimieren | rar -a file.rar / may / archives Entpacken | rar -x file.rar Inhalt anzeigen | rar -v file.rar | rar -l file.rar
Und das ist alles. Grüße aus Buenos Aires, Argentinien. Frohe Feiertage und Neujahr! :).