Debian/Ubuntu Pakete erstellen

Aus Invertika Wiki
Wechseln zu: Navigation, Suche

In diesem Artikel wird beschrieben, wie man vom Invertika Client Pakete für Debian und Ubuntu erstellt.

Inhaltsverzeichnis

Vorbereitungen

Erzeugung eines gnupg Schlüssels

Um ein Debian- oder Ubuntupaket zu erzeugen benötigt man einen gnupg Schlüssel. Wenn man bereits einen solchen besitzt kann man diesen Abschnitt überspringen.

Um einen Schlüssel zu erstellen muss auf der Konsole folgendes eingegeben werden:

gpg --gen-key 

|Launchpad]] Dort wird dann DSA und Elgamal (voreingestellt) ausgewählt. Bei der Schlüssellänge sollte 2048 eingegeben werden. Ber der Gültigkeitsdauer des Schlüssels sollte 5y eingegeben werden. Danach müssen einige Nutzerdaten sowie eine Passphrase angegeben werden. Anschließend bestätigt man den ganzen Prozess mit F. Nun wird der Schlüssel erzeugt. Dies dauert ein paar Minuten.

Weitere Informationen zur Erzeugung und Verwaltung der Schlüssel sind unter http://wiki.ubuntuusers.de/GnuPG zu finden. Dort kann man sich auch das nötige Hintergrundwissen aneignen.

Vorbereitung zum Bauen des Paketes

Um unnötige Schreib- & Sucharbeit zu vermeiden sollte man zuerst einen Ordner mit dem gewünschten Paketnamen und darin darin einen Ordner mit Paketversion erstellen. Auf der Konsole geht das schnell und einfach:

mkdir -p PAKETNAME/PAKETNAME-VERSION

Das ganze könnte dann z.B. so aussehen:

mkdir -p invertika/invertika-0.10

Nun muss der Quellcode noch in den neu erstellten Ordner kopiert werden. Zusätztlich muss man beim ersten Paketieren entweder ein Tar-Archiv der Quellen in den Ordner PAKETNAME legen oder alternativ einen Ordner PAKETNAME-VERSION.orig, in den man den Quellcode zusärtlich kopiert (dieser Ordner wird automatisch gelöscht beim Bau). Außerdem sollten die Pakete dh-make und devscripts installiert werden:

apt-get install dh-make devscripts

Neben diesen Paketen müssen auch die Pakete welche zum kompilieren des Clients benötigt werden installiert werden. Die Auflistung der Pakete ist dabei unter Client_kompilieren zu finden.

Von nun an sollte man eine Konsole auf machen und diese nicht mehr schließen. Nachdem man in das Verzeichnis mit dem Quellcode gewechselt ist gibt man in dieser Konsole folgendes ein:

export DEBEMAIL=EMAILADRESSE
export DEBFULLNAME="DEIN VOLLER NAME"

z.B.

export DEBEMAIL=webmaster@invertika.org
export DEBFULLNAME="Florian Bottke"

Konfigurationsdateien

Erstellung der Konfigurationsdateien

In der Konsole gibt man nun zuerst, wenn man den Ordner PAKETNAME-VERSION.orig erstellt hat

dh_make -r -c gpl2

Sonst

dh_make -c gpl2 -f TARARCHIV

ein, wobei TARARCHIV der Name des Tararchives ist. Die anschließende Frage:

Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs?

beantwortet man mit s.

Anschließend wechseln wir mittels

cd debian

in den debian Ordner und bearbeiten dort die Datei README.Debian mittels eines Texteditors z.B. mittels nano

nano README.Debian

Bei der Datei handelt es sich um eine Dokumentation. Wir entfernen nur die Zeile mit dem Text der zwischen den beiden spitzen Klammern (<>) steht. Das Ergebnis wird dann mittels Strg + O gespeichert und der Editor mittels Strg + X verlassen. Danach bearbeiten wir die Datei changelog mittels

nano changelog

In dieser Datei kann man die Verbesserungen eintragen. Wir löschen allerdings nur die Zeile mit dem * und beenden den Editor mittels Strg + X. Als nächster Schritt muss die Datei control editiert werden:

nano control

