Dieser Artikel stammt aus dem Magazin von C++.de (
|
|
- Annegret Schwarz
- vor 6 Jahren
- Abrufe
Transkript
1 Dieser Artikel stammt aus dem Magazin von C++.de ( Inhalt 1. Einleitung 1. Das Debian-System 2. Paketmanager 2. Auf geht s 1. Voraussetzungen 2. Das Programm 3. Die Umgebung 3. Zum ersten Debian-Paket 1. Grundstruktur 2. Erste Anpassungen 3. Bauen 4. Das Menü 5. Ein Test 4. Feinschliff 1. lintian & linda 2. pbuilder 5. Tipps, Tricks & Sonstiges 6. Schlusswort 1 Einleitung 1.1 Das Debian System Linuxdistributionen gibt es viele und die Paketsysteme sind nahezu ebenso vielfältig. Allerdings haben sich bei den großen Distributionen in Sachen Paketmanager zwei große Fraktionen gebildet. Einige, unter ihnen die großen kommerziellen Distributionen Red Hat (+ Fedora) und SuSE Linux verwenden den «Red Hat Package Manager» kurz rpm und Debian mit seinen «Kindern», dessen bekanntester, aber bei weitem nicht einziger Vertreter Ubuntu ist, verwenden libapt mit den.deb-paketen. Und Debian an sich ist mehr als nur Linux! Es existieren auch Gnu/Hurd- und BSD-Releases. Interessierte können einen bestimmt nicht vollständigen Stammbaum von Debian unter nachschlagen. Und um die Pakete für genau diese Debian-Familie geht es in diesem Artikel. 1
2 1.2 Paketmanager Doch was machen diese Paketmanager? Zu den Aufgaben der Paketmanager gehört neben der Installation von Software auch die Deinstallation, das Auflösen von Abhängigkeiten, die dafür sorgt, dass die Software nicht alle benötigten Bibliotheken mitbringen muss und sich trotzdem darauf verlassen kann, dass die benötigten Bibliotheken vorhanden sind. 2 Auf geht s 2.1 Voraussetzungen Für den ersten Teil des Artikels wird neben dem Buildsystem, ich werde nur g++ verwenden, und der -dev-version von libgtkmm die Debian-Tools benötigt. debhelper - Tools zum Erstellen von Paketen. dh-make - Tool um Pakete zu initiieren lintian - Tool, das die fertigen Pakete überprüft. fakeroot - damit man nicht jedes Mal zum Bauen Superuser-Rechte benötigt 2.2 Das Programm Als zu Software verwende ich das Beispielprogramm, das schon im Artikel zur «Softwareinstallation unter Linux» von joomoo verwendet wurde: #include <gtkmm.h> int main(int argc, char** argv) { Gtk::Main kit(argc, argv); Gtk::Window win; Gtk::Image img("/usr/share/hallowelt/hallowelt.png"); win.add(img); win.show_all(); kit.run(win); } 2.3 Die Umgebung Die Debian-Tools erwarten, dass sich die Software, die wir packen wollen in einem Verzeichnis nach dem Muster <paketname>-<version> befindet. Auch wenn man dies umgehen kann, halten wir uns erst einmal an diese Vorgaben und erstellen das Verzeichnis hallowelt-1.0.0/ und legen das obige C++-Programm dort ab. 2
3 Auch das Bild legen wir hier ab. Wer will, kann sich überzeugen, dass er das Programm jetzt mit g++ kompilieren kann. Allerdings sollte am Ende das Verzeichnis nur main.cpp hallowelt.png hallowelticon.png enthalten, im Allgemeinen ein sauberes Sourcearchiv ohne Überreste von Builds oder ähnlichem. 3 Zum ersten Debian-Paket 3.1 Die Grundstruktur Die Grundstruktur eines Debian-Paketes wird mit dem Tool dh_make erstellt: $ ls -lh insgesamt 12K -rw-r--r-- 1 christoph christoph 2,4K :07 hallowelt.png -rw-r--r-- 1 christoph christoph :06 hallowelticon.png -rw-r--r-- 1 christoph christoph :56 main.cpp $ dh_make --createorig -e christoph@coders-nemesis.eu [1] Type of package: single binary, multiple binary, library, kernel module or cdbs? [s/m/l/k/b] s Maintainer name : Christoph Egger -Address : christoph@coders-nemesis.eu [1] Date : Fri, 15 Feb :08: Package Name : hallowelt Version : License : blank Type of Package : Single Hit <enter> to confirm: Currently there is no top level Makefile. This may require additional tuning. Done. Please edit the files in the debian/ subdirectory now. You should also check that the hallowelt Makefiles install into $DESTDIR and not in /. Mit dem Schalter --createorig (-r) teilen wir mit, dass noch kein Tarball mit allen Dateien besteht (dieser wird normalerweise verwendet um die Modifikationen des Paketbaus von der Software selbst zu trennen). dh_make erstellt dann einen solchen im Verzeichnis, in dem sich auch das Verzeichnis hallowelt befindet. Mit der Option -e -Adresse geben wir unsere -Adresse an, da dh_make sonst username@computername annimmt, was in unserem Fall wenig Sinn macht. 3
4 $ ls.. -lh insgesamt 12K drwxr-xr-x 3 christoph christoph 4,0K :09 hallowelt drwxr-xr-x 2 christoph christoph 4,0K :07 hallowelt orig Danach fragt dh_make welcher Art die Software ist, die wir packen wollen. Ich habe hier single binary gewählt. Dann gibt es einen Überblick über die Paketdaten - wir können diese später jederzeit ändern. Zum Schluss werden wir noch darauf hingewiesen, dass dh_make kein Makefile gefunden hat und wir uns selbst um die Erstellung der Software kümmern müssen. Wenn alles glatt gelaufen ist, sollte sich jetzt in unserem Projektverzeichnis (hallowelt-1.0.0) ein Unterverzeichnis debian befinden, das in etwa so aussieht: $ ls -lh debian insgesamt 116K -rw-r--r-- 1 christoph christoph :09 changelog -rw-r--r-- 1 christoph christoph :09 compat -rw-r--r-- 1 christoph christoph :09 control -rw-r--r-- 1 christoph christoph :09 copyright -rw-r--r-- 1 christoph christoph :09 cron.d.ex -rw-r--r-- 1 christoph christoph :09 dirs -rw-r--r-- 1 christoph christoph :09 docs -rw-r--r-- 1 christoph christoph 1,3K :09 emacsen-install.ex -rw-r--r-- 1 christoph christoph :09 emacsen-remove.ex -rw-r--r-- 1 christoph christoph 1,2K :09 emacsen-startup.ex -rw-r--r-- 1 christoph christoph :09 hallowelt-default.ex -rw-r--r-- 1 christoph christoph :09 hallowelt.doc-base.ex -rw-r--r-- 1 christoph christoph 4,1K :09 init.d.ex -rw-r--r-- 1 christoph christoph 8,4K :09 init.d.lsb.ex -rw-r--r-- 1 christoph christoph 1,8K :09 manpage.1.ex -rw-r--r-- 1 christoph christoph 4,6K :09 manpage.sgml.ex -rw-r--r-- 1 christoph christoph 4,5K :09 manpage.xml.ex -rw-r--r-- 1 christoph christoph :09 menu.ex -rw-r--r-- 1 christoph christoph :09 postinst.ex -rw-r--r-- 1 christoph christoph :09 postrm.ex -rw-r--r-- 1 christoph christoph :09 preinst.ex -rw-r--r-- 1 christoph christoph :09 prerm.ex -rw-r--r-- 1 christoph christoph :09 README.Debian -rwxr-xr-x 1 christoph christoph 1,8K :09 rules -rw-r--r-- 1 christoph christoph :09 watch.ex 3.2 Erste Anpassungen Im debian Verzeichnis sind jetzt jede Menge Dateien von denen wir eine ganze Menge nicht benötigen. cron.d dient zum Eintragen von Cronjobs unseres Programms, init.d.ex falls unser Programm beim Systemstart mitgeladen werden soll, manpage.*.ex für manpage Einträge pre/post inst/rm für Skripte, die vor/nach dem Installieren/Deinstallieren ausgeführt werden sollen 4
5 emacsen* falls sich unser Programm in Emacs integrieren soll Da wir sie für dieses Programm nicht benötigen, können wir sie gleich löschen. Sehen wir uns an, was übriggeblieben ist debian/control Die debian/control sollte in etwa so aussehen: Source: hallowelt Section: unknown Priority: extra Maintainer: Christoph Egger Build-Depends: debhelper (>= 5) Standards-Version: Package: hallowelt Architecture: any Depends: ${shlibs:depends}, ${misc:depends} Description: <insert up to 60 chars description> <insert long description, indented with spaces> <insert up to 60 chars description> ersetzen wir mit einer Kurzbeschreibung für das Programm, beispielsweise Grußprogramm, <insert long description, indented with spaces> gibt uns Platz, etwas ausführlicher zu werden: hallowelt ist ein kleines Programm, das die Welt auf Deutsch grüßt.. hallowelt verwendet GTKmm als GUI-Toolkit Dieser Text muss in jeder neuen Zeile mit einem Leerzeichen beginnen. Einen neuen Absatz erhält man mit einer Zeile, die nur ein Leerzeichen und einen Punkt enthält debian/copyright This package was debianized by Christoph Egger on Fri, 15 Feb :08: It was downloaded from <url://example.com> Upstream Author(s): <put author s name and here> <likewise for another author> Copyright: 5
6 <Copyright (C) YYYY Name OfAuthor> <likewise for another author> License: <Put the license of the package here indented by 4 spaces> The Debian packaging is (C) 2008, Christoph Egger <christoph@coders-nemesis.eu> and is licensed under the GPL, see /usr/share/common-licenses/gpl. # Please also look if there are files or directories which have a # different copyright/license attached and list them here. Wieder müssen wir anpassen, was in den spitzen Klammern steht (Ausnahme ist die -Adresse) This package was debianized by Christoph Egger <christoph@coders-nemesis.eu> on Fri, 15 Feb :08: It was downloaded from Upstream Author(s): joomoo <jhasse@gmail.com> Copyright: Copyright (C) 2008 joomoo License: Veröffentlicht unter der GNU GPL v3, siehe auch /usr/share/common-licenses/gpl-3 The Debian packaging is (C) 2008, Christoph Egger <christoph@coders-nemesis.eu> and is licensed under the GPL, see /usr/share/common-licenses/gpl. # Please also look if there are files or directories which have a # different copyright/license attached and list them here debian/rules Das Herzstück der Paketierung. Es handelt sich hierbei um ein GNU-Makefile, das die Regeln für die einzelnen Schritte enthält. build-stamp: configure-stamp # Add here commands to compile the package. $(MAKE) #docbook-to-man debian/hallowelt.sgml > hallowelt.1 touch $@ 6
7 In diesem Ausschnitt müssen wir angeben, wie die Software gebaut wird. Ersetzen wir $(MAKE) mit g++ main.cpp -o hallowelt pkg-config gtkmm cflags --libs install: build dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/hallowelt. $(MAKE) DESTDIR=$(CURDIR)/debian/hallowelt install Hier ersetzen wir $(MAKE) DESTDIR=$(CURDIR)/debian/hallowelt install mit mv hallowelt debian/hallowelt/usr/bin/ cp hallowelt.png debian/hallowelt/usr/share/hallowelt/ cp hallowelticon.png debian/hallowelt/usr/share/icons/hallowelticon.png clean: dh_testroot rm -f build-stamp configure-stamp # Add here commands to clean up after the build process. $(MAKE) clean dh_clean $(MAKE) clean können wir entfernen, da die ausführbare Datei bereits in das debian/hallowelt Verzeichnis verschoben wird, das von dh_clean aufgeräumt wird, und sonst keine Reste bleiben. 3.3 Bauen Mit dpkg-buildpackage wird das Paket dann gebaut: $ dpkg-buildpackage dpkg-buildpackage: Quellpaket hallowelt dpkg-buildpackage: Quellversion dpkg-buildpackage: Quellen geändert durch Christoph Egger <christoph@coders-nemesis.eu> dpkg-buildpackage: Host-Architektur i386 fakeroot debian/rules clean dh_testroot rm -f build-stamp configure-stamp # Add here commands to clean up after the build process. 7
8 # /usr/bin/make clean dh_clean dpkg-source -b hallowelt dpkg-source: baue hallowelt in hallowelt_1.0.0.orig.tar.gz dpkg-source: baue hallowelt in hallowelt_ diff.gz dpkg-source: Warnung: newly created empty file debian/docs will not be represented in diff dpkg-source: baue hallowelt in hallowelt_ dsc debian/rules build # Add here commands to configure the package. touch configure-stamp # Add here commands to compile the package. g++ main.cpp -o hallowelt pkg-config gtkmm cflags --libs #docbook-to-man debian/hallowelt.sgml > hallowelt.1 touch build-stamp fakeroot debian/rules binary dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/hallowelt. mv hallowelt debian/hallowelt/usr/bin/ cp *.png debian/hallowelt/usr/share/hallowelt/ cp: angegebenes Ziel "debian/hallowelt/usr/share/hallowelt/" ist kein Verzeichnis: Datei oder Verzeic make: *** [install] Fehler 1 dpkg-buildpackage: Fehlschlag: fakeroot debian/rules binary gab Fehler-Exitstatus 2 Wir versuchen also, eine Datei in ein nicht existentes Verzeichnis zu kopieren. Um den Fehler zu vermeiden, teilen wir dpkg mit, welche Verzeichnisse benötigt werden. Dies geschieht in der Datei debian/dirs. Dort fügen wir jetzt folgende Einträge hinzu: usr/share usr/share/hallowelt usr/share/icons Die Verzeichnisse müssen rekursiv hinzugefügt werden, da das Erstellen von usr/share/hallowelt fehlschlagen muss, wenn usr/share nicht existiert. Jetzt läuft dpkg-buildpackage erfolgreich durch: $ dpkg-buildpackage dpkg-buildpackage: Quellpaket hallowelt dpkg-buildpackage: Quellversion dpkg-buildpackage: Quellen geändert durch Christoph Egger <christoph@coders-nemesis.eu> dpkg-buildpackage: Host-Architektur i386 fakeroot debian/rules clean dh_testroot rm -f build-stamp configure-stamp # Add here commands to clean up after the build process. # /usr/bin/make clean 8
9 dh_clean dpkg-source -b hallowelt dpkg-source: building hallowelt using existing hallowelt_1.0.0.orig.tar.gz dpkg-source: baue hallowelt in hallowelt_ diff.gz dpkg-source: Warnung: file debian/dirs has no final newline (either original or modified version) dpkg-source: Warnung: newly created empty file debian/docs will not be represented in diff dpkg-source: baue hallowelt in hallowelt_ dsc debian/rules build # Add here commands to configure the package. touch configure-stamp # Add here commands to compile the package. g++ main.cpp -o hallowelt pkg-config gtkmm cflags --libs #docbook-to-man debian/hallowelt.sgml > hallowelt.1 touch build-stamp fakeroot debian/rules binary dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/hallowelt. mv hallowelt debian/hallowelt/usr/bin/ cp *.png debian/hallowelt/usr/share/hallowelt/ dh_testroot dh_installchangelogs dh_installdocs dh_installexamples dh_installman dh_link dh_strip dh_compress dh_fixperms dh_installdeb dh_shlibdeps libgdkmm-2.4.so.1 gelinkt werden (es verwendet keine seiner Symbole). libatkmm-1.6.so.1 gelinkt werden (es verwendet keine seiner Symbole). libgtk-x so.0 gelinkt werden (es verwendet keine seiner Symbole). libpangomm-1.4.so.1 gelinkt werden (es verwendet keine seiner Symbole). libcairomm-1.0.so.1 gelinkt werden (es verwendet keine seiner Symbole). libsigc-2.0.so.0 gelinkt werden (es verwendet keine seiner Symbole). libgdk-x so.0 gelinkt werden (es verwendet keine seiner Symbole). libatk-1.0.so.0 gelinkt werden (es verwendet keine seiner Symbole). libgdk_pixbuf-2.0.so.0 gelinkt werden (es verwendet keine seiner Symbole). libpangocairo-1.0.so.0 gelinkt werden (es verwendet keine seiner Symbole). 9
10 libpango-1.0.so.0 gelinkt werden (es verwendet keine seiner Symbole). libcairo.so.2 gelinkt werden (es verwendet keine seiner Symbole). libgobject-2.0.so.0 gelinkt werden (es verwendet keine seiner Symbole). libgmodule-2.0.so.0 gelinkt werden (es verwendet keine seiner Symbole). libdl.so.2 gelinkt werden (es verwendet keine seiner Symbole). libglib-2.0.so.0 gelinkt werden (es verwendet keine seiner Symbole). dh_gencontrol dpkg-gencontrol: Warnung: unbekannte Substitutionsvariable ${misc:depends} dh_md5sums dh_builddeb dpkg-deb: Baue Paket»hallowelt«in»../hallowelt_ _i386.deb«. signfile hallowelt_ dsc gpg:»christoph Egger Geheimer Schlüssel ist nicht vorha gpg: [stdin]: clearsign failed: Geheimer Schlüssel ist nicht vorhanden dpkg-genchanges >../hallowelt_ _i386.changes dpkg-genchanges: füge kompletten Quellcode beim Hochladen hinzu dpkg-buildpackage: Alles hochzuladen (Originalquellen enthalten) dpkg-buildpackage: Warnung: Konnte.dsc- und.changes-datei nicht signieren Gehen wir die Warnungen der Reihe nach durch: dpkg-source: Warnung: file debian/dirs has no final newline (either original or modified version) Das ist relativ eindeutig. Ich habe vergessen, die Textdatei debian/dirs mit einem Newline-Zeichen abzuschließen. Das ist ziemlich schnell repariert also weiter zur nächsten Warnung: dpkg-source: Warnung: newly created empty file debian/docs will not be represented in diff Die Datei debian/docs enthält eine mit Newline separierte Liste an Dateien, die die Dokumentation des Programms bilden und später unter /usr/share/doc/hallowelt/ abgelegt werden. Diese Warnung können wir ignorieren oder eine Dokumentation erstellen und in die Datei eintragen. Kommen wir zu den nächsten Warnungen: libgdkmm-2.4.so.1 gelinkt werden (es verwendet keine seiner Symbole). Durch die Verwendung von pkg-config gtkmm libs haben wir einige libs mitgelinkt, die von unserem kleinen Programm gar nicht verwendet werden. Wir können uns jetzt entscheiden, die benötigten libs einzeln aufzulisten oder die Warnung ebenfalls ignorieren. Da die gtkmm von diesen Bibliotheken abhängt, bekommen wir durch ihre Verwendung keine zusätzlichen Abhängigkeiten und die libs werden auch nur dynamisch geladen, sodass dies keinen allzu großen Einfluss auf die Größe des Programms hat. 10
11 Bleibt noch eine Warnung: gpg: skipped "Christoph Egger secret key not available Der GPG-Fehler weist darauf hin, dass wir für die verwendete -Adresse keinen privaten GPG-Schlüssel besitzen. GPG wird bei den Debian-Paketen dazu verwendet, den Ersteller zu identifizieren und dient nebenbei als Checksumme. Der Schlüssel wird mit gpg --gen-key erstellt. Für Näheres sei hier auf man gpg(1) verwiesen. $dpkg-buildpackage [...] dh_md5sums dh_builddeb dpkg-deb: Baue Paket»hallowelt«in»../hallowelt_ _i386.deb«. signfile hallowelt_ dsc You need a passphrase to unlock the secret key for user: "Christoph Egger <christoph@coders-nemesis.eu>" 1024-bit DSA key, ID 8DCFF142, created dpkg-genchanges >../hallowelt_ _i386.changes dpkg-genchanges: füge kompletten Quellcode beim Hochladen hinzu signfile hallowelt_ _i386.changes You need a passphrase to unlock the secret key for user: "Christoph Egger <christoph@coders-nemesis.eu>" 1024-bit DSA key, ID 8DCFF142, created dpkg-buildpackage: Alles hochzuladen (Originalquellen enthalten) 3.4 Das Menü Was uns jetzt noch fehlt ist der Menüeintrag. In der debian/rules fällt hierzu der Eintrag dh_installmenu auf. Die man-page zu diesem Befehl verrät, was wir machen müssen: Wir legen die Datei debian/hallowelt.menu an:?package(hallowelt):needs="x11" section="applications/graphics"\ title="hallowelt" command="/usr/bin/hallowelt"\ icon="/usr/share/icons/helloworldicon.png" und entfernen das # vor dem dh_installmenu, sodass der Befehl ausgeführt wird. Wobei Applications/Graphics nur eine «Notlösung» ist, da ich keine bessere Kategorie gefunden habe. Eine Auflistung aller Kategorien findet man unter man 5 menufile, dort befinden sich auch weitere Informationen und optionale Argumente für den Aufbau des Menüs. 11
12 3.5 Ein Test Jetzt ist es an der Zeit, einmal auszuprobieren, was wir bisher erreicht haben. Das Paket befindet sich in.. und kann z.b. mit sudo dpkg -i../hallowelt_ _i386.deb installiert werden (i386 ist die Architektur, bei mir steht hier i386 weil ich einen Intel-kompatiblen Prozessor und ein 32bit-Linux verwende). Wenn man jetzt sein Menü öffnet, sollte sich in der Sektion Grafik ein Eintrag Hallowelt mit dem Icon befinden. Das Programm lässt sich auch ausführen. "du" durch "man" ersetzt Wenn man dpkg -r wieder entfernt, sollte der Menüeintrag wieder verschwunden sein und ein Starten aus einem Terminal heraus ebenfalls fehlschlagen: $ hallowelt bash: hallowelt: command not found 4 Der Feinschliff 4.1 lintian Bei lintian handelt es sich um ein Programm, das die Struktur von Debian-Paketen auf Fehler überprüft. Sehen wir uns also einmal an, was sie zu unserem Hallowelt-Programm zu sagen haben: $ cd.. $ lintian ls. grep deb W: hallowelt: binary-without-manpage usr/bin/hallowelt W: hallowelt: package-contains-empty-directory usr/sbin/ W: hallowelt: readme-debian-contains-debmake-template W: hallowelt: copyright-lists-upstream-authors-with-dh_make-boilerplate W: hallowelt: copyright-contains-dh_make-todo-boilerplate E: hallowelt: menu-icon-not-in-xpm-format /usr/share/icons/helloworldicon.png W: hallowelt: spelling-error-in-description programm program E: hallowelt: section-is-dh_make-template W: hallowelt: new-package-should-close-itp-bug W: hallowelt: wrong-bug-number-in-closes l3:#nnnn Von oben nach unten: 1. Die Debian-Policy fordert, dass für jedes Programm eine Man-Page existiert. Da aber hallowelt keinerlei Optionen anbietet und keinerlei Nutzen hat, können wir das wohl getrost ignorieren. 2. Die Datei debian/dirs enthält noch eine Zeile usr/sbin (sbin steht für System Binary), aber wir legen nichts in diesem Verzeichnis ab. Diese Warnung können wir also mit dem Entfernen der entsprechenden Zeile aus der debian/dirs beheben. 3. Die debian/readme.debian enthält noch «Template-Text». Sehen wir uns die Datei an: 12
13 hallowelt for Debian <possible notes regarding this package - if none, delete this file> -- Christoph Egger <christoph@coders-nemesis.eu> Fri, 15 Feb :08: Schreiben wir also etwas Sinnvolles hinein und ersetzen den Text in den spitzigen Klammern (einschließlich der Klammern). Das gleiche können wir für die anderen «Template-Fehler» machen. 4. copyright-lists-upstream-authors-with-dh_make-boilerplate - Wenn wir in unsere debian/copyright sehen, stellen wir fest, dass dort Upstream Author(s) steht. Da wir nur einen Upstream Author haben entfernen wir das (s) einfach (sollten es mehrere Upstream Authors sein müssen die Klammern entfernt werden) 5. Ebenfalls in der debian/copyright befindet sich noch folgende Anmerkung: # Please also look if there are files or directories which have a # different copyright/license attached and list them here. Auch diese können wir (nachdem wir den Hinweis beachtet haben) herauslöschen. 6. Das Icon ist nicht im xpm-format. Auch hierbei handelt es sich um einen Bestandteil der Debian-Policy, das Paket funktioniert aber auch, wie wir gesehen haben, mit dem png-icon. 7. Hier sehen wir etwas Interessantes: lintian prüft die Rechtschreibung (allerdings nur die englische, Paketbeschreibungen sollten an sich immer Englisch sein) 8. Die Section «unknown» (jetzt geht es nicht um Menü-Sektionen, sondern um die Anwendung selbst) existiert nicht. Wir entscheiden uns für die Sektion «devel», da das Paket ja als «Hilfe» zum Entwickeln gedacht ist (dies orientiert sich auch an dem Beispielpaket hello, das bereits im Repository ist und denselben Zweck hat wie unser Paket). 9. Wenn für die Debian-Distribution gepackt wird, erstellt der Packager einen «Fehlerbericht», in dem er seine Absichten ankündigt. Dies geschieht als Fehler des «Pakets» wnpp, das ausschließlich für diesen Zweck existiert. Dieser Fehlerbericht wird natürlich hinfällig, wenn das Paket fertig ist, daher sollte das Paket den Fehlerbericht schließen. Da wir keinen WNPP-Fehlerbericht erstellt haben, müssen wir den Fehler wohl ignorieren. In der debian/changelog entfernen wir außerdem den Rest der Zeile, die mit «* initial Release» beginnt. Sehen wir uns an, was wir erreicht haben: $ ( cd hallo* ; dpkg-buildpackage -uc -us) ; lintian ls. grep deb [..] W: hallowelt: binary-without-manpage usr/bin/hallowelt E: hallowelt: menu-icon-not-in-xpm-format /usr/share/icons/helloworldicon.png W: hallowelt: new-package-should-close-itp-bug 13
14 Sieht schon deutlich besser aus. 4.2 pbuilder Bis jetzt haben wir das Paket mit dpkg-buildpackage gebaut. Man kann dies als den «schnellen Weg» bezeichnen, allerdings empfiehlt es sich, sollte man das Paket später veröffentlichen wollen, dem Umweg über pbuilder zu nehmen. pbuilder stellt sicher, dass alle Abhängigkeiten des Pakets erfüllt sind und nicht gegen neuere Bibliotheken gelinkt wird, die man sich auf seinem Arbeitssystem installiert hat, die aber für die Zieldistribution noch nicht vorhanden sind. Außerdem ist es mit pbuilder möglich, das Paket für verschiedene Distributionen zu bauen, auch für verschiedene Debian-Erben, ohne sich jedes dieser Systeme installieren zu müssen Setup Als erstes muss, nachdem pbuilder installiert wurde, eine Umgebung errichtet werden. Dies geschiet mit dem Kommando sudo pbuilder --create [--distribution NAME] Wird keine Distribution angegeben, so wird ein pbuilder für die aktuell verwendete Distribution errichtet. pbuilder initialisiert hier eine base.tgz, die alle wichtigen Dateien enthält. Wenn man mit --basetgz ein Ort angegeben hat, kann man auch pbuilder-umgebungen für verschiedene Distributionen errichten Der erste Durchlauf Zum Bauen mit pbuilder wird ein sogenanntes Source-Paket benötigt. dpkg-buildpackage baut ein solches gleich mit (man kann das durch die Option -b abschalten), sodass wir gleich anfangen können. Später können wir uns das Kompilieren beim dpkg-buildpackage sparen, indem wir die Option -S verwenden, kompiliert wird das Ganze ja im pbuilder. Der Aufruf erfolgt über sudo pbuilder --build *.dsc Und schon wieder gibt es einige Fehler zu beheben: $ sudo pbuilder --build ls. grep dsc [sudo] password for christoph: W: /home/christoph/.pbuilderrc does not exist I: using fakeroot in build. Current time: Mon Mar 17 14:40:54 CET 2008 pbuilder-time-stamp: Building the build Environment -> extracting base tarball [/var/cache/pbuilder/base.tgz] 14
15 -> creating local configuration -> copying local configuration -> mounting /proc filesystem -> mounting /dev/pts filesystem -> policy-rc.d already exists Obtaining the cached apt archive contents Installing the build-deps dpkg-architecture: warning: no utmp entry available and LOGNAME not defined; using uid of process (0) -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: i386 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder and should Depends: debhelper (>= 5) dpkg-deb: building package pbuilder-satisfydepends-dummy in /tmp/satisfydepends-aptitude/pbuilder- Reading package lists... Done Building dependency tree... Done aptitude is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Selecting previously deselected package pbuilder-satisfydepends-dummy. (Reading database files and directories currently installed.) Unpacking pbuilder-satisfydepends-dummy (from.../pbuilder-satisfydepends-dummy.deb)... dpkg: dependency problems prevent configuration of pbuilder-satisfydepends-dummy: pbuilder-satisfydepends-dummy depends on debhelper (>= 5); however: Package debhelper is not installed. dpkg: error processing pbuilder-satisfydepends-dummy (--install): dependency problems - leaving unconfigured Errors were encountered while processing: pbuilder-satisfydepends-dummy Reading package lists... Done Building dependency tree... Done Initializing package states... Done Building tag database... Done The following NEW packages will be automatically installed: debhelper file gettext gettext-base html2text intltool-debian libmagic1 po-debconf The following NEW packages will be installed: debhelper file gettext gettext-base html2text intltool-debian libmagic1 po-debconf The following packages are RECOMMENDED but will NOT be installed: curl libcompress-zlib-perl libmail-sendmail-perl lynx lynx-cur wget 0 packages upgraded, 8 newly installed, 0 to remove and 0 not upgraded. Need to get 0B/3370kB of archives. After unpacking 11.3MB will be used. Writing extended state information... Done Selecting previously deselected package libmagic1. (Reading database files and directories currently installed.) Unpacking libmagic1 (from.../libmagic1_4.17-5etch2_i386.deb)... Selecting previously deselected package file. Unpacking file (from.../file_4.17-5etch2_i386.deb)... Selecting previously deselected package html2text. Unpacking html2text (from.../html2text_1.3.2a-3_i386.deb)... Selecting previously deselected package gettext-base. Unpacking gettext-base (from.../gettext-base_ _i386.deb)... Selecting previously deselected package gettext. Unpacking gettext (from.../gettext_ _i386.deb)... Selecting previously deselected package intltool-debian. 15
16 Unpacking intltool-debian (from.../intltool-debian_ _all.deb)... Selecting previously deselected package po-debconf. Unpacking po-debconf (from.../po-debconf_1.0.8_all.deb)... Selecting previously deselected package debhelper. Unpacking debhelper (from.../debhelper_5.0.42_all.deb)... Setting up libmagic1 (4.17-5etch2)... Setting up file (4.17-5etch2)... Setting up html2text (1.3.2a-3)... Setting up gettext-base ( )... Setting up gettext ( )... Setting up intltool-debian ( )... Setting up po-debconf (1.0.8)... Setting up debhelper (5.0.42)... Setting up pbuilder-satisfydepends-dummy (0.invalid.0)... -> Finished parsing the build-deps Reading package lists... Done Building dependency tree... Done fakeroot is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Copying back the cached apt archive contents Copying source file -> copying [hallowelt_ dsc] -> copying [./hallowelt_1.0.0.orig.tar.gz] -> copying [./hallowelt_ diff.gz] Extracting source dpkg-source: extracting hallowelt in hallowelt dpkg-source: unpacking hallowelt_1.0.0.orig.tar.gz dpkg-source: applying./hallowelt_ diff.gz -> Building the package dpkg-buildpackage: source package is hallowelt dpkg-buildpackage: source version is dpkg-buildpackage: source changed by Christoph Egger <christoph@coders-nemesis.eu> dpkg-buildpackage: host architecture i386 dpkg-buildpackage: source version without epoch fakeroot debian/rules clean dh_testroot rm -f build-stamp configure-stamp # Add here commands to clean up after the build process. # /usr/bin/make clean dh_clean dpkg-source -b hallowelt dpkg-source: building hallowelt using existing hallowelt_1.0.0.orig.tar.gz dpkg-source: building hallowelt in hallowelt_ diff.gz dpkg-source: building hallowelt in hallowelt_ dsc debian/rules build # Add here commands to configure the package. touch configure-stamp # Add here commands to compile the package. g++ main.cpp -o hallowelt pkg-config gtkmm cflags --libs /bin/sh: pkg-config: command not found 16
17 main.cpp:1:20: error: gtkmm.h: No such file or directory main.cpp: In function int main(int, char**) : main.cpp:5: error: Gtk has not been declared main.cpp:5: error: expected ; before kit main.cpp:6: error: Gtk has not been declared main.cpp:6: error: expected ; before win main.cpp:7: error: Gtk has not been declared main.cpp:7: error: expected ; before img main.cpp:8: error: win was not declared in this scope main.cpp:8: error: img was not declared in this scope main.cpp:10: error: kit was not declared in this scope make: *** [build-stamp] Error 1 pbuilder: Failed autobuilding of package -> Aborting with an error -> unmounting dev/pts filesystem -> unmounting proc filesystem -> cleaning the build env -> removing directory /var/cache/pbuilder/build//7581 and its subdirectories Zuerst «installiert» pbuilder einige Pakete in seiner Umgebung, dann versucht er, das Paket zu bauen. Allerdings kann pbuilder weder das Programm pkg-config noch die gtkmm-header finden. Dies ist auch logisch, wenn man sich die debian/control ansieht. Fügen wir dort also bei den Build-Depends (mit einem Komma abgetrennt) das Paket «libgtkmm-2.4-dev» hinzu. Das ganze sieht dann in etwa so aus: Source: hallowelt Section: devel Priority: extra Maintainer: Christoph Egger <christoph@coders-nemesis.eu> Build-Depends: debhelper (>= 5), libgtkmm-2.4-dev Standards-Version: Package: hallowelt Architecture: any Depends: ${shlibs:depends}, ${misc:depends} Description: Grußprogramm hallowelt ist ein kleines Programm, das die Welt auf Deutsch grüßt.. hallowelt verwendet GTKmm als GUI-Toolkit Jetzt sollte der Build fehlerfrei durchlaufen (Neubau des Source-Pakets nicht vergessen bevor der pbuilder aufgerufen wird!) und das Ergebnis unserer Arbeit unter /var/cache/pbuilder/result zu finden sein: $ ls -lh /var/cache/pbuilder/result insgesamt 35M -rw-r--r-- 1 christoph christoph 2,5K :55 hallowelt_ diff.gz -rw-r--r-- 1 christoph christoph :55 hallowelt_ dsc -rw-r--r-- 1 christoph christoph :56 hallowelt_ _i386.changes -rw-r--r-- 1 christoph christoph 7,4K :56 hallowelt_ _i386.deb -rw-r--r-- 1 christoph christoph 2,9K :56 hallowelt_1.0.0.orig.tar.gz 17
18 Nachdem dieses Paket installiert wurde, kann man mit aptitude show hallowelt noch einmal betrachten, was zu unserem Paket zu sagen ist: $ aptitude show hallowelt Kann kein Archiv»testing«für das Paket»hallowelt«finden Paket: hallowelt Neu: ja Zustand: Installiert Automatisch installiert: ja Version: Priorität: extra Bereich: devel Verwalter: Christoph Egger <christoph@coders-nemesis.eu> Unkomprimierte Größe: 81,9k Hängt ab von: libatk1.0-0 (>= ), libc6 (>= ), libcairo2 (>= 1.2.4), libfontconfig1 (>= 2.4.0), libgcc1 (>= 1: ), libglib2.0-0 (>= ), libglibmm-2.4-1c2a, libgtk2.0-0 (>= 2.8.0), libgtkmm-2.4-1c2a, libpango1.0-0 (>= ), libsigc c2a (>= 2.0.2), libstdc++6 (>= ), libx11-6, libxcursor1 (> 1.1.2), libxext6, libxfixes3 (>= 1:4.0.1), libxi6, libxinerama1, libxrandr2, libxrender1 Beschreibung: Application greeting the world hallowelt ist ein kleines Program, das die Welt auf Deutsch grüßt. hallowelt uses the gtkmm library as it s graphics toolkit. Da wir als build-abhängigkeit libgtkmm-2.4-dev angegeben haben, hat pbuilder (und auch dpkg-buildpackage) bereits einiges an Abhängigkeiten hinzugefügt, ohne dass wir uns darum kümmern müssen. Hier zeigt sich, warum das Verwenden von pbuilder so hilfreich ist, um korrekte Pakete zu erstellen. 5 Tipps, Tricks & Sonstiges An dieser Stelle möchte ich noch ein paar Tipps loswerden. Manchmal ist es nicht so einfach, die richtigen Abhängigkeiten zu finden, um das Paket zu bauen. Insbesondere wenn diese Pakete alle bereits installiert waren und für das Entwickeln nicht installiert werden mussten oder wenn man Fremdsoftware packt. Hier hilft das tool apt-file, mit dem man die Paketquellen nach Dateinamen durchsuchen kann. Beim Gegentesten des Artikels auf meinem alten PC mit Ubuntu 7.10 ist mir aufgefallen, dass sich das Verhalten bei einigen Details von dem meines Notebooks mit Debian lenny unterscheidet. So war z.b. unter Ubuntu die explizite Angabe von -rfakeroot nötig, während Debian fakeroot gleich mitinstalliert und verwendet hatte. Auch scheint der Menüeintrag im GNOME-Menü nicht zu erscheinen. Das fluxbox meines Notebooks hat hier keine Probleme gemacht. 18
19 Alle wichtigen Informationen sind auf der Debian-Website im Entwicklerbereich vorhanden: Und zum Paketbau direkt: 6 Schlusswort Ich hoffe, ich konnte in diesem Artikel einen kleinen Einblick in den Paketbau für Debian-Systeme geben und dem einen oder anderen hier weiterhelfen. Natürlich ist hier bei weitem noch nicht alles abgedeckt; das Verfahren, eine Bibliothek zu packen, unterscheidet sich deutlich, man-pages müssen normalerweise vorhanden sein und bei komplexeren Programmen müssen mehr und komplexere Abhängigkeiten betrachtet werden. Ich wünsche viel Spaß beim Packen und vielleicht wird hier ja noch der eine oder andere irgendwann Debian-Maintainer. Verweise [1] mailto:christoph@coders-nemesis.eu 19
Debian Pakete bauen. Eine kurze Einführung. Sebastian Harl. 12. März
Debian Pakete bauen Eine kurze Einführung Sebastian Harl Astronomisches Institut der Universität Erlangen-Nürnberg 12. März 2009 Überblick Innereien Beispiel
MehrDebian Packaging. Sebastian Reichel <sre@debian.org>
Debian Packaging Sebastian Reichel Debian - The universal OS Softwaresuche Abhängigkeiten Automatisches updaten... apt-get / aptitude apt-cache search foo apt-get install foo apt-get remove
MehrDebian-Paket-Bau. Eine kurze Einführung. Alexander Reichle-Schmehl Debian Projekt. 10 Juni 2010, Mini-DebConf Berlin
Debian-Paket-Bau Eine kurze Einführung Alexander Reichle-Schmehl Debian Projekt 10 Juni 2010, Mini-DebConf Berlin tolimar@debian.org (Debian Projekt) Debian-Paket-Bau mdc2010 1 / 14
MehrPaketverwaltung. Dr.-Ing. Matthias Sand und Dipl.-Inf. Stefan Potyra
Paketverwaltung Dr.-Ing. Matthias Sand und Dipl.-Inf. Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009 Paketverwaltung 1/31 2009-05-31
MehrDieser Artikel stammt aus dem Magazin von C++.de (http://magazin.c-plusplus.de)
1 Vorwort Dieser Artikel stammt aus dem Magazin von C++.de (http://magazin.c-plusplus.de) 1.1 Einleitung Willkommen zu meinem zweiten Artikel, in dem es sich um Softwareinstallation unter Linux dreht.
MehrGrundlagen des Debian-Paketverwaltungssystems Eine kurze Einführung - WS 09/10. Fatih Abut (fabut2s@smail.inf.fh-brs.de)
Fachbereich Informatik Master in Computer Science Grundlagen des Debian-Paketverwaltungssystems Eine kurze Einführung - WS 09/10 Fatih Abut (fabut2s@smail.inf.fh-brs.de) 22. Oktober 2009 Inhalt Problemstellung
MehrVPN-Client Apple macos El Capitan (10.11)
VPN-Client Apple macos El Capitan (10.11) Konfiguration und Installation des internen VPN-Clients und Cisco AnyConnect VPN-Clients Configuring and installing the internal VPN client and Cisco AnyConnect
Mehrp^db=`oj===pìééçêíáåñçêã~íáçå=
p^db=`oj===pìééçêíáåñçêã~íáçå= Error: "Could not connect to the SQL Server Instance" or "Failed to open a connection to the database." When you attempt to launch ACT! by Sage or ACT by Sage Premium for
MehrNEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient
Filing system designer FileDirector Version 2.5 Novelties FileDirector offers an easy way to design the filing system in WinClient. The filing system provides an Explorer-like structure in WinClient. The
MehrConfiguring and installing the Cisco AnyConnect VPN client
VPN-Client Linux Konfiguration und Installation des Cisco-AnyConnect VPN-Clients Configuring and installing the Cisco AnyConnect VPN client 17. Juli 2017 kim.uni hohenheim.de kim@uni hohenheim.de Über
MehrWord-CRM-Upload-Button. User manual
Word-CRM-Upload-Button User manual Word-CRM-Upload for MS CRM 2011 Content 1. Preface... 3 2. Installation... 4 2.1. Requirements... 4 2.1.1. Clients... 4 2.2. Installation guidelines... 5 2.2.1. Client...
MehrReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2
ReadMe zur Installation der BRICKware for Windows, Version 6.1.2 Seiten 2-4 ReadMe on Installing BRICKware for Windows, Version 6.1.2 Pages 5/6 BRICKware for Windows ReadMe 1 1 BRICKware for Windows, Version
MehrInstallation von Asterisk
19.03.2017 23:16. 1/6 Installation von Asterisk Installation von Asterisk Asterisk wird nun der Reihe nach wie folgt übersetzt und installiert. Als erstes wechseln wir in das neu erstellte Programmverzeichnis:
Mehrhttps://rz.hs-offenburg.de/en/nc/servicekatalog/ -mehr/zusatzdienste/novell-messenger/anleitung/ 26 Sep :23:41
Hinweis: Die Serveradresse für den Messenger hat sich geändert! Bitte verwenden Sie die neue Adresse messenger.rz.hsoffenburg.de; die alte Adresse wird für einen Übergangszeitraum bestehen bleiben. Nutzer
Mehrhttps://rz.hs-offenburg.de/nc/servicekatalog/ -mehr/zusatzdienste/novell-messenger/anleitung/ 15 Nov :53:48
Hinweis: Die Serveradresse für den Messenger hat sich geändert! Bitte verwenden Sie die neue Adresse messenger.rz.hsoffenburg.de; die alte Adresse wird für einen Übergangszeitraum bestehen bleiben. Nutzer
MehrBeispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging
Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit
MehrDebian-Packaging-Tutorial. David Frey
Debian-Packaging-Tutorial David Frey Copyright 2003 David Frey Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved
MehrVGM. VGM information. HAMBURG SÜD VGM WEB PORTAL - USER GUIDE June 2016
Overview The Hamburg Süd VGM-Portal is an application which enables to submit VGM information directly to Hamburg Süd via our e-portal web page. You can choose to insert VGM information directly, or download
MehrInstallation Guide/ Installationsanleitung. Spring 16 Release
Guide/ Installationsanleitung Spring 16 Release Visit AppExchange (appexchange.salesforce.com) and go to the CONNECT for XING listing. Login with your Salesforce.com user is required. Click on Get It Now.
MehrCheckliste. Verantwortlich: Benedikt Pawletta K-SIPE-2 Status:
Checkliste Verantwortlich: Benedikt Pawletta K-SIPE-2 Status: Freigabe Zielstatus: Version: V1.2 Datum: 22.02.2016 2 Versionshistorie: Version Status Datum Bemerkung Bearbeiter V1.2 Entwurf 15.02.2016
MehrDISTRIBUTION / MARKETING
DISTRIBUTION / MARKETING VON RAJASEKARAN YOGARAJAH BETREUER: MANUEL HEUSNER Im Rahmen des Seminars Open-Source-Softwareentwicklung Dozirende: Jendrik Seipp, Malte Helmert Involve me and I learn Wir machen
MehrVGM. VGM information. HAMBURG SÜD VGM WEB PORTAL USER GUIDE June 2016
Overview The Hamburg Süd VGM Web portal is an application that enables you to submit VGM information directly to Hamburg Süd via our e-portal Web page. You can choose to enter VGM information directly,
MehrMaintainer Schulung (Teil 2)
Maintainer Schulung (Teil 2) Debian Paketentwicklung am Max-Planck-Institut für Kognitions- und Neurowissenschaften Andreas Tille Debian Leipzig, 7. Oktober 2006 1 / 17 Gliederung 1 Debian Community 2
MehrJTAGMaps Quick Installation Guide
Index Index... 1 ENGLISH... 2 Introduction... 2 Requirements... 2 1. Installation... 3 2. Open JTAG Maps... 4 3. Request a free JTAG Maps license... 4 4. Pointing to the license file... 5 5. JTAG Maps
MehrNVR Mobile Viewer for iphone/ipad/ipod Touch
NVR Mobile Viewer for iphone/ipad/ipod Touch Quick Installation Guide DN-16111 DN-16112 DN16113 2 DN-16111, DN-16112, DN-16113 for Mobile ios Quick Guide Table of Contents Download and Install the App...
MehrUSB Treiber updaten unter Windows 7/Vista
USB Treiber updaten unter Windows 7/Vista Hinweis: Für den Downloader ist momentan keine 64 Bit Version erhältlich. Der Downloader ist nur kompatibel mit 32 Bit Versionen von Windows 7/Vista. Für den Einsatz
MehrEMCO Installationsanleitung / Installation instructions
EMCO Installationsanleitung / Installation instructions Installationsanleitung Installation instructions Digitalanzeige digital display C40, FB450 L, FB600 L, EM 14D/17D/20D Ausgabe / Edition B 2012-03
MehrLiteratur. Einführung in Unix. Login. Passwort. Mag. Thomas Griesmayer. Benutzererkennung und Passwort Case-Sensitiv Prompt
Literatur Einführung in Unix Introduction to Unix Martin Weissenböck: Linux, 2000, 2. Auflage, Adim Bodo Bauer: SuSE Linux 6.2, Installation, Konfiguration und erste Schritte, 1999, 15. Auflage, SuSE Verlag.
MehrTube Analyzer LogViewer 2.3
Tube Analyzer LogViewer 2.3 User Manual Stand: 25.9.2015 Seite 1 von 11 Name Company Date Designed by WKS 28.02.2013 1 st Checker 2 nd Checker Version history Version Author Changes Date 1.0 Created 19.06.2015
MehrLinux Kommandozeile: Einfache Skripte. 1 Wiederhohlung. 2 Einfache Skripte
Linux Kommandozeile: Einfache Skripte AST, Wintersemester 2016/2017 1 Wiederhohlung Hier sind ein paar Befehle, die ihr letzte Woche schon kennen gelernt habt und heute benutzt. Befehl Parameter Funktion
MehrKarten aktualisieren Don t Panik
Karten aktualisieren Don t Panik 1. Starten Sie Ihr Gerät und schalten Sie das Navigationsprogramm ein. 2. Klicken Sie auf das "Menü": 3. Klicken Sie anschließend auf "Einstellungen": 4. Bewegen Sie den
MehrBenutzer und Rechte Teil 1, Paketverwaltung
Benutzer und Rechte Teil 1, Paketverwaltung Linux-Kurs der Unix-AG Benjamin Eberle 25. Mai 2016 Wozu verschiedene Benutzer? (1) Datenschutz mehrere Benutzer pro Rechner, insbesondere auf Server-Systemen
MehrInstallationsanleitung
1. C Installationsanleitung C-Programmierung mit Hilfe von Eclipse unter Windows XP mit dem GNU C-Compiler (GCC) 2. Inhaltsverzeichnis 1. Einleitung... 3 2. Cygwin... 3 2.1 Cygwin-Installation... 3 2.2
MehrTitelbild1 ANSYS. Customer Portal LogIn
Titelbild1 ANSYS Customer Portal LogIn 1 Neuanmeldung Neuanmeldung: Bitte Not yet a member anklicken Adressen-Check Adressdaten eintragen Customer No. ist hier bereits erforderlich HERE - Button Hier nochmal
MehrDebian Pakete im Eigenbau
LUGA 01. Februar 2006 Vorwort Dieses Dokument beschreibt Aufbau und Struktur eines Debian-Pakets und eine einfache Möglichkeit selbst Pakete zu erstellen. Wenn Sie professionell wollen, lesen Sie bitte
MehrHow-To-Do. Communication to Siemens OPC Server via Ethernet
How-To-Do Communication to Siemens OPC Server via Content 1 General... 2 1.1 Information... 2 1.2 Reference... 2 2 Configuration of the PC Station... 3 2.1 Create a new Project... 3 2.2 Insert the PC Station...
MehrIngenics Project Portal
Version: 00; Status: E Seite: 1/6 This document is drawn to show the functions of the project portal developed by Ingenics AG. To use the portal enter the following URL in your Browser: https://projectportal.ingenics.de
MehrUmstellung eines Outlook Kontos von ActiveSync zu IMAP. Changing an Outlook account from ActiveSync to IMAP
Outlook 2013/2016 Umstellung eines Outlook Kontos von ActiveSync zu IMAP Changing an Outlook account from ActiveSync to IMAP 18.04.2018 kim.uni-hohenheim.de kim@uni-hohenheim.de Diese Anleitung beschreibt
MehrGebrauchsanleitung zu "iexpress"
Gebrauchsanleitung zu "iexpress" Selbst entpackende Archive, wenn gewollt sogar mit Installationsroutine, mit Windows herstellen: Wenn Sie auf die kleinen Vorschaufenster klicken, sehen sie jeweils einen
MehrDebian Pakete selber erstellen. Steffen Möller Night of Open Knowledge Lübeck 2013
Debian Pakete selber erstellen Steffen Möller Night of Open Knowledge Lübeck 2013 Debian was ist das? Ein Miteinander von Entwicklern Society mit Infrastruktur für Mitglieder, einem gewählten Project Leader,
MehrAnleitung zur Verwendung des Update-Tools für
English version see below (page 10) Anleitung zur Verwendung des Update-Tools für - KW DDC Steuergeräte - KW DDC WLAN Module - KW DLC Steuergeräte - KW DLC WLAN Module Bitte beachten Sie: jedes Steuergerät
Mehrphp4-pakete mit Informixunterstützung für Debian Seite 1/6 PHP4 mit Informix auf Debian testing und stable (August 2005) Überblick Voraussetzungen
php4-pakete mit Informixunterstützung für Debian Seite 1/6 PHP4 mit Informix auf Debian testing und stable (August 2005) Inhaltsübersicht Überblick...1 Voraussetzungen...1 Änderungen am rules File...2
Mehriid software tools QuickStartGuide iid USB base driver installation
iid software tools QuickStartGuide iid software tools USB base driver installation microsensys Nov 2016 Introduction / Einleitung This document describes in short form installation of the microsensys USB
MehrJava Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation
Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/
MehrKURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich?
KURZANLEITUNG Firmware-Upgrade: Wie geht das eigentlich? Die Firmware ist eine Software, die auf der IP-Kamera installiert ist und alle Funktionen des Gerätes steuert. Nach dem Firmware-Update stehen Ihnen
MehrInbetriebnahme einer lokal installierten Demoversion von VuFind
Für den Betrieb von VuFind werden diese Softwarekomponenten benötigt: - Webserver (Apache), - Suchindex (Solr), - Programmiersprache (PHP) und - Datenbank (MySQL). Optional kann ein Integriertes Bibliothekssystem
MehrUSB-Stick (USB-Stick größer 4G. Es ist eine größere Partition notwendig als die eines 4GB Rohlings, der mit NTFS formatiert wurde)
Colorfly i106 Q1 System-Installations-Tutorial Hinweise vor der Installation / Hit for preparation: 准 备 事 项 : 外 接 键 盘 ( 配 套 的 磁 吸 式 键 盘 USB 键 盘 通 过 OTG 插 发 射 器 的 无 线 键 盘 都 可 ); U 盘 ( 大 于 4G 的 空 白 U 盘,
MehrHow to use the large-capacity computer Lilli? IMPORTANT: Access only on JKU Campus!! Using Windows:
How to use the large-capacity computer Lilli? IMPORTANT: Access only on JKU Campus!! Using Windows: In order to connect to Lilli you need to install the program PUTTY. The program enables you to create
MehrCan I use an older device with a new GSD file? It is always the best to use the latest GSD file since this is downward compatible to older versions.
EUCHNER GmbH + Co. KG Postfach 10 01 52 D-70745 Leinfelden-Echterdingen MGB PROFINET You will require the corresponding GSD file in GSDML format in order to integrate the MGB system: GSDML-Vx.x-EUCHNER-MGB_xxxxxx-YYYYMMDD.xml
MehrDebian Installationstools
9.3.2007 Inhaltsangabe Inhaltsverzeichnis 1 Einleitung 2 dpkg 3 apt 4 Fragen? Einleitung es gibt eine Vielzahl an Installationstools textbasierte Tools aptitude, dselect, apt, dpkg, grafische Tools kpackage,
Mehram besten erst den ganzen Abschnitt lesen, besonders das mit dem patch!
Doorpi installieren am besten erst den ganzen Abschnitt lesen, besonders das mit dem patch! https://www.doorpi.org/forum/lexicon/entry/1-installation-doorpi-mittels-pypi-auf-einemraspberry-pi-raspbian/
MehrHow-To-Do. Hardware Configuration of the CC03 via SIMATIC Manager from Siemens
How-To-Do Hardware Configuration of the CC03 via SIMATIC Manager from Siemens Content Hardware Configuration of the CC03 via SIMATIC Manager from Siemens... 1 1 General... 2 1.1 Information... 2 1.2 Reference...
MehrMATLAB driver for Spectrum boards
MATLAB driver for Spectrum boards User Manual deutsch/english SPECTRUM SYSTEMENTWICKLUNG MICROELECTRONIC GMBH AHRENSFELDER WEG 13-17 22927 GROSSHANSDORF GERMANY TEL.: +49 (0)4102-6956-0 FAX: +49 (0)4102-6956-66
MehrInstallationshinweise Z501J / Z501K Adapter IrDa USB Installation hints Z501J / Z501K Adapter IrDa USB
Installationshinweise Z501J / Z501K Adapter IrDa USB Installation hints Z501J / Z501K Adapter IrDa USB 1/3.04 (Diese Anleitung ist für die CD geschrieben. Wenn Sie den Treiber vom WEB laden, entpacken
MehrDebian-Paketierung. Seminar Betriebssystemdienste und -administration. Christian Schubert. Hasso-Plattner-Institut. Seite 1 2005-04-28
Debian-Paketierung Seminar Betriebssystemdienste und -administration Hasso-Plattner-Institut Seite 1 Gliederung Debian Paketformat Aufbau Inhalt Paketerstellung Administration dpkg apt Synchronisierung
MehrHier ein Ausschnitt aus der Datei /DEBIAN/control in einem Installationspaket mit der Liste der Abhängigkeiten:
2.6.2 Installationspaket auf dem Zielrechner installieren 2.6.2.1 Informationen zum Zielrechner Der Zielrechner wurde durch das Klonen einer virtuellen Mint-Master-Maschine unter VirtualBox auf dem Entwicklungsrechner
MehrGliederung. Debian-Paketierung für Fortgeschrittene... was nach dh_make, anpassen der Templates und dpkg-buildpackage kommt.
Debian-Paketierung für Fortgeschrittene 1 / 45 Debian-Paketierung für Fortgeschrittene 2 / 45 Gliederung Debian-Paketierung für Fortgeschrittene... was nach dh_make, anpassen der Templates und dpkg-buildpackage
MehrThemenübersicht. Benutzerverwaltung. Verwaltung Rechte Paketverwaltung. Paketquellen Paketmanager RPM und APT Paketbereiche in Debian
Benutzerverwaltung Verwaltung Rechte Paketverwaltung Paketquellen Paketmanager RPM und APT Paketbereiche in Debian Themenübersicht GNU/Linux ist ein Mehrbenutzer-Betriebssystem (d.h. es können mehrere
MehrRenée Bäcker. Perl $foo Magazin
Renée Bäcker Renée Bäcker Perl Renée Bäcker Perl $foo Magazin Renée Bäcker Perl $foo Magazin OTRS Renée Bäcker Perl $foo Magazin OTRS u.v.m Früher... Am Anfang steht der Kunde... dann kommt der Auftrag
MehrCameraserver mini. commissioning. Ihre Vision ist unsere Aufgabe
Cameraserver mini commissioning Page 1 Cameraserver - commissioning Contents 1. Plug IN... 3 2. Turn ON... 3 3. Network configuration... 4 4. Client-Installation... 6 4.1 Desktop Client... 6 4.2 Silverlight
MehrHow To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform
How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform 0. Benötigt werden folgende Softwarepakete:.NET Framework Software Development Kit (http://www.microsoft.com/downloads/details.aspx?familyid=4fe5bdb5-c7a7-4505-9927-2213868a325b&displaylang=en)
Mehr1. General information... 2 2. Login... 2 3. Home... 3 4. Current applications... 3
User Manual for Marketing Authorisation and Lifecycle Management of Medicines Inhalt: User Manual for Marketing Authorisation and Lifecycle Management of Medicines... 1 1. General information... 2 2. Login...
MehrDer Adapter Z250I / Z270I lässt sich auf folgenden Betriebssystemen installieren:
Installationshinweise Z250I / Z270I Adapter IR USB Installation hints Z250I / Z270I Adapter IR USB 06/07 (Laden Sie den Treiber vom WEB, entpacken Sie ihn in ein leeres Verzeichnis und geben Sie dieses
MehrMartin Schütte. 6. Brandenburger Linux-Infotag 21. November 2009
Martin Schütte 6. Brandenburger Linux-Infotag 21. November 2009 Was ist PEAR? PHP Extension and Application Repository Bibliothek offenen PHP-Quellcodes PHP Coding Standards Infrastruktur PEAR s mission
MehrEMCO Installationsanleitung Installation instructions
EMCO Installationsanleitung Installation instructions Installationsanleitung Installation instructions Digitalanzeige digital display C40, FB450 L, FB600 L, EM 14D/17D/20D Ausgabe Edition A 2009-12 Deutsch...2
MehrFEBE Die Frontend-Backend-Lösung für Excel
FEBE Die Frontend--Lösung für FEBE Die Frontend--Lösung für FEBE.pptx 8.04.206 0:43 FEBE Die Frontend--Lösung für Nutzer A alle_aufträge neuer_auftrag Auftragsänderung Nutzer B alle_aufträge neuer_auftrag
MehrSIMATIC HMI. Hotfix 1 (K ) zu WinCC V6.2 SP3. Installations- und Benutzungshinweise. Inhaltsverzeichnis
SIMATIC HMI Hotfix 1 (K6.2.3.1) zu WinCC V6.2 SP3 Installations- und Benutzungshinweise Diese Hinweise sind den Aussagen in den Handbüchern und in der Online-Hilfe in der Verbindlichkeit übergeordnet.
MehrDDBAC-SDK unter Linux (mit Wine) Installationsanleitung
DDBAC-SDK unter Linux (mit Wine) Installationsanleitung Installation von Wine Einleitung Übersicht Titel Thema Datei DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC_Wine_Installation.doc
MehrOMNITRONIC DSP Control Installationsanweisungen bis Version 1.3.1
OMNITRONIC DSP Control Installationsanweisungen bis Version 1.3.1 Bitte befolgen Sie diese Schritt-für-Schritt Anleitung genau, nachdem Sie ein Software Update von unserer Website heruntergeladen haben.
MehrLinux Tutorium. 4. Benutzer und Rechte. Version vom :21:32
Linux Tutorium 4. Benutzer und Rechte Version vom 05.06.2008 11:21:32 Benutzer und Rechte GNU/Linux ist ein Mehrbenutzer Betriebssystem Mehrere Benutzer können z. T. gleichzeitig auf dem System angemeldet
MehrInstallationsanleitung Tivoli Storage Manager für Linux
11. März 2009, Version 1.0 Installationsanleitung für Linux Verwaltungsdirektion Informatikdienste Installationsanleitung für Linux Inhaltsverzeichnis...1 Installation... 1 Voraussetzungen...1 Ablauf der
MehrADD ON 1 MediBalance Pro-Software muss installiert sein. must be installed.
Befundung und Training Test and Training ADD ON 1 MediBalance Pro-Software muss installiert sein. must be installed. Gleichgewicht / Balance Schwindeltraining / vertigo training Koordination / Coordination
Mehr1. Vorbereiten das Host, folgende Software Pakete müssen installiert werden: gnome-devel bison flex texinfo libncurses5-dev git codeblocks putty
1. Vorbereiten das Host, folgende Software Pakete müssen installiert werden: gnome-devel bison flex texinfo libncurses5-dev git codeblocks putty 2. Buildroot installieren Buildroot (www.buildroot.org)
MehrProduktinformation _185PNdeen
Produktinformation 201407_185PNdeen Solldaten-UPGRADE Juli 2014 WA 900 / 920 / 020 / 950 / 970 CURA S 800 / 860 / 060 / 900 / 960 WAB01 / WAB 02 CCT CURA R1200 / CURA R2000/ API R2000 BOSCH FWA 51x Auf
MehrInstallation unter LINUX mit PostgreSQL DB
Installation unter LINUX mit PostgreSQL DB Inhaltsverzeichnis 1. Installation und Konfiguration der PostgreSQL Datenbank... 3 2. Installation von Intrexx Xtreme 4.5... 5 Schreibkonventionen In diesem Handbuch
MehrNachdem Sie die Datei (z.b. t330usbflashupdate.exe) heruntergeladen haben, führen Sie bitte einen Doppelklick mit der linken Maustaste darauf aus:
Deutsch 1.0 Vorbereitung für das Firmwareupdate Vergewissern Sie sich, dass Sie den USB-Treiber für Ihr Gerät installiert haben. Diesen können Sie auf unserer Internetseite unter www.testo.de downloaden.
MehrVPN-Client Android Konfiguration und Installation des internen VPN Clients und Cisco-AnyConnect VPN-Clients
VPN-Client Android 6.0.1 Konfiguration und Installation des internen VPN Clients und Cisco-AnyConnect VPN-Clients Configuring and installing the internal VPN client and Cisco Any- Connect VPN client 7.
Mehr1.102 Installation von Linux und Paketmanagement. Auf dem Weg: Certified Linux Professional
http://creativecommons.org/licenses/by-nc-sa/3.0/de/, Copyright ( ) 2009 M.Peichl. Dieses Werk Michael oder Inhalt Peichl, ist michael@peichls.de unter der Creative Commons-Lizenz lizenziert. 1.102.5 Red
Mehrcloop - a transparently decompressing block device
cloop - a transparently decompressing block device Klaus Knopper KNOPPER.NET in cooperation with LinuxTag e.v. Build date: 10.3.2002 Zusammenfassung cloop - Compressed Loopback Device - ist ein ursprünglich
MehrHiOPC Hirschmann Netzmanagement. Anforderungsformular für eine Lizenz. Order form for a license
HiOPC Hirschmann Netzmanagement Anforderungsformular für eine Lizenz Order form for a license Anforderungsformular für eine Lizenz Vielen Dank für Ihr Interesse an HiOPC, dem SNMP/OPC Gateway von Hirschmann
MehrMerkblatt System-C Installation Linux
1. Herunterladen: SystemC unter www.accellera.org Downloads Accellerra Standards 2. Kommandozeile öffnen SystemC (Core Language including Examples & TLM, AMS, ) Core SystemC Language and Examples akzeptieren
Mehr[HowTo] NZBGet Geschrieben von Per - 02 Aug :41
[HowTo] NZBGet Geschrieben von Per - 02 Aug 2011 08:41 Ich habe die Installation von NZBGet mal zusammengefasst. Die ganze Anleitung ist nur durch Julius entstanden, ohne ihn wäre diese Anleitung zustande
MehrAnleitung für Vermieter. Directions for Landlord/Landlady. zum Erstellen eines Accounts und zum Anlegen von Angeboten
Anleitung für Vermieter zum Erstellen eines Accounts und zum Anlegen von Angeboten Stand: August 2016 Directions for Landlord/Landlady for setting up an account and uploading offers Status: August 2016
MehrEffizienz im Vor-Ort-Service
Installation: Anleitung SatWork Integrierte Auftragsabwicklung & -Disposition Februar 2012 Disposition & Auftragsabwicklung Effizienz im Vor-Ort-Service Disclaimer Vertraulichkeit Der Inhalt dieses Dokuments
MehrRemaster-Kit Anleitung von Carsten Rohmann und Leszek Lesner
Remaster-Kit Anleitung von Carsten Rohmann und Leszek Lesner 1. Was ist Remaster-Kit? Remaster-Kit ist ein Programm, welches das Remastern und Neubauen von ZevenOS-Neptune und anderen Debian- bzw. Ubuntu-basierenden
MehrAnleitung zur Einrichtung von OpenCV
Anleitung zur Einrichtung von Dieses Dokument beschreibt die Einrichtung und Funktionsüberprüfung von im Kontext der Lehrveranstaltung. Einrichtung Dieser Abschnitt beschreibt die Einrichtung von unter
Mehrv i r t u A L C O M P o r t s
v i r t u A L C O M P o r t s (HO720 / HO730) Installieren und Einstellen Installation and Settings Deutsch / English Installieren und Einstellen des virtuellen COM Ports (HO720 / HO730) Einleitung Laden
MehrLinux - a bit advanced
Linux - a bit advanced Überblick Rechteverwaltung Dateisystem Shell-Programmierung Remote login Paketsystem Alternativen-System Rechte Drei Benutzerklassen Owner/User Group Others Drei Rechte Ausführen
MehrLinux Kurs Vorlesung 2 - Terminal
Linux Kurs Vorlesung 2 - Terminal Verzeichnis-Hierarchie / /bin /sbin /lib /usr /tmp /dev /boot /etc /var /home - Wurzelverzeichnis grundlegende Befehle und Programme (binary) grundlegende Systembefehle
MehrInstallation und Start der Software AQ2sp Installation and Start of the software AQ2sp
Installation and Start of the software Abhängig von Ihrer WINDOWS-Version benötigen Sie Administrator-Rechte zur Installation dieser Software. Geeignet für folgende WINDOWS-Versionen: Windows 98 SE Windows
MehrGuidance Notes for the eservice 'Marketing Authorisation & Lifecycle Management of Medicines' Contents
Guidance Notes for the eservice 'Marketing Authorisation & Lifecycle Management of Medicines' Contents Login... 2 No active procedure at the moment... 3 'Active' procedure... 4 New communication (procedure
MehrBACKUP EAGLE. Release Notes. Version: 6.4.0.11 Date: 05/07/2012
BACKUP EAGLE Release Notes Version: 6.4.0.11 Date: 05/07/2012 Schmitz RZ Consult GmbH BACKUP EAGLE Release Notes Seite 1 von 8 Date 07.05.2012 Contents 1. Improvements... 3 1.1. Improved servercheck reporting...
MehrAmazon WorkSpaces Application Manager. Benutzerhandbuch
Amazon WorkSpaces Application Manager Benutzerhandbuch Amazon WorkSpaces Application Manager: Benutzerhandbuch Copyright 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's
MehrTechnical Information
Firmware-Installation nach Einbau des DP3000-OEM-Kits Dieses Dokument beschreibt die Schritte die nach dem mechanischen Einbau des DP3000- OEM-Satzes nötig sind, um die Projektoren mit der aktuellen Firmware
MehrGetting started with MillPlus IT V530 Winshape
Getting started with MillPlus IT V530 Winshape Table of contents: Deutsche Bedienungshinweise zur MillPlus IT V530 Programmierplatz... 3 English user directions to the MillPlus IT V530 Programming Station...
MehrAnleitung zur Einrichtung von OpenCV
Anleitung zur Einrichtung von Dieses Dokument beschreibt die Einrichtung und Funktionsüberprüfung von im Kontext der Lehrveranstaltung. Einrichtung Dieser Abschnitt beschreibt die Einrichtung von unter
MehrWie man eigene Programme erstellt
Kapitel 3 Wie man eigene Programme erstellt In diesem Kapitel geht es darum, sich mit einem Compiler vertraut zu machen. Dabei erfahren Sie, wie Sie eigene Programme auf den Systemen Windows und Linux
MehrYealink W52 DECT IP Telefon
Yealink W52 DECT IP Telefon Manuelle Neukonfiguration Dokumentenversion 1.0 Yealink W52 DECT IP Telefon Mauelle Neukonfiguration Copyright Hinweis Copyright 2016 finocom AG Alle Rechte vorbehalten. Jegliche
Mehr