it-swarm.com.de

So kompilieren und installieren Sie Programme aus dem Quellcode

Dies ist ein Problem, das meine Freude an Linux wirklich einschränkt. Wenn sich die Anwendung nicht in einem Repository befindet oder kein Installationsskript enthält, habe ich wirklich Probleme, wo und wie eine Anwendung aus dem Quellcode installiert werden kann.

Im Vergleich zu Windows ist es einfach. Sie müssen (so ziemlich) eine Installationsanwendung verwenden, die die gesamte Arbeit in einem Assistenten erledigt. Mit Linux ... nicht so sehr.

Haben Sie Tipps oder Anweisungen dazu oder gibt es Websites, auf denen explizit erklärt wird, wie, warum und wo Linux-Programme von der Quelle installiert werden sollen?

42
Nitrodist

Normalerweise verfügt das Projekt über eine Website mit Anweisungen zum Erstellen und Installieren. Google dafür zuerst.

Zum größten Teil werden Sie entweder:

  1. Laden Sie einen Tarball (tar.gz- oder tar.bz2-Datei) herunter, bei dem es sich um eine Version einer bestimmten Version des Quellcodes handelt
  2. Extrahieren Sie den Tarball mit einem Befehl wie tar zxvf myapp.tar.gz für einen gezippten Tarball oder tar jxvf myapp.tar.bz2 für einen bzipped Tarball
  3. cD in das oben erstellte Verzeichnis
  4. lauf ./configure && make && Sudo make install

Oder:

  1. Verwenden Sie git oder svn oder was auch immer, um den neuesten Quellcode aus dem offiziellen Quell-Repository abzurufen
  2. cD in das oben erstellte Verzeichnis
  3. lauf ./autogen.sh && make && Sudo make install

Sowohl configure als auch autogen.sh akzeptieren ein --prefix-Argument, um anzugeben, wo die Software installiert ist. Ich empfehle das Auschecken Wo soll ich Software ablegen, die ich selbst kompiliere? , um Ratschläge zu erhalten, wo am besten benutzerdefinierte Software installiert werden kann.

24
Sandy

Ich möchte nur hinzufügen, dass es Paketmanager gibt, die Pakete aus dem Quellcode kompilieren und alle Paketabhängigkeiten, Flags usw. behandeln.

In BSD-Systemen ist es ports: Verwenden der Ports-Sammlung

In Debian kann der apt-get - Paketmanager auch vom Quellcode aus installiert werden: APT HOWTO: Arbeiten mit Quellpaketen (Gleiches gilt für Ubuntu, Linux-Mint und alles andere, was auf Debian basiert)

Die Gentoo-Distribution verwendet den Paketmanager portage, der das gesamte System nur aus dem Quellcode kompiliert: Portage Introduction .

Slackware kann Pakete kompilieren, aber ich weiß nicht, ob es dafür einen Paketmanager gibt .. =)

Wie auch immer, Sie können Pakete immer manuell kompilieren, wie oben von Sandy erwähnt =) Außerdem muss es möglich sein, apt-get Oder portage Paketmanager in jeder anderen Distribution zu verwenden ...

4
holms

Ich denke, es ist am besten, die Dokumentation zu lesen, die mit dem spezifischen Programm oder der Anwendung geliefert wird, die Sie installieren möchten. Normalerweise befinden sich Readmes/READMEs in den Tarballs (dem Anwendungsquellenarchiv, das Sie normalerweise herunterladen können) oder sogar INSTALLIEREN von Dateien, um zu lesen und zu erfahren, wie diese Anwendung bevorzugt installiert wird. Kurz gesagt: RTFM;)

2
reiche

Eine Zusammenfassung zur Verwendung der Ports-Sammlung in FreeBSD:

Port suchen

Die Ports sind nach Kategorien organisiert. Wenn Sie also nicht wissen, in welcher Kategorie sich der Port befindet, müssen Sie ihn zuerst finden:

cd /usr/ports
make search name=myport

Manchmal gibt es auf diese Weise zu viele Einträge. Ich persönlich bevorzuge:

find /usr/ports -name myport* -print -depth 2

Verwenden Sie bei der Suche den *, Da häufig mehrere Versionen eines Ports verfügbar sind. Das Tiefenargument stellt sicher, dass Ihre Rückgabeergebnisse nicht unnötig mit Übereinstimmungen überfüllt sind, die Sie wahrscheinlich nicht wollen.

