Installation machen Ubuntu. Ubuntu Make – um Entwicklern zu helfen. Laden Sie die Kernel-Quellen herunter

💖 Gefällt es dir? Teilen Sie den Link mit Ihren Freunden

Die Quintessenz ist, dass dieser Befehl in der Form „ make installieren„ oder „sudo make install“ können auf modernen Distributionen nicht verwendet werden.

Aber die Autoren der Programme schreiben in den Installationshandbüchern, dass man diesen Befehl verwenden muss, könnte man sagen. Ja, sie schreiben. Aber das bedeutet nur, dass sie nicht wissen, welche Distribution Sie haben oder ob es überhaupt eine Distribution ist. Vielleicht sind Sie einer Sekte beigetreten und haben beim Lesen von LFS geraucht und haben sich nun entschieden, ihre Kreation für Ihr chthonisches System zu kompilieren. Und make install ist eine universelle, wenn auch oft falsche Methode, dies zu tun.

Lyrischer Exkurs

Wie Sie wissen, muss die meiste Software für den normalen Betrieb nicht nur kompiliert, sondern auch korrekt auf dem System installiert werden. Programme erwarten, dass sie die benötigten Dateien an bestimmten Orten finden, und diese Orte sind auf den meisten *nix-Systemen zur Kompilierungszeit fest in den Code einprogrammiert. Abgesehen von diesem Aspekt besteht der Hauptunterschied zwischen dem Installationsprozess unter Linux/Freebsd/was auch immer und dem unter Windows und MacOS darin, dass das Programm nicht einfach eine Reihe von Dateien in einem separaten Verzeichnis in „Programme“ oder „/Anwendungen“ ablegt, sondern „verbreitet“. verteilt sich im gesamten Dateisystem. Bibliotheken gehen zu lib, ausführbare Dateien zu bin, Konfigurationen zu etc, verschiedene Arten von Daten zu var und so weiter. Wenn Sie es plötzlich aktualisieren müssen, muss das alles zuerst irgendwie bereinigt werden, denn... verwenden neue Version Dateireste der alten Datei können zu völlig unvorhersehbaren Folgen führen, oft nicht gut. Die Wahrscheinlichkeit dieses Ereignisses ist nicht so hoch, aber benötigen Sie es auf einem Produktionsserver?

Na und?

Wenn Sie also die Installation direkt über make install durchgeführt haben, ist es höchstwahrscheinlich normal, die Software zu entfernen oder zu aktualisieren Du kannst nicht. Darüber hinaus ist es höchstwahrscheinlich möglich, eine neue Version über die alte zu installieren überschreibt Ihre Änderungen in den Konfigurationen. make install macht genau das, was man ihm sagt: Es installiert Dateien an den richtigen Stellen und ignoriert dabei die Tatsache, dass dort bereits etwas vorhanden ist. Nach diesem Vorgang ist es absolut unmöglich, Informationen darüber, was wo platziert wurde, in verdaulicher Form zu erhalten. Manchmal unterstützt das Makefile natürlich die Deinstallationsaktion, aber das kommt nicht so häufig vor und es ist keine Tatsache, dass es richtig funktioniert. Darüber hinaus ist das Speichern des entpackten Quellbaums und der Build-Regeln für die Deinstallation irgendwie seltsam.

Wie man kämpft?

Da Pakete in Distributionen manchmal aktualisiert werden, haben sie zur Lösung dieses Problems so etwas wie einen Paketmanager entwickelt. Bei der Verwendung läuft die Installation etwa so ab:
  1. Es wird ein auf eine bestimmte Weise gebildetes Archiv entnommen
  2. Daraus werden Informationen darüber extrahiert, um was es sich handelt, um welche Version es sich handelt, wovon es abhängt, womit es in Konflikt steht, ob zum Installieren/Deinstallieren/Konfigurieren die Ausführung von Skripts erforderlich ist usw.
  3. Direkte Installationsschritte werden ausgeführt
  4. Alle Daten darüber, wo und was geliefert wurde, werden zur Paketmanager-Datenbank hinzugefügt.

In diesem Fall können Sie beim Aktualisieren problemlos unnötige Dinge entfernen und gleichzeitig sehen, ob sich die als Konfiguration markierten Dateien im System geändert haben, und fragen, was zu tun ist, wenn ihr Inhalt in der neuen Version anders ist. Darüber hinaus erlaubt Ihnen der Paketmanager nicht, die Dateien eines Pakets bei der Installation eines anderen zu überschreiben. Im Allgemeinen sehr viel nützliche Dinge er kann es tun.

Wenn Sie aus Unwissenheit/Faulheit make install aus den Anweisungen kopiert und eingefügt haben, dann Es erscheinen Dateien auf dem System, von denen der Paketmanager nichts weiß. Mit allem, was es bedeutet, wenn Ihnen das, was zuvor aufgeführt wurde, nicht ausreicht.

Was zu tun ist?

