Gentoo: Warum habe ich mich entschieden, meine eigenen Programme zu kompilieren?

Angesichts der großen Resonanz meines vorherigen Beitrags möchte ich Ihnen etwas mehr über meine Lieblingsdistribution Gentoo Linux erzählen. Ich verspreche, dass dieser Beitrag unterhaltsame Informationen enthält, die Ihnen helfen, ein wenig über die Mythen zu verstehen, die vor den Furchterregenden auftauchen Zusammenstellung von Software. Ich verspreche auch, dass diese Informationen für die nächste Gentoo Linux-Installationsanleitung in ~ 20 Schritten nützlich sein werden (ich habe sie noch nicht gut gezählt, aber ich denke, sie sind noch weniger). Beginnen wir ohne weiteres:

Was wird kompiliert?

Dies ist der Prozess, der von einem Programm (üblicherweise als Compiler bezeichnet) ausgeführt wird, um in menschlicher Sprache geschriebenen Code (C-, C ++ - Dateien usw.) in Code umzuwandeln, der von einer Maschine verstanden werden kann (Binärcode). Schauen wir uns das folgende Beispiel an:

Eigenes Design, Christopher Díaz Riveros

Dies ist unser kleines C-Programm (wenn Sie später weitere C-Tutorials wünschen, zeige ich Ihnen auch gerne, wie wenig ich in dieser Zeit gelernt habe). Nun wollen wir sehen, wie die Ausgabe nach dem Kompilieren aussieht.

Eigenes Design, Chrirstopher Díaz Riveros

Schön, nicht wahr? 🙂 Dies ist, was unsere Maschine versteht, um jedes Mal, wenn das Programm ausgeführt wird, dieses kleine "Hallo" in unser Terminal schreiben zu können.

Der Erstellungsprozess:

Da es sinnlos ist, ein Programm zu haben, das ein einfaches "Hallo" auf dem Bildschirm druckt, gibt es in Projekten (wie in allen Programmiersprachen) eine Fülle von .c- und .h-Dateien. Um den Kompilierungsprozess ein wenig zu vereinfachen, wurden neue Tools angezeigt. Am repräsentativsten ist der Befehl um.

Make nimm eine Datei Makefile In einigen Fällen erfordert dieser Schritt die Ausführung einer aufgerufenen Datei, um zu kompilieren, was zum Erstellen der endgültigen ausführbaren Datei erforderlich ist configure in der Lage zu sein, einige Variablen zuzuweisen, die der Compiler benötigt, um eine nützliche Datei zu kompilieren (die Redundanz zu verzeihen).

Aus diesem Grund finden wir in vielen Tutorials die folgenden Schritte:

Besitzen. Christopher Diaz Riveros

Die Magie von ./configure:

Um Ihnen eines der verborgensten und unterhaltsamsten Geheimnisse des Quellcodes zu zeigen, gehen wir zum Quellcode eines Programms, das wir alle perfekt kennen. sudo. Zuerst die üblichen Schritte, aber ich werde bei aufhören . / Configure  um ihnen etwas Besonderes zu zeigen.

Besitzen. Christopher Diaz Riveros

Dies wird eine lange Liste von Optionen zurückgeben, unter denen ich Ihnen die zeigen werde, die meine Aufmerksamkeit am meisten auf sich zieht.

Besitzen. Christopher Diaz Riveros

--with-insults... kompiliert sudo mit, wie der Name schon sagt Missbrauch 😀 ist eine unterhaltsame Funktion, mit der Sie dem Benutzer jedes Mal eine Beleidigung senden können, wenn er einen Fehler in seinem Passwort macht. Wofür ist das? Nun, vor nicht allzu langer Zeit 😛 aber macht einen Punkt klar. Es gibt Tausende von Optionen, die in den meisten Distributionen nicht standardmäßig verfügbar sind.

