Verteilen von Software unter lInux/ Installer bauen

Liebe/-r Experte/-in,

Ich habe bis jetzt nur unter Windowssystemen entwickelt und will jetzt auf Linux umsatteln. Eine entsprechende Entwicklungsumgebung habe ich mir schon zusammen gesucht und auch durchaus erfolgreich installiert und sogar schon ein kleines Programm geschrieben.

Meine große Frage vor der ich aber jetzt stehe ist, wie kann ich denn die Releaseversion meines programms anderen zur Verfügung stellen? Ich habe mich ein wenig mit rpms beschäftigt und das scheint mir ein guter Weg zu sein, dafür zu sorgen, das alle nötigen Libraries von denen meine Software abhängt auf dem Zielsystem mitinstalliert werden, bei der Installation meiner Software.

Zumindestens vermute ich, das ich das mit einem rpm Package machen kann. Ich arbeite unter openSUSE 11.2 und komme da aber im Moment keinen Schritt weiter. Ich habe schon alles mögliche versucht und werde einfach nicht schlau! Es gibt zwar viele Seiten im Internet die etwas zu rpm zu sagen haben, aber für mich keine Seite die mir verständlich und ausführlich erklärt, was ich brauche, bzw. wie ich denn jetzt mein Binary in ein schönes rpm package packen kann, wo alle Abhängigkeiten vermerkt sind.

Mein letzter Versuch war jetzt der openSUSE Build Service, aber aus dem werde ich auch nicht schlau.

Wie verpackt ihr denn Software die auch auf anderen Linuxrechener laufen soll?

Grüße,

Swen

Hallo Sven,

unter „Linux“ versteht man eigentlich nur den Kern, also das Betriebssystem. Darauf aufbauend gibt es diverse „Linux Distributionen“. Diese bündeln ein Linux-Kernsystem mit meist einer Vielzahl von Software-Paketen. Neben Distributionen für besondere Aufgaben, wie spezialisierte Firewall-Distributionen oder Distrubutionen für die XBox, gibt es einige konkurrierende Desktop-Distributionen, für die Du dich vermutlich interessierst. Bekannte Distributionen sind OpenSuse, Redhat, Ubuntu (mein Favorit), Debian oder Mandrake.

Prinzipiell ist allen Distributionen frei gestellt, welches Paketformat sie zum Verteilen ihrer Software verwenden, allerdings gibt es LSB (Linux Standard Base), die vorschreibt, dass alle Distributionen als Paketformat RPM unterstützen müssen. Was sich als nicht so geschickt herausgestellt hat, da dpkg als Paketformat viel besser funktionniert. Letzteres ist das Format, das bneispielsweise in Ubuntu, Debian oder Knoppix zur Anwendung kommt (Mehr dazu gibts hier nachzulesen: http://de.wikipedia.org/wiki/Linux-Distribution#Komp… )

Nun zum Erzeugen von RPM-Pakete. Prinzipiell gehst Du so vor, dass Du Deine Files, wie sie später im System landen sollen in einem Verzeichnisbaum ablegst, dann ein sogenanntes Spec-File schreibst, in dem in einem speziellen Format alle möglichen Informationen über das Software-Paket und die enthaltenen Dateien sowie über Abhängigkeiten definiert sind. Und dann baut „rpm -b“ mit einigen Optionen Dein Paket. Da gibts ein E-Buch über RPM, wos im zweiten Teil auch um den Build-Prozess geht: http://xinux.de/docs/linux/rpm/ und hier: http://www.rpm.org/wiki/Docs findest Du sicher darüber rausgehende Informationen und hier: http://www.linuxhaven.de/dlhp/HOWTO/DE-RPM-HOWTO-7.html gibts ein Howto mit ner Beispiel-Spec-Datei.

hoffe das hat geholfen, Gruß Bruce

Ich habe das immer mit .deb, .rpm und generischen
Installern (z.B. einfache Tar-Archive) gemacht.
Wir haben uns das in der Firma mehr oder weniger selbst
beigebracht mit Dokumentation aus dem Internet und vor
allem dadurch, daß wir uns angeguckt haben wie andere
das machen (also Quellpakete von verschiedenen
Distributionen und sowas).
Richtig toll dokumentiert ist das leider nicht, aber als
Links (Zeilenumbrüche ggf. entfernen):
http://xinux.de/docs/linux/rpm/ oder
http://docs.fedoraproject.org/en-
US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/

http://www.linuxfordevices.com/c/a/Linux-For-Devices-
Articles/How-to-make-deb-packages/

Ergänzend noch die Wikipedia Artikel zum Thema, aber
ansonsten bist Du da am besten bedient, wenn Du einfach
abguckst wie andere die control bzw. .spec Dateien
erstellen.