Sie können den Quellbaum natürlich so konfigurieren, dass alles irgendwo in /opt/mycoolapp/ installiert ist, und ihn dann bei Bedarf manuell löschen, aber hier können viele unangenehme Dinge ans Licht kommen, angefangen damit, dass die Das Programm erwartet, dass es Ihre Bibliotheken laden kann, und der Lader weiß nichts über das Verzeichnis, in dem sie sich befinden. Dies endet damit, dass der Programmautor dies erwarten kann, wenn er beispielsweise eine Datei beispielsweise in $prefix/share ablegt /xsessions/, dann wird der Display-Manager es übernehmen. Ganz zu schweigen von den Pfaden für pkgconfig und so weiter.

Sie müssen das Paket also abholen.

Ich habe keine Zeit, mich damit herumzuschlagen, ich mache besser noch einmal „make install“, alles ist einfach und klar!

Beruhige dich. Er ist an unsere Beine gefesselt. Alles ist nicht so beängstigend und kompliziert, wie es auf den ersten Blick scheint.
checkinstall
Wenn dieses wunderbare Dienstprogramm anstelle von make install gestartet wird, stellt es mehrere Fragen und erstellt und installiert anschließend das Paket. Das ist alles, wenn Sie aktualisieren, werden Sie keine Probleme damit haben, alten Müll zu beseitigen.
Erstellen Sie das Deb-Paket manuell
Wenn Sie nicht geneigt sind, einer solchen Automatisierung zu vertrauen (was manchmal immer noch zu Problemen führt) oder ein paar Änderungen vornehmen möchten, aber immer noch zu faul sind, sich mit dem normalen Prozess der Paketerstellung auseinanderzusetzen, können Sie das Paket manuell zusammenstellen. Ich stelle eine Möglichkeit vor, es für Debian-basierte Systeme zu erstellen, da ich mit ihnen am besten vertraut bin. Es ist ideologisch nicht korrekt, aber die Ausgabe ist ein völlig korrektes Paket ohne die Verwendung zusätzlicher Entitäten. Dies geschieht wie folgt.
Zuerst stellen wir die Software mit den Parametern --prefix=/usr und --exec-prefix=/usr zusammen, die für configure oder autogen.sh vorab angegeben wurden.
Als nächstes installieren wir es in einem temporären Verzeichnis. Wir schreiben:

Fakeroot make install DESTDIR=`pwd`/tempinstall
Danach erhalten wir den gesamten Dateisatz im neu erstellten Verzeichnis. Wir befinden uns jetzt übrigens in einer Fakeroot-Umgebung, d. h. Sie können den Eigentümer und die Zugriffsrechte von Dateien ohne Einschränkungen ändern, bleiben aber physisch Eigentümer des Systems. Die Software innerhalb der Fakeroot-Sitzung erhält geänderte Informationen, wodurch Dateien mit den richtigen Rechten archiviert werden können.
Als nächstes erstellen Sie ein DEBIAN-Verzeichnis im „Paketstamm“ und fügen eine Liste aller Dateien, die in /etc abgelegt werden sollen, in DEBIAN/conffiles ein:

Cd tempinstall mkdir DEBIAN finden etc | sed "s/^/\//" > DEBIAN/conffiles
Anschließend erstellen wir eine DEBIAN/control-Datei mit folgendem Inhalt:

Bei Bedarf können Sie dort auch preinst-, postinst-, prerm- und postrm-Skripte erstellen.

Das war's, wir führen dpkg -b tempinstall aus und die Ausgabe ist tempinstall.deb, das Sie mit dpkg -i korrekt installieren, aktualisieren oder entfernen können.

Der „richtige“ Prozess beim Vorverpacken Quellcode liegt außerhalb des Rahmens dieses Hinweises und wird daher nicht beschrieben, ist für Ihre Zwecke jedoch in der Regel nicht erforderlich.

Abschluss

Wie Sie sehen, gibt es hier absolut nichts Kompliziertes, aber die Befolgung dieser Schritte erspart Ihnen in Zukunft eine Vielzahl von Problemen.

Hallo zusammen!

Dies ist eine kurze Anmerkung für Linux-Anfänger darüber, was diese drei wunderbaren Befehle bedeuten und wofür sie benötigt werden. Fangen wir, wie man sagt, von vorne an. Die meisten Programme müssen vor der Verwendung kompiliert werden, das heißt, sie müssen einen Text, den eine Person verstehen kann, in eine Reihe von Einsen und Nullen umwandeln, die ein Computer verstehen kann. Der Prozess gliedert sich in drei Phasen: Konfiguration, Montage und Installation. Details unter dem Schnitt :)

./konfigurieren

Dieser Befehl sucht nach Bibliotheken und Header-Dateien, die für die Kompilierung erforderlich sind (dies gilt für Programme, die teilweise oder vollständig in C/C++ und ähnlichen Sprachen geschrieben sind), sowie zum Festlegen spezieller Parameter oder zum Anschließen spezieller Bibliotheken, falls erforderlich ./konfigurieren wird alles finden, was er braucht, er wird erschaffen Makefiles- Datei, die zum Erstellen des Programms erforderlich ist