Konfiguration

Oft möchten Sie eine Konfiguration vornehmen. Software wie Apache und Postgres benötigen dies praktisch. Es gibt drei Hauptoptionen: Befehlszeile, Umgebung und Konfigurationsdateien erstellen. So beginnen Sie mit der Befehlszeile:

make showconfig

dadurch werden die Standardkonfigurationsoptionen aufgelistet. Wenn Ihnen die Standardeinstellungen gefallen, können Sie sie kompilieren und installieren. Wenn nicht,

make config

daraufhin wird ein Dialogfeld angezeigt, in dem Sie die gewünschten Optionen auswählen können. (Verwechseln Sie sich nicht mit diesem und make configure, Das Ihren Port mit den von Ihnen gewählten Optionen konfiguriert!) Dies ist häufig ausreichend, aber für einige Software wie Apache ist oft eine komplexe Konfiguration, die ein einfacher Dialog nicht handhaben kann. Zu diesem Zweck sollten Sie sich auch die Makefiles ansehen, die Ihnen manchmal einige zusätzliche Ziele für make geben, die Ihnen weitere Informationen geben. So setzen Sie das Apache-Beispiel fort

make show-modules
make show-options
make show-categories

gibt Ihnen Informationen zum Einrichten der von Ihnen ausgewählten Module, Thread-Optionen und dergleichen. Wenn die Standardeinstellungen Ihres Ports größtenteils in Ordnung sind und Sie nur einige Dinge ändern möchten, können Sie auch einfach Schlüssel-Wert-Paare wie Umgebungsvariablen übergeben:

make MYVBL1=MYVAL1 ... install clean

Sie können die Schalteroptionen auch über die Option -D Festlegen:

make -D MYVAR -D MYOTHERVAR ... install clean

Bei komplexen Konfigurationen funktioniert die Befehlszeile jedoch nicht gut und Sie sind besser. Keine der beiden ersten Methoden ist effektiv. In diesem Fall können Sie eine Konfigurationsdatei erstellen und diese mit der Variablen __MAKE_CONF an make übergeben. FreeBSD verfügt über eine Standardkonfigurationsdatei: /etc/make.conf, Die normalerweise Informationen zu zuvor installierten Ports und anderen Systemeinstellungen enthält. Erstellen Sie zunächst eine Datei mit Ihren Portoptionen, nennen Sie sie ~/myport.mk Und kombinieren Sie diese Datei mit /etc/make.conf:

cat /etc/make.conf ~/myport.mk >> ~/make.myport.conf

sie können dann Ihre Konfiguration überprüfen:

make showconfig __MAKE_CONF=~/make.port.conf

und wenn alles gut aussieht:

make install clean __MAKE_CONF=~/make.myport.conf

IN ACHT NEHMEN! Wenn Sie Ihre Konfigurationseinstellungen nach make configure Oder einer Installation ganz oder teilweise anpassen müssen, müssen Sie unbedingt zuerst Ihre Konfiguration löschen :

make rmconfig

Andernfalls kommt es zu unerwarteten Interaktionen zwischen dem Ports-Subsystem, den make-Standardeinstellungen Ihres Ports und der gewünschten Konfiguration.

Das ist eine Menge für eine Zusammenfassung, aber die Komplexität der Konfiguration hängt hauptsächlich von der App ab, nicht vom Port. Bash zum Beispiel hat eigentlich keine Optionen.

Installation

Dies ist der einfache Teil:

make install clean

oder du kannst

make build
make install
make clean

das ist nur mehr tippen.

Das wars so ziemlich. Natürlich können Sie noch mehr tun, z. B. Abhängigkeiten und Konfigurationsoptionen rekursiv auflisten, mit Patches aktualisieren und so weiter. Hier verweise ich Sie auf den Abschnitt Ports des Handbuchs , die Manpage des Port-Subsystems (gute Informationen zu zusätzlichen Make-Zielen) und die Manpage make .

1
gvkv

Vor kurzem habe ich begonnen, "Checkinstall" zu verwenden, wenn ich von einer Quelle außerhalb meines Paketmanagers installiere. Es erstellt ein "Paket" aus einem Tarball eines Drittanbieters, das dann über Ihre Paketmanager-Tools installiert und verwaltet (und deinstalliert) werden kann.

Lesen Sie diesen Artikel - http://www.linuxjournal.com/content/using-checkinstall-build-packages-source

0
aryeh