Forum
Tipps
News
Menu-Icon
Thema geschlossen (topic locked)

Suse: Workshop: Softwarepakete selbst kompilieren

EINLEITUNG[/b]

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[/b]

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 »

Antworten zu Suse: Workshop: Softwarepakete selbst kompilieren:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
1 Leser hat sich bedankt
« Letzte Änderung: 13.05.07, 22:57:33 von Dr. SuSE »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
SYSTEM ERFOLGREICH VORBEREITEN[/b]


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:[/b]

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[/b]


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 »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
DAS ERSTE PROJEKT[/b]

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:

dvd-rw tools V7.0
cdrdao
wodim
wodim-devel
cdparanoia
transcode
libvorbis
libvorbis-devel
vorbis-tools
vorbisgain
ogmtools
flac
flac-devel
vcdimager
vcdimager-devel
normalize
sox
lame
toolame
twolame
twolame-devel
ffmpeg
ffmpeg-devel
libffmpeg
libffmpeg-devel
mpeg2dec
libmpcdec
libmpcdec-devel
libsndfile
libsndfile-devel
libsndfile-octave
libsndfile-progs
libmusicbrainz
libmusicnrainz-devel
libtunepimp
hal
hal-devel
hal-resmgr
mad
mad-devel
arts
arts-devel
arts-gmcop
alsa
alsa-devel
alsa-plugins
pmidi
timidity
ttaenc
divx
faac
faad2
fame
libfame
libfame-devel
libmpeg2
libmpeg2-devel
libmpeg3
mpg123
xvid
xvid-devel
xvid4conf
mplayer
w32codecs-all
kdebase3
kdebase3-devel
kdebase3-extra
kdelibs3
kdelibs3-arts
kdelibs3-devel
kdemultimedia3
kdemulimedia3-devel
kdemultimedia3-arts
kdemultimedia3-CD
kdemultimedia3-extra
kdemultimedia3-mad
kdemultimedia3-midi
kdemutimedia3-mixer
kdemultimedia3-sound
kdemultimedia3-video
kdemultimedia3-video-xine
kdeutils3
kdeutils3-devel
kdeutils3-extra
kdevelop3


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:

ftp://ftp-1.gwdg.de/pub/linux/misc/packman/suse/10.1/noarch
hier das Paket emovix-0.9.0-0.pm.2.noarch.rpm

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:


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:

http://sourceforge.net/project/showfiles.php?group_id=26138

Hier die 3 Pakete

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:

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:

./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:

K3b - Include libdvdread (Video DVD ripping) support:
K3b -                                        yes

K3b - Resmgr support:                        yes

K3b - Compile HAL support                    yes

K3b - Audioplayer available (alsa)           yes

K3b - FFMpeg decoder plugin (decodes wma and others):
K3b -                                        yes

K3b - FLAC support:                          yes

K3b - libsndfile audio decoding support:     yes

K3b - Mp3 decoding support (libmad):         yes

K3b - Musepack support:                      yes

K3b - Ogg Vorbis support:                    yes

K3b - Lame Mp3 encoder plugin:               yes

K3b - Audio meta data reading with Taglib:   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

make ENTER

Der Vorgang dauert erst mal eine Weile. Je nach Rechnergeschwindigkeit auch mehrere Stunden.

War auch das erfolgreich erscheint folgende Ausgabe:

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:

checkinstall --type=rpm ENTER

Dir wird folgendes angezeigt:

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.

Preparing package documentation...OK

Please write a description for the package.
End your description with an empty line or EOF.
>>                                               
Hier gebe beispielsweise ein:

>>K3B Das Brennprogramm fuer KDE  ENTER ENTER

Es wird folgendes ausgegeben:

**************************************
**** RPM package creation selected ***
**************************************

This package will be built according to these values:

1 -  Summary: [ K3b Das Brennprogramm fuer KDE ]
2 -  Name:    [ k3b ]
3 -  Version: [ 1.0.1 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ Applications/System ]
7 -  Architecture: [ x86_64 ]
8 -  Source location: [ k3b-1.0.1 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ k3b ]

Enter a number to change any of them or press ENTER to continue:     

Nun einfach wieder ENTER betätigen und das RPM Paket wird gebaut.
Es rasen nun wieder 'ne Menge Kompilermeldungen über den Bildschirm.

Wenn checkinstall erfolgreich fertig ist, ist folgendes zu lesen:

Copying files to the temporary directory...OK

Compressing man pages...OK

Building file list...OK

Building RPM package...OK

NOTE: The package will not be installed

Erasing temporary files...OK

Deleting doc-pak directory...OK

Writing backup package...OK

Deleting temp dir...OK


**********************************************************************

 Done. The new package has been saved to

 /usr/src/packages/RPMS/x86_64/k3b-1.0.1-1.x86_64.rpm
 You can install it in your system anytime using:

      rpm -i k3b-1.0.1-1.x86_64.rpm

******************************************************************

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:[/b]

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 »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Projekt Jashaka

-Grundgerüst zum Workshop ->Textaufbau

per yast:

mlt
mlt++
openal
libdv
libquicktime
freetype2
qt3-devel
qt3-devel-tools
lame
faac
glew
ffmpeg

Reihenfolge Source compile ( kompilieren und gleich installieren wegen Abhängigkeiten ):
1.olib-lame
2.olib-faac
3.olib-glew
4.olib-ffmpeg (problem mit specfile erklären (rpm -ba ) )
5.olib-mlt
6.olib-mlt++
7.openlibraries
Sourcen aus Suse 10.1 für 10.2(src.rpm)
http://repo.jahshaka.org/suse/10.1/RPMS/src
---
von sf.net
8.jashaka2.tgz

« Letzte Änderung: 18.05.07, 01:08:38 von Dr. SuSE »

hab deine liste für k3b abgearbeitet, das einzige, was ich nicht finden kann ist cdparanoia-devel

---------------
Wirst Du auch nicht, gibts nicht. Ist im Eifer des Gefechts dazwischengerutscht.

Danke für den Hinweis!

« Letzte Änderung: 20.05.07, 23:37:40 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 »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

.


« Pfingstgrüße aus dem LändleSuse: Suse 10.2 sehr langsam geworden »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Software
Der Begriff Software (zu Deutsch: weiche Ware) ist ein Sammelbegriff für sämtliche Computerprogramme, die auf einem Computer ausgeführt werden können....

ID3 Informationen
Die ID3 Informationen sind Textinformationen, die in einer mp3 Datei mitgespeichert werden können. ID3-Tags ermöglichen es, Metadaten wie Titel, Künstler, ...

Zwischenablage
Die Zwischenablage (eng. Clipboard) ist ein temporärer Speicher im Arbeitsspeicher (RAM) des Computers. In der Zwischenablage können Informationen für kurz...