Wie Sie sind, gibt es viele andere, die möglicherweise in Binärcode-Distributionen aktiv sind und die Sie niemals verwenden werden, oder es wird einige geben, die Sie benötigen, aber sie werden nicht mit Ihrer offiziellen verteilten Binärdatei geliefert, was impliziert, dass jedes Update durchgeführt wird Handbuch.

Holen Sie sich den Spaß auf Gentoo:

Wir haben bereits gesehen, wie viele Optionen mit vorkompilierten Programmen fehlen oder gezogen werden können. Aber jetzt konzentrieren wir uns ein wenig auf das vorkompilierte Problem.

Eigenschaften:

Haben Sie sich jemals gefragt, warum neue Maschinen im Vergleich zu weniger modernen nur ein bisschen schneller aussehen? Wenn der Prozessor besser ist, gibt es mehr RAM, alles ist besser, warum nicht schneller gehen? Die Antwort ist einfach ... Zusammenstellung.

Nehmen wir ein sehr praktisches Beispiel.

Meine Programme werden mit der Option kompiliert --march=broadwell... Dies liegt daran, dass mein Prozessor Broadwell ist (Intel i7). Der Nachteil? Kein Prozessor vor Broadwell kann diese Binärdatei erkennen. An dieser Stelle sollten Sie es sehr deutlich sehen, wenn ich mit einem kompiliere -März  Insbesondere funktionieren alle oben genannten Funktionen nicht. Wie unterstützen Binärpakete so viele Hardwaretypen? Einfach, sie kompilieren mit der geringstmöglichen Option. Dies garantiert, dass alle Arten von Hardware sie lesen können (zumindest aus Kompatibilitätsgründen).

Das eigentliche Problem ... wenn Sie Programme verwenden, die für i3 kompiliert wurden ... Die gesamte Leistung Ihres i7 (oder seiner jeweiligen AMD-Analogien) wird verschwendet !! Ist das nicht traurig? 🙁

Flexibilität:

Da Gentoo-Entwickler sehr schlau sind, wurde dieser gesamte Prozess von tar, ./configure, make usw. durch die Leistung von ersetzt Portage. Alle diese merkwürdigen Einstellungen wurden in USE-Flags umbenannt. Wenn Sie also eine bestimmte Einstellung wünschen, müssen Sie den Quellcode nicht eingeben, sondern nur die Variable festlegen. Hier ist ein Beispiel, wie man es mit sudo in portage macht. Zuerst werden wir sehen, mit welchen Optionen wir in unserer aktuellen Konfiguration haben Equery.

Besitzen. Christopher Diaz Riveros

Wie wir sehen können, sind die roten Optionen aktiviert, die blauen nicht. Jeder kann die Legende lesen 🙂

Angenommen, ich möchte eine Option hinzufügen ...

Besitzen. Christopher Diaz Riveros

So einfach wie das Hinzufügen einer Zeile in einer aufgerufenen Datei sudo (der Name ist referentiell) innerhalb /etc/portage/package.use/. Wenn wir sudo das nächste Mal installieren, wird uns mitgeteilt, dass es mit aktivierter Option neu kompiliert wird.

Besitzen. Christopher Diaz Riveros

Wenn wir geben, JAAlles, was Sie tun müssen, ist ein bisschen zu warten und voila - so einfach ist das.

Abschließende Gedanken:

Nun, wir haben bereits gesehen, wie einfach es ist, zusätzliche Funktionen in Gentoo zu handhaben, mit denen wir Optionen in unseren Lieblingsprogrammen hinzufügen, entfernen oder ändern können. Wir haben auch gesehen, wie die Leistung unserer Programme stark von den Variablen abhängt, mit denen wir sie kompilieren. Wenn Sie eine sehr neue Maschine haben, ist Gentoo die beste Option. Wenn Sie eine sehr alte Maschine haben, ist Gentoo auch Ihre Option (obwohl das Kompilieren eine Weile dauert, sind die endgültigen Programme viel leichter).