Sie können die Konfiguratorparameter mithilfe der Schlüssel und Argumente derselben Schlüssel konfigurieren, zum Beispiel:

./configure --prefix=/opt/my_program

Mit einem Schlüssel --prefix= Sie können ein Verzeichnis angeben, das später als Präfix für Ihr Programm dient (also das Stammverzeichnis). Dies liegt daran, dass es nicht nur in der Linux-Welt eine spezielle Hierarchie des Dateisystems (HFS) gibt, nach der jedes Programm kompiliert und installiert werden muss, um fehlerfrei zu funktionieren.

Es gibt drei Hauptdateisystempräfixe, für die die meisten Programme konfiguriert sind, nämlich:

  • / - Stammverzeichnis des Betriebssystems, sogenanntes ROOT
  • /usr – Verzeichnis, in dem sich Benutzerumgebungsanwendungen befinden
  • /usr/local – zusätzliches Verzeichnis für Benutzerprogramme, manuell gesammelt, insbesondere damit das Betriebssystem nicht zur Mülldeponie wird

Wenn Sie eines dieser Verzeichnisse öffnen, sehen Sie eine sehr ähnliche Struktur, zumindest gibt es Ordner: bin usw., include, libs, sbin.

Wenn du läufst ./konfigurieren ohne Schlüssel, dann lautet das Standardpräfix (Verzeichnis, in dem das kompilierte Programm installiert wird). /usr/local Denken Sie daran: Wenn Sie Ihr Programm nicht ausführen können, haben Sie möglicherweise nicht den Pfad dazu WEG.

Außer dem Schlüssel --Präfix Im Konfigurator gibt es in der Regel viele weitere Schlüssel, die Sie alle sehen können, wenn Sie Folgendes ausführen:

./configure --help

machen

Der wichtigste und einfachste Befehl/Programm startet den Kompilierungsvorgang der Anwendung aus dem Quellcode. Für deine Arbeit dieses Programm verwendet spezielle Dateien Makefiles, die detailliert den Prozess der Anwendungserstellung mit allen Parametern beschreiben, die wir dem Konfigurator angegeben haben. Das Ergebnis eines erfolgreichen Make-Befehls ist ein kompiliertes Programm im aktuellen Verzeichnis.

make installieren

Dieser Befehl installiert die Anwendung direkt in dem in der Konfigurationsphase angegebenen Verzeichnis; nach Ausführung des Befehls make install können Sie das neu installierte Programm ausführen.

Nachwort

Um nicht drei Befehle nacheinander zu schreiben, können Sie diese in einer Zeile schreiben:

./configure && make && make install

&& - Dies ist der AND-Operator, der aus der Sprache C/C++ stammt. Aus Sicht der Shell bedeutet er jedoch, dass der nächste Befehl nur ausgeführt werden muss, wenn der vorherige Befehl erfolgreich abgeschlossen wurde. Dies ist sehr praktisch, wenn einer ausgeführt wird einer der Etappen endet mit einem Fehler.

Tatsächlich kann make install auch einen Build ausführen, da die Installationsaufgabe von der gesamten Aufgabe abhängt (dh die Anwendung direkt erstellt). Dies bedeutet, dass der Make-Schritt übersprungen werden kann und nur zwei Befehle ausgeführt werden können, wenn Sie sie schreiben in einer Zeile:

./configure && make install

Viel Erfolg! Und danke fürs Lesen!

Und auch andere Systeme müssen installiert werden zusätzliche Programme. IN Betriebssysteme Unter Windows ist alles ganz einfach, in der Regel gibt es einen Installer namens setup.exe, der bei der Installation der Software hilft. Aber unter Linux sind die Dinge etwas anders. Wie installiere ich Programme unter Linux? Schauen wir uns nun diese Frage an.

Linux verfügt über mehrere Arten von Installationspaketen und jede Distribution hat ihr eigenes Paketformat. Verwendung der Distributionen Fedora, Mandriva, Red Hat und Suse Standardinstallation für Linux RPM, entwickelt von Red Hat. Die RPM-Paketdatei wird normalerweise benannt Programmname-Version.rpm.

Ein weiteres sehr beliebtes Format ist DEB. Wird in Debian, Ubuntu, Knoppix und Mepis verwendet. Hat einen Namen Programmname-Version.deb.

Und wir gingen zu den Archiven. Normalerweise sind dies die Erweiterungen .tar, .tar.gz und .tgz. Sie sollten entpackt und dann installiert/kompiliert werden.

Sie müssen den Programminstallationsvorgang als Superuser durchführen.

Schnelle Navigation

Installieren von Programmen unter Debian, Ubuntu

Es gibt viele Tools für die Arbeit mit DEB-Paketen, am häufigsten wird jedoch apt-get verwendet, das im Standard-Toolsatz enthalten ist. Um die Anwendung zu installieren, geben Sie den folgenden Befehl ein:

apt-get install Paketname

