Es gibt viele gute Programme im Linuxfundus, welche nicht in den Distributionsrepositories zur Verfügung stehen, oder die zur Verfügung gestellten Pakete nicht alle möglichen Funktionen aktiviert haben, welche man doch gerne nutzen möchte. So möchte ich Euch hier aufzeigen, wie ihr selbst erfolgreich zu nützlichen und interessanten Zusatztools und Programmen durch Eigenkompliereung kommen könnt. Denke, diese Möglichkeit macht auch den besonderen Reiz eines Linuxsystems aus, denn den Paketmanager anwerfen und damit die Software installieren kann jeder. Als Basis dient openSUSE_10.2 (x86_64). Die Informationen sollten sich aber problemlos auf andere Distributionen übertragen lassen.
ZIELE UND WORKSHOPPROJEKTE
Das Ziel des Workshops ist:
* Euch in die Lage zu versetzen selbst Software zu komplilieren * Pakete für die Distribution zu bauen ( RPM ) * Den SuSE Buildserver näher zu bringen
Gedachte Projekte:
*K3B selbst kompilieren und die RPM Pakete erstellen
*MPlayer prozessoroptimiert selbst kompilieren
*Videoschnittsoftwarepaket Jashaka komplieren, was sich wirklich lohnt. Jashaka ist der »Rolls« unter den Schnittprogrammen ( neben cinelerra) , die manch mehrere tausend Euro teure Software aus dem Windowslager in den Schatten stellt und (fast) keine Wünsche beim Videoschnitt offenlässt. Sowas wie die berühmte eigerlegende Wollmilchsau.
Have Fun
« Letzte Änderung: 09.08.07, 23:44:28 von Dr. SuSE »
Damit das Kompilieren auch klappt, muss man seine Suse erstmal dafür fit machen. Zuerst gilt es, einen Berg von Softwarepaketen nachzuinstallieren. Damit das überhaupt klappt muss zuerst der Artikel hier über die Installationsquellen zwingend abgearbeitet werden (http://www.computerhilfen.de/hilfen-6-58786-0.html).
Neben den installierten Paketen, benötigt man noch die Entwicklerversionen, erkennbar an der Erweiterung -devel oder auch dev bei anderen Distributuionen. -devel steht für Develop, zu deutsch Entwicklung. In diesen sind die Routinen drin, welche zur Weiterentwicklung oder auch zum Kompilieren von Softwarepaketen notwendig sind.
Das Grundgerüst
Hat man die Installationsquellen in yast hinzugefügt, folgt nun der Schritt der umfangreichen Paketinstallation per yast ->Software installieren oder löschen.
Hier installieren wir zunächst folgende Pakete nach:
kernel-source kernel-syms libtool checkinstall autoconf automake cmake boost boost-devel m4 gcc gcc-ada gcc-c++ gcc-fortan gcc-gij gcc-objc gtk gtk-devel gtk2 gtk2-devel qt3 in der neuesten Version !! qt3-devel qt3-devel-doc qt3-devel-tools qt3-extensions qt3-static qtc mc
und klicken auf übernehmen. Yast wird nun noch eine ganze Liste mehr an Software installieren wollen, um die Abhängigkeiten zur getroffenen Paketauswahl aufzulösen. Dies bestätigen wir und gehen erst mal einen Kaffee trinken...
Wer nun denkt gerüstet zu sein, täuscht sich gewaltig. Je nach Projekt welches man kompileren möchte, müssen noch eine Menge weiterer Pakete installiert werden. Aber dazu später mehr. Die Startphase ist die Schwerste, bis erst mal alle Softwarepakete installiert sind, die benötigt werden. Später wird es dann immer leichter, weil die notwendigen Dinge schon an Bord sind.
Das Handwerkszeug:
Ohne Hammer bekommt man bekanntlich kaum einen Nagel in die Wand. Unser Hammer wird der Dateimanager Midnight Commander werden. Habt ihr ihn noch nicht installiert, so holt dies bitte nach. Sucht in yast nach dem Paket mc.
Dateimanager Midnight Commander nutzen
[/url] Quelle: Google.de Legendär war unter DOS der Norton Commander, ein geniales Tool zum Kopieren,Verschieben oder Löschen von Dateien. Unter Linux gibt es den Midnight Commander – und er ist der ideale Einstieg in die Arbeit mit der Bash.
Zwei Fenster nebeneinander Der Midnight Commander stellt den Inhalt zweier Verzeichnisse in übersichtlichen Listen nebeneinander dar. Per Tastendruck navigieren wir damit durch die Ordner, mit einem weiteren Tastendruck lassen sich Dateien und Verzeichnisse kopieren, verschieben oder löschen. Komprimierte Dateien, Installations- Pakete oder mit TAR angelegte Archive behandelt das Tool wie Ordner. So können einfach Dateien aus Archiven geholt oder Installations-Dateien entpackt werden. Verschiedene Verzeichnisansichten zeigen die Dateien auf Wunsch mitsamt ihren Besitzern, Gruppen und einzelnen Rechte. Unten im Programmfenster findet sich eine Kommandozeileneingabe, die Shell-Befehle entgegennimmt und verarbeitet. Über Menüs ändert man Attribute oder Besitzer, und eine eigene History-Funktion speichert die eingegebenen Befehle. Enthalten ist auch ein kleiner Editor für Shell-Scripts oder Mini-Programme. Der Clou allerdings ist der FTP-Client: Mit einem einfachen Kommando stellt der Midnight Commander eine Verbindung zu einem FTP-Server her und zeigt die darauf enthaltenen Dateien in einem Verzeichnisfenster an. So lässt sich der entfernte Ordner wie ein lokaler auf der eigenen Festplatte behandeln. Mit F5 kopiert man Dateien oder ganze Verzeichnisse vom Ftp-Server auf die lokale Festplatte, Enter öffnet beispielsweise ein RPM-Paket und mit Install oder Update wird es gleich installiert. Wir werden im Rahmen des Workshops reichlich gebrauch von diesem genialen Tool machen.
« Letzte Änderung: 20.05.07, 23:12:53 von Dr. SuSE »
Starten wir mit dem Brennprogramm K3b. Nun könnt ihr einwerfen, kann ich doch per yast von Packman installieren. Stimmt, aber leider haben die Packmänner da was weggelassen, z.B. die Unterstützung für das K3B Setup, was sich in der Packmanversion nicht starten lässt. Angenehmer Nebeneffekt, da wir für das Projekt eine Menge Multimediapakete nachinstallieren müssen, wird die Suse in dem Bereich bestimmt auch keine Unwilligkeiten mehr zeigen. K3b ist einfach zu komplieren, Die configure Routine von Sebastian Trügg ( dem Programmierer des Programms ) ist vorbildlich und nimmt einem die meiste Arbeit ab. Drum denke ich eignet sich K3B auch für den Einstieg und das erste Erfolgserlebnis. Doch genug der Vorrede. Vor dem Vergügen benötigen wir erstmal wieder einen Haufen zusätzlicher Softwarepakete. Welche das mindestens sind kann man aus der Liste auf www.k3b.org ->Requirements nachlesen ( in englisch ). Damit auch der nicht so der englischen Sprache mächtige keine Probleme beim Umsetzen bekommt, werde ich hier die Pakete im Einzelenen aufführen, die ihr per yast nachinstallieren müsst. Das ihr eure Hausaufgaben aus der Einleitung gemacht habt, muss ich für die nächsten Schritte voraussetzen.
Vorhanden sein müssen (zusätzlich) folgende Pakete:
Nun besorgt Euch noch von Packman direkt das Paket emovix aus Suse 10.1 was leider nicht im Repository für 10.2 von Packman enthalten ist. emovix ist eine kleine Linuxdistribution, für den Zweck selbstbootende CDs/DVDs zu erstellen die sofort den Film abspielen ohne das ein Betriebssystem installiert sein muss.Jetzt wisst ihr vielleicht auch wofür die Buttons Neue emovix CD oder Neue emovix DVD in K3b vorhanden sind. Nun fragt ihr Euch vielleicht emovix aus Suse 10.1, kann das überhaupt funktionieren mit meiner 10.2 ? Ja, denn das emovix Paket ist versionsunabhängig, erkennbar an der Erweiterung noarch im Dateinamen. Diese Noarchpakete laufen mit allen SuSEversionen ab 8.x und neuer. Ach ja der Pfad zum Download fehlt noch, hier ist er:
Benutzen wir doch gleich mal den Midnight Commander für diese Aufgabe. Öffne eine Konsole und erlange Rootrechte mittels
su - ENTER
Rootpasswort eingeben ENTER
Midnight Commander starten:
mc ENTER
Drücke nun F9 -Rechts -cursor runter ->FTP-Verbindung ENTER
In die nun erscheinende Zeile tippe ein: [/url]
ftp-1.gwdg.de/pub/linux/misc/packman/suse/10.1/noarch ENTER
Drücke ALT+s und gebe als Suchbegriff emovix ein. Der Balken wird auf das Paket springen. Mit F5 kannst Du die Datei herunterladen um sie später zu installieren. Sie wird in das gegenüberliegend angezeigte Verzeichnis des geteilten Bildschirms kopiert werden. Sofort installieren ohne Download ist auch möglich. Drücke ENTER und das emovixpaket wird entpackt und öffnet sich. Stelle den Balken auf Update und drücke ENTER. Emovix wird installiert, erkennbar an den kurz angezeigten Installationsbalken. Das war es auch schon. Mit F10 den mc einfach wieder schliessen.
-------------------
So nun haben wir alle Vorbereitungen getroffen. Fehlt noch das Wichtigste, die Quellpakete von k3b. Die findet ihr hier:
k3b 1.0.1 April 19, 2007 k3b-i18n 1.0.1 April 19, 2007 k3bmonkeyaudioplugin 3.1
herunterladen.
Was machen wir nun damit ?
natürlich kompilieren.
Los geht's:
Öffne eine Konsole und erlange Rootrechte mittels Eingabe von:
Code:
su - ENTER] Rootpasswort eingeben ENTER
Starte den Mitnight Commander mit
mc ENTER
Einigen wir uns auf die Arbeitsweise von links nach Rechts.
Betätige die TAB-Taste, so dass der Cursorbalken auf die linke Seite springt und stelle den Cursorbalken auf die beiden Punkte ganz oben im Menübaum. Drücke ENTER. Wiederhole dies, bis du ganz oben im Verzeichnisbaum angekommen bist. Nun legen wir uns ein Arbeitsverzeichnis zum Komplieren an. Betätige dazu die Taste F7. In die aufgehende Zeile tippe compile und ENTER. Im Verzeichnisbaum siehst Du nun das neu angelegte Verzeichnis namens compile. Öffne es, indem Du den Balken draufstellst und ENTER drückst. Es erscheint ein leeres Fenster. Im nächsten Schritt müssen wir unsere heruntergeladenen K3b Archive entpacken.
Archive entpacken:
Betätige wieder die TAB-Taste, so dass der Cursorbalken ins rechte Bildschirmfenster springt. Navigiere in Dein Downloadverzeichnis und stelle den Balken auf das K3b Archiv. Nun ENTER betätigen, das Archiv wird geöffnet. Mit der Einfügetaste das Verzeichniss k3b-1.0.1 markieren, wird dann gelb dargestellt. Drücke F5 ENTER. Das Archiv wird nun nach /compile entpackt. Diesen Schritt mit allen anderen K3b Archiven wiederholen.
Soweit zur Vorbereitung.
Kompilieren
Betätige nun wieder die Tab-Taste und stelle den Balken auf das Verzeichnis k3b-1.0.1 und betätige ENTER, damit sich das Verzeichnis öffnet. Du siehst nun einen Haufen Dateien, u.a. auch configure.
Configurelauf starten:
Betätige STRG+o ( kleiner Buchstabe o ). Der Midnight Commander tritt nun in den Hintergrund und gibt die Konsolenansicht frei, läuft aber immer noch. Zurück gehts mit der gleichen Tastenkombination. Tippe nun:
Code:
./configure ENTER
Die Configureroutine schaut nun nach, ob auch alle notwendigen Programmpakete, welche zum Komplieren des Programms notwendig sind, vorhanden sind. Falls nicht, gibt es eine Fehlermeldung. Es flitzen eine ganze Menge Meldungen über den Schirm. Ist alles glatt gelaufen erscheint diese Ausgabe:
Code:
K3b - Include libdvdread (Video DVD ripping) support: K3b - yes
K3b - Audio resampling: K3b - using installed version
K3b - Audioplayer available (aRts) yes
K3b - Compile K3bSetup 2: yes
K3b - Tag guessing using MusicBrainz yes
Good - your configure finished. Start make now
Okay, starten wir make um das Programm zu erzeugen durch Eingabe von
Code:
make ENTER
Der Vorgang dauert erst mal eine Weile. Je nach Rechnergeschwindigkeit auch mehrere Stunden.
War auch das erfolgreich erscheint folgende Ausgabe:
Code:
make[2]: Leaving directory `/compile/k3b-1.0.1/k3bsetup' make[2]: Entering directory `/compile/k3b-1.0.1' make[2]: Für das Ziel »all-am« ist nichts zu tun. make[2]: Leaving directory `/compile/k3b-1.0.1' make[1]: Leaving directory `/compile/k3b-1.0.1'
Glückwunsch. Das war es schon fast. Jetzt könnte man das Programm auch schon starten. Wir wollen aber ein RPM Paket für die Susie bauen um K3b wie gewohnt bequem per yast verwalten zu können. Dazu dient das Programm checkinstall, welches wir anfangs installiert haben.
Tippe also nun ein:
Code:
checkinstall --type=rpm ENTER
Dir wird folgendes angezeigt:
Code:
checkinstall 1.6.0, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran This software is released under the GNU GPL.
The package documentation directory ./doc-pak does not exist. Should I create a default set of package docs? [y]:
Drücke y und gebe eine Beschreibung ein, OHNE UMLAUTE und SONDERZEICHEN! Ist der Text, den yast in der Softwarebeschreibung später nach der Installation anzeigt.
Code:
Preparing package documentation...OK
Please write a description for the package. End your description with an empty line or EOF. >>
Bei einem 32 Bit System lautet die Meldung analog. Dann ist das Paket in /usr/src/packages/RPMS/i386 oder auch eins der anderen ix86 Verzeichnisse zu finden.
Bleibt noch, das Ganze mit dem Sprachpaket und dem Monkeyaudio Plugin zu wiederholen.
Installation:
Zuerst per yast sämtliche installierten k3b Pakete von Packman entfernen! Anschliessend die Eigenkompilate installieren, wie es checkinstall ausgegeben hat ( rpm -i .... ), beginnend mit k3b-1.0.1 um die Abhängigkeiten aufzulösen.
Lohn der Mühe, man hat nun eine K3b Version, mit der auch wirklich alles funktioniert, sogar K3b Setup.
Viel Erfolg
« Letzte Änderung: 27.05.07, 17:01:12 von Dr. SuSE »
bei Jashake kommt beim kompilieren von olib-mlt folgende fehlermeldung:
have_mmx.S: Assembler messages: have_mmx.S:20: Error: suffix or operands invalid for `push' have_mmx.S:24: Error: suffix or operands invalid for `pushf' have_mmx.S:25: Error: suffix or operands invalid for `pop' have_mmx.S:28: Error: suffix or operands invalid for `push' have_mmx.S:29: Error: suffix or operands invalid for `popf' have_mmx.S:30: Error: suffix or operands invalid for `pushf' have_mmx.S:31: Error: suffix or operands invalid for `pop' have_mmx.S:51: Error: suffix or operands invalid for `pop' make[2]: *** [have_mmx.o] Fehler 1 make[2]: Leaving directory `/usr/src/packages/BUILD/mlt-0.2.2/src/modules/gtk2' make[1]: *** [all] Fehler 1 make[1]: Leaving directory `/usr/src/packages/BUILD/mlt-0.2.2/src/modules' make: *** [all] Fehler 1 error: Bad exit status from /var/tmp/rpm-tmp.58225 (%build)
RPM build errors: user goncalo does not exist - using root user goncalo does not exist - using root Bad exit status from /var/tmp/rpm-tmp.7276 (%build)
Ich vermute das das mit dem specfile zu tun hat, diesen part hab ich noch nicht so ganz verstanden
« Letzte Änderung: 20.05.07, 15:42:30 von Linuxtux »