Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Kleine Programme selbst kompilieren

1 view
Skip to first unread message

Thomas Wildgruber

unread,
Feb 7, 2012, 10:36:20 AM2/7/12
to
Hi Group,

um einem Azubi den Dreisatz "configure - make - make install" näher zu
bringen, suche ich kleine Beispiele, welche sich dafür eignen, nicht allzu
lange am make rumbastelt und sich ggf auch wieder leicht entfernen lassen.
Was wo nicht ellenlange Abhängigkeiten aufzulösen sind etc (Debian
Squeeze)...

Vielleicht auch ein Link zu einer verständlichen Erklärung des Dreisatzes,
weil ich zugeben muss, ihn auch nicht wirklich erklären zu können. Ich habe
das bislang einfach so hingenommen und nicht weiter hinterfragt. Und was
man dann so im Internet findet ist für einen Azubi erstmal zuviel. Es
würden die Grundfunktionen der einzelnen Schritte genügen.

Für jeden Hinweis und jede Unterstützung dankbar

Bye Tom
--
"Manches Gewissen ist nur rein, weil es nie benutzt wurde" (Robert Lembke)

Dirk Thierbach

unread,
Feb 7, 2012, 11:27:17 AM2/7/12
to
Thomas Wildgruber <excp...@web.de> wrote:
> um einem Azubi den Dreisatz "configure - make - make install" näher zu
> bringen, suche ich kleine Beispiele, welche sich dafür eignen, nicht allzu
> lange am make rumbastelt und sich ggf auch wieder leicht entfernen lassen.
> Was wo nicht ellenlange Abhängigkeiten aufzulösen sind etc (Debian
> Squeeze)...

> Vielleicht auch ein Link zu einer verständlichen Erklärung des Dreisatzes,
> weil ich zugeben muss, ihn auch nicht wirklich erklären zu können. Ich habe
> das bislang einfach so hingenommen und nicht weiter hinterfragt. Und was
> man dann so im Internet findet ist für einen Azubi erstmal zuviel. Es
> würden die Grundfunktionen der einzelnen Schritte genügen.

Kurzerklaerung:

configure: Ein Skript, dass das System und die vorhandenen Bibliotheken
untersucht, und mit diesen Informationen Makefiles (und ggf. andere Dateien)
erstellt. Nebenbei kann man auch noch das eine oder andere einstellen
(Pfade, An/Abschalten von Features), deshalb der Name.

make: Standardtool unter Unix, um mehrere Programmdateien eines Projektes
zu uebersetzen, und schliesslich ausfuehrbare Dateien, Bibliotheksdateien
usw. zu bekommen. "man make" erzaehlt mehr.

make install: "install" ist ein "Ziel" (target) im Makefile, dass
die erzeugten letztlich benoetigten Dateien installiert.

Eines der am haeufigsten verwendeten Systeme, um ein "configure"-Skript
herzustellen, sind die "Autotools". Viele, viele Einzelheiten in der
Doku zu denselbigen.

Kleine Beispiele musst Du selbst suchen. Schau Dich halt mal auf
Sourceforge, Github etc. nach kleineren Projekten um. Meist kann man
der Beschreibung oder der groesser des Downloads schon etnehmen, ob's
eine groessere Sache ist oder eher etwas kleineres.

- Dirk

Michael Baeuerle

unread,
Feb 7, 2012, 12:02:11 PM2/7/12
to
Dirk Thierbach wrote:
>
> Kleine Beispiele musst Du selbst suchen. Schau Dich halt mal auf
> Sourceforge, Github etc. nach kleineren Projekten um. Meist kann man
> der Beschreibung oder der groesser des Downloads schon etnehmen, ob's
> eine groessere Sache ist oder eher etwas kleineres.

Das Makefile sollte auch ein "uninstall" Target haben, dann ist fuer das
Entfernen nur ein:
---------------------
make uninstall
---------------------
noetig.


Micha

Thomas Bächler

unread,
Feb 7, 2012, 12:52:24 PM2/7/12
to
Am 07.02.2012 16:36, schrieb Thomas Wildgruber:
> um einem Azubi den Dreisatz "configure - make - make install" näher zu
> bringen

Man sollte diesen "Dreisatz" niemandem näher bringen, sondern Leute
davon abhalten ihn zu benutzen.

> suche ich kleine Beispiele, welche sich dafür eignen, nicht allzu
> lange am make rumbastelt und sich ggf auch wieder leicht entfernen lassen.