Zum Entfernen:

apt-get entfernt Paketname

APT speichert eine lokale Datenbank aller zur Installation verfügbaren Pakete und Links zu den Bezugsquellen. Diese Datenbank muss von Zeit zu Zeit mit dem folgenden Befehl aktualisiert werden:

apt-get-Update

Um veraltete Pakete (Programme) auf dem Computer zu aktualisieren, geben Sie die folgenden Befehle ein:

apt-get update ; apt-get upgrade

Installieren von Programmen auf Fedora, Red Hat

Ein APT-ähnliches Dienstprogramm ist yum. Um das Paket aus dem konfigurierten Repository herunterzuladen und zu installieren, schreiben Sie den Befehl:

Lecker, installiere Paketname

Lecker, entferne Paketname

Die lokale Yum-Datenbank wird nicht gespeichert, sodass keine Aktualisierung erforderlich ist. Um Updates zu installieren, verwenden Sie den folgenden Befehl:

Leckeres Update

Wählen Sie etwas Bestimmtes zum Aktualisieren aus:

Lecker, aktualisiere Paketname

Programme in Mandriva installieren

Mandriva verfügt über einen eigenen Satz an Tools zum Arbeiten mit Paketen, genannt urpmi. Zum Installieren:

urpmi-Paketname

Löschen:

urpme-Paketname

Aktualisieren Sie die lokale Datenbank mit der Liste der Pakete:

urpmi. aktualisieren -a

So installieren Sie Updates:

urpmi --auto-select

Programme aus Archiven (Tarballs) installieren

Für mit GZIP komprimierte Archive (gz, gz2 usw.) gehen wir folgendermaßen vor:

tar -xvz f Dateiname

Bei mit BZIP komprimierten Archiven (bz, bz2 usw.) ist das etwas anders:

tar -xvjf Dateiname

Tar-Befehle:

  • x – Dateien aus dem Archiv extrahieren;
  • v – detaillierte Anzeige von Informationen auf dem Bildschirm;
  • f – Erforderliche Option. Wenn nicht angegeben, versucht Tar, Band statt Datei zu verwenden;
  • z – mit gzip komprimiertes Prozessarchiv;
  • j – Verarbeiten Sie ein mit bzip komprimiertes Archiv.

Nach Ausführung des Befehls wird ein Ordner mit einem Namen erstellt, der dem Namen des Pakets ähnelt. Dann müssen Sie diesen erstellten Ordner mit dem Befehl öffnen:

CD-Ordnername

Lesen Sie anschließend im entpackten Archiv die Anweisungen in der README-Datei, falls vorhanden. Wenn das Programm als ausführbare Datei kompiliert wird, enthält das Paket in jedem Fall eine .sh-Datei, die normalerweise install.sh heißt

Material von der Bryansk Linux Users Group und www.rm.pp.ru

Jede Distribution hat ihre eigenen Besonderheiten für die Assemblierung des Kernels und dieser Artikel konzentriert sich speziell auf die Vorgehensweise in Debian Etch. Es stellt sich auch die Frage, wie ein bestimmter Patch auf den Kernel angewendet werden kann, wenn Unterstützung für bestimmte Funktionen oder neue Geräte in Ihrem System benötigt wird. Der Artikel richtet sich in erster Linie an besser geschulte Benutzer und es gibt keine Garantie dafür, dass diese Methode ordnungsgemäß funktioniert und alle beschriebenen Maßnahmen und die Verantwortung bei Ihnen liegen.

  1. Notiz
  2. Anwenden von Patches
  3. Kernel-Konfiguration
  4. Kompilieren des Kernels
  5. Installieren eines neuen Kernels
  6. Probleme
  7. Links

Notiz

Es werden zwei Methoden zum Zusammenstellen des Kernels beschrieben. Die erste Option wird zum Zusammenstellen von .deb-Paketen beschrieben, die auf Ihrem oder einem anderen System installiert werden können. Die zweite Methode ist die sogenannte „traditionelle“ Methode.

Methode eins. Erstellen des Kernels in .deb-Paketen

Installieren der erforderlichen Pakete zum Kompilieren des Kernels

Aktualisieren wir zunächst die Paketlisten:

# apt-get update

Lassen Sie uns die Pakete installieren, die wir benötigen:

# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

Laden Sie die Kernel-Quellen herunter

Gehen Sie in das Verzeichnis /usr/src, gehen Sie zu www.kernel.org und wählen Sie die gewünschte Kernel-Version aus. In diesem Fall wird die Version linux-2.6.23.1.tar.bz2 berücksichtigt. Herunterladen:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2

Packen wir die Quellen aus und erstellen einen symbolischen Link:

# tar xjf linux-2.6.23.1.tar.bz2 # rm linux (den vorherigen Symlink entfernen) # ln -s linux-2.6.23.1 linux # cd /usr/src/linux

Anwenden von Patches

Tun Sie dies nicht optional oder unnötig!