Ich werde in Kürze meine Gentoo-Installationsanleitung schreiben, sowohl für SystemD-Liebhaber als auch für OpenRC-Abenteurer (ich verwende systemd mit GNOME). Ein weiterer großer Vorteil von Gentoo ist übrigens die Fähigkeit dazu wählen alles in Ihrem System, und wenn ich sage, ist alles ALLES.

Wenn du meinen ersten Beitrag verpasst hast, ist hier der Link:

Gentoo Linux: Die Geschichte einer Reise

Grüße,


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Mart sagte

    Großartig! Ich werde auf die Gentoo with Gnome-Installationsanleitung warten. Vielleicht werde ich ermutigt, auf Gentoo zu migrieren, auch wenn ich noch einen etwas alten PC habe (Intel Core i5 3. Generation). Prost!

    1.    Chrisadr sagte

      Schon bald hat mich Mart Ganó dazu gebracht, mehr Dinge zu teilen, also habe ich einen weiteren Beitrag geschrieben, der darauf wartet, veröffentlicht zu werden, aber sehr bald 🙂 Ich verspreche es

  2.   Norden sagte

    Ich denke, ich werde hier viele Posts über meine Lieblings-Linux-Distribution sehen o!!
    Ich bin seit 2005 in Gentoo, wo ich damit einen Mailserver an der Universität eingerichtet habe, an der ich studiert habe (und an der ich jetzt arbeite), und obwohl ich sporadische Distrohopping-Angriffe erlitten habe, kehre ich immer mit meinem lieben Gertroodis zurück ( zuerst mit Gnome2, dann mit Xfce und jetzt mit openbox) und wie Sie in Ihrem vorherigen Beitrag kommentieren, mit zunehmenden Fähigkeiten und Kenntnissen, um es zu optimieren
    Ich werde auf deine nächsten Beiträge, Grüße und Danke warten, dass du meinen Tag gemacht hast = D!

    1.    Chrisadr sagte

      Nun, der nächste kommt heraus - es ist wie ein unterhaltsames Gespräch über mein Lieblingsthema, der nächste kommt bald und der nächste und der nächste - Grüße und vielen Dank für Ihren Kommentar

  3.   Sieger sagte

    Ich bin seit Jahren zwischen Distributionen gesprungen und habe darüber nachgedacht, meine zu kompilieren…. Dieser Leitfaden wird der Schritt sein, den ich vermisst habe… während ich mich mit dem Handbuch unterhalten werde. Danke für alles……

    1.    Chrisadr sagte

      Nun, das Handbuch ist ein Paradies der Information, es gibt einfach alles - ich kann nur mein kleines Sandkorn beisteuern -, aber sehr bald kommt der nächste Beitrag heraus und bald wird der herauskommen (ich sehe es bereits wird durchaus erwartet) ~ 20 Schritte Installationsanleitung. Prost,

      1.    Sieger sagte

        Was für ein Gentleman, dem Sie mir von Anfang an keine Zeit gegeben haben, über die verschiedenen Mikroprozessoren zu sprechen, und der Leitfaden ist hier !!!!! Dieses Ende von mir hat es zum ERSTEN vermasselt! !!! Millionen von Dank !!!!

  4.   Sojabohnenöl sagte

    Knoppix, Mandrake, Ubuntu und Debian ... und immer an Gentoo denken ...

    Warten auf diese 20 Schritte!

    1.    Chrisadr sagte

      Hahaha, es ist wie ein Traum, nicht wahr? 🙂 Ich sage, es ist Zeit, dies zu verwirklichen 😉 Grüße

  5.   Cool wie Eis sagte

    Hallo ChrisADR, zuerst möchte ich Ihnen sagen, dass ich seit Ihrem ersten Artikel über Gentoo nicht mehr gut geschlafen habe, und es hängt mit diesem neuen Artikel zusammen. Meine Träume basieren darauf, ein Gentoo auf meinem alten Aspire One Netbook zu kompilieren. In meinem Traum sagt mir das System, dass mein Netbook sehr alt ist und die Hardware nicht erkennt.
    Auf der anderen Seite erwähnten sie, als ich ein Gentoo sah und es meine Aufmerksamkeit erregte, die Leistung, die es dem Computer (Computer) bot. Seit diesem Tag habe ich mir gesagt, dass ich es eines Tages installieren würde, mehr als 10 Jahre sind vergangen und ich habe es nicht getan, vielleicht weil sie mir sagten, dass es sehr schwierig ist, es zu installieren, zu dieser Zeit war ich fast Anti-Linux so erhöhten sie meine Beschwerde darüber. Die Neugier ging jedoch weiter. Einmal habe ich erfolglos versucht, ein BSD auf meinem Netbook zu installieren, und mir wurde gesagt, dass Gentoo ein Linux ist, das BSD sehr ähnlich ist.
    Was empfehlen Sie mir, um Gentoo auf meinem alten Aspire One mit altem Atom-Compiler zu installieren?

    und vielen Dank für Ihre Artikel, auf die ich immer wieder warte

    1.    ChrisADR sagte

      Nun, ich empfehle Ihnen ... TUN SIE ES! Und schließlich, wenn es am Ende fehlschlägt (was ich sehr bezweifle, weil der Kernel alle Arten von Hardware unterstützt), haben Sie eine äußerst bereichernde Erfahrung in der Linux-Welt gemacht - Sie haben Ihren Kernel kompiliert, haben Sie Wenn Sie Ihr Dateisystem von Grund auf neu gemountet haben, haben Sie Konfigurationen vorgenommen, die nur wenige in ihrem Leben vornehmen. Dies gibt Ihnen eine neue Perspektive auf die Welt. Hahaha. Wenn Sie mein Unix- und StackExchange-Profil nicht sehen können, decken meine Antworten die breite Palette von Linux dort ab Das liegt daran, dass ich durch das Wissen um Gentoo viele Dinge über Linux erfahren konnte. Ich lasse Ihnen hier den Link meines Profils

      https://unix.stackexchange.com/users/246185/christopher-d%C3%ADaz-riveros?tab=profile

      Haben Sie keine Angst, und wenn am Ende alles gut läuft (es wird sicherlich ein wenig kosten), wird es eine Errungenschaft für Ihr Buch sein 😉 Grüße

  6.   Esteban sagte

    Ich denke auch darüber nach, nach Gentoo zu migrieren, aber ich habe einige Zweifel. Wie aktuell sind die Pakete für Arch? Auf der anderen Seite verfügt mein Laptop über einen eingebauten Akku, und wir alle wissen, wie sich übermäßige Hitze ständig auf Akkus auswirkt. Und da ich viel Zeit damit verbringen würde zu kompilieren ...

    1.    ChrisADR sagte

      Nun, die Wahrheit konnte Ihnen nicht sicher sagen, welches mehr Rolling Release ist. Was ich Ihnen mit Sicherheit sagen kann, ist, dass Gentoo zwei Zweige hat: den "stabilen" und den "nicht stabilen", obwohl der "nicht stabile" den haben muss Die meisten Pakete auf dem neuesten Stand der Technik, ich habe viele bekannte Entwickler, die es in ihrem Alltag ohne Komplikationen verwenden. Viele davon sind für die Arbeit mit den Git-Repositories des Projekts vorgesehen, daher gibt es nichts Aktuelleres. Ich persönlich benutze den "stabilen" Zweig, aber dies liegt insbesondere an meiner Arbeit innerhalb der Community als Sicherheitskoordinator und als Mitglied der Testteam (Arch Tester). Wenn Sie für diesen Job keine "stabile" Version benötigen würden, wären Sie mit "nicht stabil" sicherlich auf dem neuesten Stand der Technik.
      Ich weiß nicht, ob es Ihre Frage beantwortet, aber ich hoffe zumindest, dass es Ihre Aufmerksamkeit genug erregt, um es zu versuchen ards Grüße

  7.   Kostenloser Quijote sagte

    Die Wahrheit ist, dass du mich dazu bringst, 😉 zu wollen
    Ich bin sehr interessiert an dem, was Sie über C-Tutorials sowie über Python angegeben haben, und ich würde mich freuen, wenn Sie ein verstecktes Juwel für ungeschickte Großeltern haben.
    Um Ihnen ein paar Haken zu geben und mit all meinem Respekt, da ich glaube, dass der Inhalt wichtiger ist als der Kontinent, aber wie ich ein bisschen pingelig mit der Sprache bin, werde ich Ihnen etwas sagen.
    Sie sagen am Anfang:
    "Kompilierung ist der Prozess, den ein Compiler ausführt, um in menschlicher Sprache geschriebenen Code zu verwenden und ihn in Code umzuwandeln, der von einer Maschine verstanden werden kann."
    Meiner Meinung nach ist es nicht korrekt, das, was in der Definition definiert ist, aufzunehmen, da Sie zum Definieren der Kompilierung den Begriff Compiler einschließen. So etwas wäre also korrekter gewesen:
    Kompilierung ist der Prozess, mit dem ein Programm aus einer in einer Sprache (C, C ++) geschriebenen Textdatei eine vom Computer ausführbare Datei erhält.

    1.    ChrisADR sagte

      Ihr Beitrag scheint mir richtig zu sein. Ich nehme ihn auf, um zu versuchen, ihn in seiner Essenz zu behalten und diese Informationen hinzuzufügen. Vielen Dank.

  8.   Double D. sagte

    Ich verwende Ubuntu 16.04. Meinst du, ich sollte zu Gentoo wechseln? Was wären die Vorteile von Gentoo gegenüber Ubuntu?

    1.    ChrisADR sagte

      Nun, ich weiß es wirklich nicht. Es hängt davon ab, was Sie mit Ihrer Ausrüstung oder der Hardware tun werden oder ob Sie die Zeit (und den Wunsch) haben, den Umgang mit Gentoo zu lernen. Ich würde Ihnen sagen, wenn Sie Zeit haben und wollen, können Sie vorwärts gehen! und Sie werden sehen, dass Sie auf dem Weg viel lernen werden 😉
      Grüße

  9.   Fernan sagte

    Hola:
    Wenn die Wahrheit ist, dass Gentoo viel zu lesen hat, erstellen Sie beispielsweise ein Emerge-PV-Paket und erhalten Verwendungen in Rot, Blau und Grün sowie mögliche Sperren, die Änderungen der Verwendung erfordern, Demaskieren von Paketen und Slot-Änderungen was von den anderen Paketmanagern angezeigt.
    Ich nehme an, dass Gentoo jeden Tag aktualisiert werden muss. Wenn Sie es für 1 Monat verlassen, wird es Zeit, herauszufinden, wie es behoben werden kann.
    Grüße.

    1.    ChrisADR sagte

      Ja, hehe, zuerst flutet es ein bisschen - aber mit der Zeit werden Sie vertraut und Sie kommen sogar zu dem Punkt, warum Sie in keinem anderen Paketmanager so viel Flexibilität haben - in Bezug auf die Zeit kenne ich Leute, die das gleiche haben Der Server läuft jahrelang ohne Aktualisierung und bleibt als erster Tag absolut fest. Für diejenigen, die seit Jahren (nicht Monaten) dort sind, gibt es einen speziellen Abschnitt im Wiki, in dem mögliche Lösungen für das Problem beschrieben werden:

      https://wiki.gentoo.org/wiki/Upgrading_Gentoo/es#Actualizar_sistemas_antiguos

      In Bezug auf Aktualisierungen hat mich das direkte Erkennen von Sicherheitsproblemen möglicherweise dazu veranlasst, eine neue Perspektive einzunehmen. Die tägliche Aktualisierung ist jedoch etwas, das unabhängig von der Verteilung normalerweise nicht mehr als zwei Befehle in allen Verteilungen und in Gentoo erfordert Vermeiden Sie nicht nur eine gute Angewohnheit, sondern auch lange Wartezeiten, wenn alle Pakete angesammelt sind.
      Grüße

  10.   Fernan sagte

    Hola:
    In binären Distributionen verwende ich Manjaro und bevor ich Ubuntu verwende, ist es einfach zu aktualisieren. Ich überprüfe jeden Tag, ob es Updates gibt. Es ist das erste, was ich mir anschaue, aber in Manjaro hat mir das Aktualisieren normalerweise keine relevanten Probleme bereitet Sagen Sie Pacman, dass ja zu allem und höchstens die Signaturen aktualisieren oder sogar eine Datei löschen müssen. Aber nach dem, was ich in Gentoo gelesen habe, ist die Terminologie manchmal schwer zu verstehen, was Portage sagt.
    Grüße.

    1.    ChrisADR sagte

      Sagen Sie, wenn nie alles gut ist, fernan. Wenn Sie GNU / Linux erreicht haben, sollten Sie es wissen und verstehen. Nun, nichts zu sehen, es ist einfach Brauch, mit der Zeit merkt man, dass Rot das ist, was man hat, Blau, was man nicht hat, Grün, was man hinzufügen wird und das war's :). Ich muss nie etwas ändern, um es zu aktualisieren, wenn ich es richtig konfiguriert habe, um es zu starten. Gelegentlich füge ich USE-Flags hinzu oder entferne es. Es ist jedoch üblich, nach dem Lesen der Liste Y von yes zu geben, um zu wissen, was getan wird 🙂
      PS: pacman -Syy ist dasselbe wie emer--Sync
      Pacman -Suy ist dasselbe wie emer -uD @world (das -av ist nur ausführlich und fragt Sie, bevor Sie fortfahren. Dies ist unnötig, wenn Sie Ihr Team kennen und wissen, was Sie tun, aber ich habe es vermieden Probleme später 😉) Ich sehe es nicht so schwer, mich zu erinnern 🙂

      Grüße

  11.   Mauricio Lopez sagte

    Hervorragend Ihre Artikel, sowohl der vorherige als auch dieser. Ich habe Zweifel und es ist, wie viel Geschwindigkeit Sie zwischen Arch oder Manjaro und Gentoo gewinnen. Unabhängig von der Anpassung und dem Lernen an sich lohnt sich die Installation.
    Eine andere Frage, die ich habe, ist, wie ich mit den Fahrern umgehen soll. Dies hat mir Probleme in Arch bereitet.

    1.    ChrisADR sagte

      Hallo Mauricio,
      Nun, ich habe nie aufgehört, zwischen den beiden zu vergleichen, und in Wirklichkeit ist es eine sehr zweideutige Frage, abhängig von der von Ihnen verwendeten Software und der Ausrüstung, die Sie haben. Dies kann von wenig oder gar nichts bis viel variieren. Zumindest für heute funktionieren beide Systeme für mich recht gut, was ich brauche, um sie zu verwenden. (Ich habe ein Haupt-Gentoo und einen Arch, die ich von Zeit zu Zeit verwende.) Normalerweise verwende ich es für die Virtualisierung und Programmbearbeitung (normalerweise jedoch über das Terminal, sodass in einer IDE nicht viel Speicher benötigt wird. Chrome unterstützt mich auf völlig ruhige Weise mehr als 40 Tabs (das habe ich immer wieder versucht, obwohl ich im Allgemeinen nur maximal 5 für längere Zeit geöffnet habe.
      Wenn Sie es eines Tages wagen, es zu versuchen, sagen Sie mir, wie es gelaufen ist 🙂

      Da Sie den Kernel nach Belieben steuern, sind die meisten "allgemeinen" Treiber für die Treiber installierbar oder zumindest verwaltbar. Bei sehr spezialisierter Hardware (insbesondere der wenig kompatiblen mit Linux im Allgemeinen) ist es vermutlich der gleiche Job wie in vielen anderen Distributionen. Ich habe nicht viel spezialisierte Hardware, daher kann ich nicht viel dazu sagen 🙂

      Grüße und Glück

  12.   Jeanpier subero sagte

    Was sind deine sozialen Netzwerke ChirsADR?