Genau deshalb. Es lässt sich nichts "leicht entfernen", wenn es per
"make install" in das System geknallt wurde.

> Was wo nicht ellenlange Abhängigkeiten aufzulösen sind etc (Debian
> Squeeze)...

Wenn du wirklich was beibringen willst, dann zeige ihm, wie man .deb's
baut (oder .rpm's, oder beides). Dann hat er wirklich was fürs Leben
gelernt und deine Systeme sind nicht völlig vermüllt.

Dirk Thierbach

unread,
Feb 7, 2012, 12:54:36 PM2/7/12
to
Michael Baeuerle <michael....@stz-e.de> wrote:
> Das Makefile sollte auch ein "uninstall" Target haben, dann ist fuer das
> Entfernen nur ein:
> ---------------------
> make uninstall
> ---------------------
> noetig.

Und wenn es schon um die Verwaltung der Installationen geht: Das Zeug
gehoert praktischerweise nach /usr/local, damit's keinen Krach mit
Paketen von der Distri gibt, also beim Aufruf von configure passenden Pfad
setzen. Beim configure von Autotools geht das mit --prefix=...

Ich habe gute Erfahrungen mit "stow" gemacht: Jedes Paket bekommt unter
/usr/local/stow ein eigenes Verzeichnis mit Name und Versionsnummer.

Dann "./configure --prefix=/usr/local/stow/paketname-version", und
nach "make install" sorgt ein Aufruf von "stow" dafuer, dass passende
Symlinks in /usr/local/bin usw. gesetzt werden.

Entfernen ist dann einfach ein weiterer Aufruf von stow plus Entfernen
des Unterverzeichnisses. Das funktioniert auch, wenn ein "uninstall"
Target fehlt, oder dieses Mist macht, weil es nicht alle Dateien
komplett abraeumt.

Das ist nur eine Moeglichkeit, Ordnung zu halten; andere Leute
verwalten das anders.

- Dirk


Jan Kandziora

unread,
Feb 7, 2012, 1:33:58 PM2/7/12
to
Dirk Thierbach wrote:
>
> Das ist nur eine Moeglichkeit, Ordnung zu halten; andere Leute
> verwalten das anders.
>
Man kann statt "make install" auch checkinstall benutzen, um ein reguläres
Paket zu erstellen. Das klappt meistens.

Mit freundlichem Gruß

Jan

Helmut Hullen

unread,
Feb 7, 2012, 2:01:00 PM2/7/12
to
Hallo, Thomas,

Du meintest am 07.02.12:

> um einem Azubi den Dreisatz "configure - make - make install" näher
> zu bringen, suche ich kleine Beispiele, welche sich dafür eignen,
> nicht allzu lange am make rumbastelt und sich ggf auch wieder leicht
> entfernen lassen.

"./configure" setzt (faktisch) eine ausführbare Datei "configure"
voraus, mit gaaaanz vielen Optionen. So etwas solltest Du einem Lehrling
nur zeigen, es ihn aber nicht (so früh) selbst bauen lassen.

Viele Gruesse
Helmut

"Ubuntu" - an African word, meaning "Slackware is too hard for me".

Florian Diesch

unread,
Feb 7, 2012, 4:56:10 PM2/7/12
to
Dirk Thierbach <dthie...@usenet.arcornews.de> writes:


> Ich habe gute Erfahrungen mit "stow" gemacht: Jedes Paket bekommt unter
> /usr/local/stow ein eigenes Verzeichnis mit Name und Versionsnummer.
>
> Dann "./configure --prefix=/usr/local/stow/paketname-version", und
> nach "make install" sorgt ein Aufruf von "stow" dafuer, dass passende
> Symlinks in /usr/local/bin usw. gesetzt werden.
>
> Entfernen ist dann einfach ein weiterer Aufruf von stow plus Entfernen
> des Unterverzeichnisses. Das funktioniert auch, wenn ein "uninstall"
> Target fehlt, oder dieses Mist macht, weil es nicht alle Dateien
> komplett abraeumt.

Außerdem sieht man sehr einfach, was man alles von Hand installiert hat,
und kann bei Bedarf, z.B. vor einem Upgrade, ganz einfach alles
vorübergehend loswerden, indem man /usr/local/ aushängt oder verschiebt.



Florian
--
Indikator-Applet, das unter Unity das Hauptmenu von Gnome Classic anzeigt:
<http://www.florian-diesch.de/software/classicmenu-indicator/>

Dirk Thierbach

unread,
Feb 7, 2012, 5:27:36 PM2/7/12
to
Dirk Thierbach <dthie...@usenet.arcornews.de> wrote:
> Thomas Wildgruber <excp...@web.de> wrote:

>> um einem Azubi den Dreisatz "configure - make - make install"

> Ich habe gute Erfahrungen mit "stow" gemacht: Jedes Paket bekommt unter
> /usr/local/stow ein eigenes Verzeichnis mit Name und Versionsnummer.
[usw.]

Nachtrag: Diese Aktionen macht man natuerlich *nicht* als root.
Man uebersetzt als Normalbenutzer, dann kann es beim Installieren nicht
passieren, ausversehen doch irgendetwas ausserhalb von /usr/local
abzulegen. /usr/local selbst gehoert einer geeigneten Gruppe mit
gesetztem sticky-bit, und jeder, der dort installieren darf (wie Du
oder der Azubi) ist Mitglied der Gruppe. Dann braucht der Azubi auch
keine Root-Rechte, und so Dinge wie ein "rm -rf /" Vertipper
passieren nicht.

- Dirk

Christoph 'Mehdorn' Weber

unread,
Feb 7, 2012, 6:28:50 PM2/7/12
to
Hallo!

* Thomas Wildgruber <excp...@web.de>:

> um einem Azubi den Dreisatz "configure - make - make install" näher zu
> bringen, suche ich kleine Beispiele, welche sich dafür eignen, nicht allzu
> lange am make rumbastelt und sich ggf auch wieder leicht entfernen lassen.
> Was wo nicht ellenlange Abhängigkeiten aufzulösen sind etc (Debian
> Squeeze)...

In dem Fall nimm doch ein Tool, was in Squeeze bereits vorkommt,
hol dir mit "apt-get build-dep <name>" die passenden dev-Pakete
und mit "apt-get source <name>" den Quellcode. Von letzterem
benutzt du aber nur das orig.tar.gz.

Leicht entfernen: Wie du schon anderweitig gelesen hast: Als
Nutzer bauen, nicht als root. Muß ja auch nicht /usr/local sein,
man kann auch in sein (temporär angelegtes) Home installieren,
so da keine hinderlichen Dateisystemflags/Platzmangel existieren.


Alternativ kann man sich per "(c)debootstrap" relativ bequem
Debian in ein Unterverzeichnis installieren und per chroot darin
arbeiten. Wenn das compilierte Tool nicht böswillig ist, bleibt
es drin und man kann danach auch leicht aufräumen, indem man das
Unterverzeichnis komplett entsorgt. (Alternativ "pbuilder
--create" und "pbuilder --login" nehmen; so man später noch das
Bauen von Debian-Paketen näherbringen will, kann man das später
für "pbuilder --build" respektive "pdebuild" weiternutzen.)


Was kleine Tools angeht, die als Beispiel dienen könnten: Ein
Debian-Guide verwendet "gentoo". Neulich hab ich mal "fdupes"
gebaut, das war auch nicht wild. Weiß aber gerade nicht, ob die
überhaupt "configure" brauchen.

Christoph

--
Pssst! Rate mal weswegen MCSEs Weihwasser fuerchten... --
Weil man staendig versucht sie dadrin zu ersaeufen?
(Dietz Proepper, Lars Marowsky-Bree)

Stefan Tiran

unread,
Feb 8, 2012, 8:44:46 AM2/8/12
to
Hallo,

On 02/07/2012 04:36 PM, Thomas Wildgruber wrote:
> um einem Azubi den Dreisatz "configure - make - make install" näher zu
> bringen, suche ich kleine Beispiele, welche sich dafür eignen, nicht allzu
> lange am make rumbastelt und sich ggf auch wieder leicht entfernen lassen.
> Was wo nicht ellenlange Abhängigkeiten aufzulösen sind etc (Debian
> Squeeze)...

Ich würde Programme nehmen, die im Betrieb auch tatsächlich verwendet
werden. Das "herumbasteln" gehört ja fast mit dazu, das kann durchaus
mitgeübt werden. Und entfernen? So teuer sind Festplatten jetzt auch
nicht geworden, dass es sich auszahlen würde, Dateien zu löschen ;-)

Gegebenenfalls kann man ja eine Virtuelle Maschine verwenden.

Liebe Grüße,
Stefan
0 new messages