Manchmal sind Treiber oder Tools erforderlich, die im vorhandenen Kernel nicht unterstützt werden, beispielsweise Virtualisierungstechnologie oder andere Besonderheiten, die in der aktuellen Version nicht enthalten sind. In jedem Fall kann dies durch die Anwendung sogenannter Patches (sofern vorhanden) behoben werden.

Nehmen wir also an, Sie haben den erforderlichen Patch (nennen wir ihn beispielsweise patch.bz2) nach /usr/src heruntergeladen. Wenden wir den heruntergeladenen Patch auf unsere Quellen an (Sie müssen sich immer noch im Verzeichnis /usr/src/linux befinden):

# bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch.bz2 | Patch -p1

Der erste Befehl ist nur ein Test und es werden keine Änderungen an den Quellen vorgenommen. Wenn nach dem ersten Befehl keine Fehler ausgegeben wurden, können Sie den zweiten Befehl ausführen, um den Patch anzuwenden. Auf keinen Fall sollten Sie den zweiten Befehl ausführen, wenn nach dem ersten Fehler generiert wurden!

Auf diese Weise können Sie Patches auf die Kernel-Quellen anwenden. Beispielsweise gibt es einige Funktionen, die nur im Kernel 2.6.23.8 verfügbar sind, und der Quellcode enthielt nicht die erforderliche Funktionalität, aber Patch-2.6.23.8.bz2 wurde veröffentlicht. Sie können diesen Patch auf Kernelquellen der Version 2.6.23 anwenden, jedoch nicht auf 2.6.23.1 oder 2.6.23.3 usw. Mehr dazu können Sie hier lesen:

Präfixe (Prepatches) – äquivalent zu Alpha-Releases; Patches müssen auf die Quellen der vollständigen Vorgängerversion mit einer dreistelligen Version angewendet werden (z. B. kann Patch 2.6.12-rc4 auf die Quellen der Version 2.6.11 angewendet werden, nicht jedoch auf Version 2.6.11.10).

Das heißt, wenn wir Kernel 2.6.23.8 erstellen wollen, müssen wir die Quellen der Version 2.6.23 herunterladen (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23). .tar.gz) wird in der zweiten Methode auf „traditionelle“ Weise angewendet!

Wenden Sie Patch-2.6.23.8.bz2 auf Kernel 2.6.23 an:

# cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.22.8.bz2 # cd /usr/src/linux # bzip2 -dc /usr/ src/patch-2.6.23.8.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch-2.6.23.8.bz2 | Patch -p1

Kernel-Konfiguration

Es ist eine gute Idee, eine vorhandene zu verwenden Konfigurationsdatei funktionierenden Kernel und für den neuen. Daher kopieren wir die bestehende Konfiguration nach /usr/src/linux:

# make clean && make mrproper # cp /boot/config-`uname -r` ./.config # make menuconfig

Danach wird es geladen grafisches Menü Kernel-Konfigurationen. Wählen Sie im Konfiguratormenü den Punkt „Eine alternative Konfigurationsdatei laden“ und klicken Sie auf „OK“. Nehmen Sie dann (falls erforderlich) die erforderlichen Änderungen an der Kernel-Konfiguration vor, indem Sie durch das Menü navigieren (Details zur Kernel-Konfiguration finden Sie unter www.google.com). Wenn Sie fertig sind und auf „Beenden“ klicken, wird die Frage „Möchten Sie Ihre neue Kernel-Konfiguration speichern?“ gestellt, die Sie mit „Ja“ beantworten können.

Kompilieren des Kernels

Der Aufbau des Kernels erfolgt in nur zwei Befehlen:

# make-kpkg clean # fakeroot make-kpkg --initrd --append-to-version=-cybermind kernel_image kernel_headers

Nach --append-to-version= können Sie einen beliebigen Namen schreiben, dieser muss jedoch mit einem Minuszeichen (-) beginnen und darf keine Leerzeichen enthalten.

Das Kompilieren und Erstellen von .deb-Paketen kann ziemlich lange dauern. Alles hängt von der Kernelkonfiguration und den Fähigkeiten Ihres Prozessors ab.

Lösung des Problems beim Erstellen von initrd.img

Kürzlich ist in Debian ein Fehler aufgetreten, bei dem nach der Installation von Paketen mit Kerneln, die mit der hier beschriebenen Methode zusammengestellt wurden, die entsprechende Datei /boot/initrd.img nicht erstellt wird. Um das Problem bei einem bereits installierten Kernel zu beheben, müssen Sie initrd.img manuell erstellen:

update-initramfs -c -k<полная-версия-ядра>

Um das Problem „für die Zukunft“ zu lösen, kommentieren Sie wie gezeigt die zweite der unten zitierten Zeilen in der Datei /etc/kernel/postinst.d/initramfs-tools aus:

# Kernelpaket übergibt ein zusätzliches Argument; Hack, um nicht unter Kernel-Paket #[ -z "$2" ] || zu laufen Ausgang 0

Installieren eines neuen Kernels