Hier ändert man Section: unknown zu Section: games und gibt bei Build-Depends: die Abhängigkeiten zum Bau des Clients (kommaseperiert) ein. Bei Description: gibt man eine kurze Beschreibung ein. Eine längere Beschreibung folgt ab der nächsten Zeile mit einem führenden Leerzeichen. Das ganze sieht dann so aus:

Source: invertika
Section: games
Priority: extra
Maintainer: Florian Bottke <webmaster@invertika.org>
Build-Depends: debhelper (>= 7), automake, autoconf, build-essential, libcurl4-openssl-dev, libguichan-dev, libphysfs-dev, libpng12-dev, libpthread-stubs0-dev,  libsdl-image1.2-dev, libsdl-mixer1.2-dev, libsdl-net1.2-dev, libsdl-ttf2.0-dev, libxml2-dev, zlib1g-dev, libtool, libenet-dev,
Standards-Version: 3.8.1
Homepage: http://invertika.org

Package: invertika
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Invertika is a german MMORPG.
 Invertika is a german MMORPG like old SNES RPGs.

Nun kann man diese Datei speichern und schließen (Strg + O / Strg + X). In die Datei copyright können Informationen über das Copyright eingetragen werden. Die Dateien dirs und docs sind normalerweise von dh_make korrekt angelegt und können ignoriert werden. Existiert eine .menu Datei (z.B: invertika.menu) so kann diese in den debian Ordner kopiert werden und in menuumbenannt werden. Nun muss nur noch die rules Datei angepasst werden. Dazu wird sie sie mittels nano aufgerufen:

nano rules

Hier wird am Anfang (nach der Shebang) der Datei

MAKE=make

hinzugefügt da make zum kompilieren verwendet wird. Nun gibt man unter # Add here commands to configure the package. die Befehle zum Konfigurieren des Paketes ein. Beim Invertika Client sind dies

autoreconf-i
./configure

Die fertige Rules Datei sieht dann z.B. so aus:

#!/usr/bin/make -f
# -*- makefile -*-
MAKE=make

configure: configure-stamp
configure-stamp:
	dh_testdir
	touch configure-stamp


build: build-stamp

build-stamp: configure-stamp  
	dh_testdir
	autoreconf -i
	./configure  --prefix=/usr --datadir=/usr/share/games --bindir=/usr/games
	$(MAKE)

	touch $@

clean: 
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp

	dh_clean 

install: build
	dh_testdir
	dh_testroot
	dh_prep  
	dh_installdirs
	$(MAKE) DESTDIR=$(CURDIR)/debian/invertika install


# Build architecture-independent files here.
binary-indep: install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: install
	dh_testdir
	dh_testroot
	dh_installchangelogs ChangeLog
	dh_installdocs
	dh_installexamples
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

Nach der Bearbeitung kann die Datei dann geschlossen werden. Die Vorbereitungen sind damit abgeschlossen.

Mit Hilfe der vorgefertigten Dateien

Wenn du denn Sourccode von invertika ausgecheckt hast kannst du den Ordner trunk/client/packaging/debian in den Ordner in dem gebaut werden soll kopieren. Dort musst du dann nur die Dateien control und changelog bearbeiten und deinen Namen und deine E-Mailadresse eintragen.

Der Bau des Paketes

Zum Bau des Paketes muss der debian Ordner mittels

cd ..

wieder verlassen werden. Nun gibt es zwei Möglichkeiten das Paket zu bauen. Entweder mittels

debuild

dann wird ein komplettes Paket für die aktuelle Rechnerarchitektur gebaut welches in das eigene Repository hochgeladen werden kann oder mittels

debuild -S

wobei dann nur ein Quellpaket gebaut wird, welches aus dem Quelltext besteht. Dieses Quellpaket wird z.B. für Dienste wie Launchpad[1] um es dort hochzuladen und von Launchpad bauen zu lassen. Mittels

dput ppa:NAME/PPANAME PAKETNAME_VERSION_source.changes

kann man dabei das Paket auf Launchpad hochladen.

Meine Werkzeuge
Namensräume

Varianten
Aktionen
Navigation
Projekt
Werkzeuge