Wenn der Kernel-Build erfolgreich abgeschlossen ist, werden zwei .deb-Pakete im Verzeichnis /usr/src erstellt:

# cd /usr/src # ls -l

linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb – der eigentliche Kernel selbst und linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb – Header Kernel, die zum Erstellen anderer Module benötigt werden (z. B. beim Erstellen von Modulen). nVidia-Treiber). Installieren Sie sie:

# dpkg -i linux-image-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb # dpkg -i linux-headers-2.6.23.1-cybermind_2.6.23.1-cybermind-10.00.Custom_i386.deb

(Diese Pakete können jetzt auf einem anderen System installiert werden und müssen nicht erneut erstellt werden.)

Damit ist die Installation abgeschlossen, das Bootloader-Menü, die Installation einer neuen RAM-Disk und des Kernels erfolgt automatisch. Jetzt bleibt nur noch ein Neustart:

# neu starten

Methode zwei. „traditionelle“ Art und Weise

Alle oben beschriebenen Punkte führen wir VOR dem Punkt „Kernel Compilation“ durch.

# make all # make module_install # make install

Wie üblich kann der Build je nach Kernel-Konfiguration und Prozessorleistung lange dauern.

Der Hauptnachteil dieser Methode besteht darin, dass sich bei häufigem Aktualisieren von Kerneln nach einer Weile eine große Anzahl davon ansammelt und Sie die ungenutzten Kernel entfernen möchten. Um dies zu vereinfachen, können Sie den Kernel und andere im System installierte Dateien mit den Befehlen „make module_install“ und „make install“ zu einem Deb-Paket (oder besser gesagt zu zwei ab Kernel 2.6.27) zusammenstellen, ähnlich dem erste Methode, aber wir verwenden Folgendes: Hier sind die Skripte des Kernels selbst:

# alles machen # deb-pkg machen

Zwei .deb-Dateien werden im Verzeichnis eine Ebene über dem Quellverzeichnis angezeigt. Ich habe den Kernel im Verzeichnis /usr/src/linux-2.6.27.10 zusammengestellt und die Dateien erschienen im Verzeichnis /usr/src/

# linux-2.6.27.10_2.6.27.10-1_amd64.deb # linux-firmware-image_2.6.27.10-1_all.deb

Der Kernel wird mit dem Befehl installiert

# dpkg -i linux-2.6.27.10_2.6.27.10-1_amd64.deb

Alte Kerne können beispielsweise aus Synapsen entfernt werden

Nächste Schritte

Der Kernel wurde kompiliert und installiert, aber jetzt müssen Sie eine RAM-Disk erstellen (ohne die der Kernel einfach nicht booten kann) und den GRUB-Bootloader aktualisieren. Gehen Sie dazu wie folgt vor:

# depmod 2.6.23.1 # apt-get install yaird

Installieren Sie die RAM-Disk:

# mkinitrd.yaird -o /boot/initrd.img-2.6.23.1 2.6.23.1

Lassen Sie uns den Bootloader einfach und schmerzlos aktualisieren:

# update-grub

Das war's, der Bootloader und der neue Kernel sind bereit, es bleibt nur noch ein Neustart:

# neu starten

Probleme

Wenn der von Ihnen ausgewählte neue Kernel nach dem Neustart nicht geladen wird, starten Sie ihn neu und wählen Sie Ihren vorherigen Kernel aus. Anschließend können Sie versuchen, den gesamten Vorgang erneut durchzuführen, um einen funktionierenden Kernel zu erstellen. Vergessen Sie in diesem Fall nicht, die Zeilen des nicht funktionierenden Kernels in /boot/grub/menu.lst zu löschen.

Oft sind die benötigten Pakete nur im Quellcode zu finden; dieser Artikel beschreibt eine Methode zum Installieren eines Pakets aus dem Quellcode.

Auspacken

Programme werden normalerweise in gepackten Archiven verteilt, das sind Dateien mit den Erweiterungen

.tar.gz (manchmal .tgz) .tar.bz2

Sie müssen den Unterschied zwischen einem Archivierer und einem Packer verstehen.

Das Programm dient der Archivierung von Verzeichnissen und Dateien Teer; Das Ergebnis seiner Arbeit ist eine Datei mit der Erweiterung .Teer. Grob gesagt handelt es sich hier um eine Kopie Dateisystem- Verzeichnisse und Dateien mit ihren Attributen und Zugriffsrechten, zusammengefasst in einer Datei.

Diese Datei ist etwas größer als die Gesamtgröße der archivierten Dateien. Aus diesem Grund (oder vielleicht auch aus einem anderen Grund) verwenden sie Packer – Programme, mit denen Sie die Dateigröße reduzieren können, ohne Daten zu verlieren.

Programm Teer kann auspacken, also kein Anruf nötig gunzip, oder Sie sagen es einfach dem Programm Teer dass die Datei zunächst entpackt werden muss. Zum Beispiel der Befehl

tar -xvf< some_app_name>.tar.gz

wird sofort entpackt und entpackt. Unterschied zwischen Dateien und Erweiterungen

.tar.gz

.tar.bz2

nur, dass unterschiedliche Packer verwendet wurden, das Programm Teer bestimmt die Komprimierungsmethode automatisch und es sind in diesem Fall keine zusätzlichen Optionen erforderlich.

Nach dem Entpacken müssen Sie in das resultierende Verzeichnis gehen; alle unten beschriebenen Befehle werden im Verzeichnis mit dem Quellcode des Pakets ausgeführt.

CD< имя_пакета>*

Erstellen des Pakets

Um Programme in GNU/Linux zu erstellen, verwenden Sie (meistens) das Programm machen, das Anweisungen ausführt Makefile, aber da es viele GNU/Linux-Distributionen gibt und diese alle unterschiedlich sind, müssen Sie zum Erstellen des Programms für jede Distribution separat die Pfade angeben, in denen sich die Bibliotheken und Header-Dateien befinden. Programmierer können nicht jede Distribution studieren und für jede separat erstellen Makefile. Deshalb haben sie Konfiguratoren entwickelt, die das System „studieren“ und entsprechend den gewonnenen Erkenntnissen erstellen Makefile. Aber sie hörten nicht beim Konfigurator auf und entwickelten Konfiguratoren über Konfiguratoren ... da hörten sie auf

Zum Erstellen benötigen wir Compiler: Sie werden in den Paketabhängigkeiten angegeben Build-essentiell, es reicht also aus, es mit allen Abhängigkeiten zu installieren. Immernoch gebraucht Autoconf Und Automarke.

Um also etwas aus dem Quellcode zu erstellen, müssen Sie zunächst einen Konfigurator erstellen. Wie der Konfigurator erstellt wird, ist in der Datei configure.in beschrieben. Um den Konfigurator zu erstellen, müssen Sie ihn ausführen

./ Bootstrap ./ autogen.sh

Wenn im Archiv keine derartigen Skripte vorhanden sind, können Sie die folgenden Befehle nacheinander ausführen:

aclocal autoheader automake --gnu --add-missing --copy --foreign autoconf -f -Wall

Alle diese Befehle verwenden die Datei configure.in. Nach der Ausführung dieser Befehle wird eine Datei erstellt konfigurieren. Danach müssen Sie den Konfigurator ausführen, um das Vorhandensein aller Abhängigkeiten zu überprüfen, zusätzliche Build-Optionen zu installieren (falls möglich) und das Installationsergebnis anzuzeigen (optional – möglicherweise nicht vorhanden).

./ konfigurieren

Der Konfigurator erstellt auf Basis der gewonnenen Erkenntnisse und der Datei ein Makefile makefile.am. Sie können dem Konfigurator die in den Programmquellen bereitgestellten Optionen übergeben, mit denen Sie bestimmte Programmfunktionen aktivieren/deaktivieren können; normalerweise können Sie diese mit dem Befehl herausfinden

./ configure --help

Es gibt auch eine Reihe von Standardoptionen, wie z

Präfix=

Gibt an, welches Verzeichnis für die Installation verwendet werden soll. Normalerweise für Ubuntu

--prefix =/ usr --prefix =/ usr/ local

OHNE Schrägstrich am Ende! Jetzt können Sie mit dem Befehl den Prozess der Programmerstellung selbst starten

machen

Genug Privilegien zum Bauen regelmäßiger Benutzer. Das Ende des Builds kann als der Moment betrachtet werden, in dem die Befehle in der Konsole nicht mehr „zufällig“ ausgeführt werden und es kein Wort gibt Fehler. Jetzt ist alles kompiliert und bereit zur Installation.

Installation

Aufwand für Korrekte Installation Sie werden sich künftig bei einer Deinstallation oder Aktualisierung der installierten Software mehr als amortisieren.

Korrekte Installation (Option Nr. 1)

Installation mit dem Dienstprogramm checkinstall. Installieren:

sudo apt-get install checkinstall

Minus diese Methode: checkinstall versteht nicht alle Quellen, da der Programmautor spezielle Installationsskripte schreiben kann und checkinstall werde sie nicht verstehen.

Um ein Deb-Paket zu erstellen und zu installieren, müssen Sie es ausführen

sudo checkinstall

Richtige Installation (Option Nr. 2)

Erstellen Sie schnell manuell ein Deb-Paket.

Hauptunterschied zu vorherige Methode In diesem Fall erstellen Sie das Paket manuell und verfolgen alle von Ihnen vorgenommenen Änderungen. Diese Methode eignet sich auch für Sie, wenn die Quellen die Erstellung des Pakets nicht unterstützen checkinstall.

    Wir installieren in einem temporären Verzeichnis, wo wir den gesamten Satz installierter Dateien erhalten:

fakeroot make install DESTDIR=`pwd`/tempinstall

    Erstellen wir ein DEBIAN-Verzeichnis im „Paketstamm“ und fügen wir eine Liste aller Dateien, die in /etc abgelegt werden sollen, in DEBIAN/conffiles ein:

cd tempinstall mkdir DEBIAN find etc | sed "s/^/\//" > DEBIAN/conffiles

    Anschließend erstellen wir eine DEBIAN/control-Datei mit folgendem Inhalt:

Paket: Paketname Version: 1.2.3 Architektur: amd64/i386/armel/all Betreuer: Sie können Ihren Namen eingeben, Sie können ihn verschrotten, aber wenn Sie ihn leer lassen, wird dpkg schwören. Hängt davon ab: Hier können Sie eine Liste von Paketen eingeben durch Kommata abgetrennt. Priorität: optional Beschreibung: Sie müssen außerdem etwas eingeben, damit es keine Warnungen gibt

    Bei Bedarf können Sie dort auch preinst-, postinst-, prerm- und postrm-Skripte erstellen.

    Wir erstellen ein Deb-Paket, für das wir Folgendes ausführen:

dpkg -b tempinstall

    Die Ausgabe ist tempinstall.deb, die wir installieren

sudo dpkg -i tempinstall.deb

Installation (Option Nr. 3)

Falsche Installation

Der Nachteil dieser Methode besteht darin, dass Sie das Paket höchstwahrscheinlich nicht normal entfernen oder aktualisieren können, wenn Sie es direkt über make install installieren. Darüber hinaus wird die Installation einer neuen Version über die alte höchstwahrscheinlich Ihre Änderungen in den Konfigurationen überschreiben. make install macht genau das, was man ihm sagt: Es installiert Dateien an den richtigen Stellen und ignoriert dabei die Tatsache, dass dort bereits etwas vorhanden ist. Nach diesem Vorgang ist es absolut unmöglich, Informationen darüber, was wo platziert wurde, in verdaulicher Form zu erhalten. Manchmal unterstützt das Makefile natürlich die Deinstallationsaktion, aber das kommt nicht so häufig vor und es ist keine Tatsache, dass es richtig funktioniert. Darüber hinaus müssen Sie den entpackten Quellbaum speichern und Regeln für die Deinstallation erstellen.

Zur Installation müssen Sie Folgendes tun

sudo make install

Um ein mit dieser Methode installiertes Paket zu entfernen, müssen Sie es im Stammverzeichnis der Programmquellen ausführen (wo Sie make install ausgeführt haben).

sudo make deinstallieren

Fehler

Oftmals meldet der Konfigurator in der Konfigurationsphase, dass eine bestimmte Bibliothek fehlt. Der gemeldete Bibliotheksname stimmt nicht immer mit dem Paketnamen in Ubuntu überein. Aus eigener Erfahrung kann ich Ihnen raten, Synaptic nach dem erforderlichen Paket zu durchsuchen, mit Ausnahme des lib-Präfixes. Wenn Sie mehrere Pakete finden, die sich durch das Präfix -dev im Namen unterscheiden, müssen Sie das -dev-Paket installieren (normalerweise). beinhaltet auch ein Nicht-Entwicklungspaket). Sie können auch mit http://packages.ubuntu.com/ suchen, indem Sie den Bibliotheksnamen in die Suche nach Paketinhalten eingeben. Wenn Sie dev und non-dev finden, benötigen Sie beide. Na ja, oder suchen Sie einfach bei Google.

Erforderliche Software

Pakete mit mm am Ende der Beschreibung sind Pakete für C++-Programme. Liste für BMPX, aber für fast jedes GTK2/Gnome-Programm geeignet. Wenn Sie es also nicht zusammenbauen können, schauen Sie sich diese Liste an und vergleichen Sie sie mit dem, was Sie installiert haben.

Kompilieren:Laufzeit:
Xlibx11-devlibx11-6
GlibMMlibglibmm-2.4-devlibglibmm-2.4-1c2a
GTK+libgtk2.0-dev,gtk-doc-toolslibgtk2.0-0
GTKMMlibgtkmm-2.4-devlibgtkmm-2.4-1c2a
Lichtunglibglade2-devlibglade2-0
GladeMMlibglademm-2.4-devlibglademm-2.4-1c2a
XMLlibxml2-devlibxml2
XML++libxml++2.6-devlibxml++2.6c2a
DBuslibdbus-1-dev,libdbus-glib-1-devlibdbus-1-2,libdbus-glib-1-2
Alsalibasound2-devlibasound2
HALlibhal-dev,libhal-storage-devlibhal1,libhal-storage1
Gaminlibgamin-devlibgamin0
Neonlibneon25-devlibneon25
TagLiblibtagc0-devlibtagc0
Startup-Benachrichtigunglibstartup-notification0-devlibstartup-notification0
Schublibboost-dev,libboost-filesystem-devlibboost-filesystem1.33.1
MusicBrainzlibmusicbrainz4-devlibmusicbrainz4c2a
GStreamerlibgstreamer0.10-dev,libgstreamer-plugins-base0.10-devlibgstreamer0.10-0,libgstreamer-plugins-base0.10-0


Freunden erzählen