4 175
muokkausta
(alkua, jatkan huomenna (päivällä), nyt nukkumaan) |
(välitallennus) |
||
Rivi 41: | Rivi 41: | ||
Paketin luova työkalu päättelee paketin tiedostot siten, että ohjelma asennetaan sen valvonnassa väliaikaiseen alihakemistoon. Yleensä tämä alihakemisto on <tt>debian/paketin_nimi</tt>, jonne paketti asennetaan aivan normaalisti: esimerkiksi Hellon binääri menisi hakemistoon <tt>debian/hello-2.2/usr/bin/hello</tt>. | Paketin luova työkalu päättelee paketin tiedostot siten, että ohjelma asennetaan sen valvonnassa väliaikaiseen alihakemistoon. Yleensä tämä alihakemisto on <tt>debian/paketin_nimi</tt>, jonne paketti asennetaan aivan normaalisti: esimerkiksi Hellon binääri menisi hakemistoon <tt>debian/hello-2.2/usr/bin/hello</tt>. | ||
[[Autoconf]]ia käyttävien pakettien kanssa (pääasiassa ohjelmat, jotka asennetaan komennolla <tt>./configure && make && make | [[Autoconf]]ia käyttävien pakettien kanssa (pääasiassa ohjelmat, jotka asennetaan komennolla <tt>./configure && make && make install</tt>) paketin luoma työkalu osaa hoitaa tämän automaattisesti, eikä sinun tarvitse tässä vaiheessa tehdä mitään. Kuten huomasit asentaessamme ohjelmaa oppaan alussa, annoimme configure-skriptille parametrin <tt>--prefix=/hakemisto/jonne/ohjelma/asennetaan</tt>. Paketoija antaa configurelle samalla tavalla sopivan parametrin, jolloin ohjelma asentuu oikeaan paikkaan. | ||
=== Mitä jos ohjelma ei käytä autoconfia? === | === Mitä jos ohjelma ei käytä autoconfia? === | ||
Rivi 93: | Rivi 93: | ||
=== copyright === | === copyright === | ||
Paketin tekijänoikeuksista kerrotaan tiedostossa <tt>debian/copyright</tt>. Tämän tiedoston muoto on periaatteessa vapaa, mutta hyvän tiedoston saa muokkaamalla dh_maken luomaa. Tässä tiedostosta tulee käydä ilmi paketin luoja, alkuperäinen tekijä ja ohjelman tekijänoikeustiedot (esim. GPL-lisenssin alainen). | |||
=== changelog === | === changelog === | ||
dh_make luo seuraavanlaisen pohjan <tt>debian/changelog</tt>-tiedostolle: (rivinumerot lisätty) | |||
1 hello (2.2-1) unstable; urgency=low | |||
2 | |||
3 * Initial release (Closes: #nnnn) <nnnn is the bug number of your ITP> | |||
3 | |||
4 -- Heikki Mäntysaari <heikkim@gmail.com> Sat, 21 Apr 2007 23:59:27 +0300 | |||
</pre> | |||
Rivillä 1 on aluksi paketin nimi (hello) ja versionumero (2.2-1). Seuraavana on jakelun nimi, johon paketti kuuluu (Debianilla on stable, testing ja unstable -jakelut). Unstable on yleensä hyvä. Viimeisenä on tieto paketin kiireellisyydestä (urgency), yleensä "low" on sille oikea arvo. | |||
Tämän jälkeen seuraavilla riveillä on itse muutosloki (engl. ''changelog''). Rivin alussa on kaksi välilyöntiä ja tähti (*). Viimeisnä (rivillä 4) on tieto paketin tekijästä. Tämän rivin alussa on yksi välilyönti. | |||
=== rules === | === rules === | ||
Tiedosto <tt>debian/rules</tt> on [[Makefile]]n tapainen tiedosto, jonka perusteella varsinainen paketti luodaan. Tämän tiedoston perusteella ohjelma käännetään ja asennetaan hakemistoon <tt>debian/paketin_nimi</tt>, tässä tapauksessa <tt>debian/hello</tt>. Tähän hakemistoon asentuvien tiedostojen perusteella luodaan varsinainen paketti. | |||
Koska Hello käyttää autoconfia, osaa paketin luova työkalu tehdä tarvittavat asetukset itse, eikä meidän periaatteessa tarvitse edes koskea <tt>rules</tt>-tiedostoon. Katsotaan nyt kuitenkin sitä malliksi, sillä vähänkin monimutkaisempien pakettien kohdalla sitä on muokattava. Dh_maken luoma malli on seuraava: (rivinumerot lisätty) | |||
<pre> | |||
1 #!/usr/bin/make -f | |||
2 # -*- makefile -*- | |||
3 # Sample debian/rules that uses debhelper. | |||
4 # This file was originally written by Joey Hess and Craig Small. | |||
5 # As a special exception, when this file is copied by dh-make into a | |||
6 # dh-make output file, you may use that output file without restriction. | |||
7 # This special exception was added by Craig Small in version 0.37 of dh-make. | |||
8 | |||
9 # Uncomment this to turn on verbose mode. | |||
10 #export DH_VERBOSE=1 | |||
11 | |||
12 | |||
13 # These are used for cross-compiling and for saving the configure script | |||
14 # from having to guess our platform (since we know it already) | |||
15 DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) | |||
16 DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) | |||
17 | |||
18 | |||
19 CFLAGS = -Wall -g | |||
20 | |||
21 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) | |||
22 CFLAGS += -O0 | |||
23 else | |||
24 CFLAGS += -O2 | |||
25 endif | |||
26 | |||
27 config.status: configure | |||
28 dh_testdir | |||
29 # Add here commands to configure the package. | |||
30 ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \ | |||
31 --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs" | |||
32 | |||
33 | |||
34 build: build-stamp | |||
35 | |||
36 build-stamp: config.status | |||
37 dh_testdir | |||
38 | |||
39 # Add here commands to compile the package. | |||
40 $(MAKE) | |||
41 #docbook-to-man debian/hello.sgml > hello.1 | |||
42 | |||
43 touch $@ | |||
44 | |||
45 clean: | |||
46 dh_testdir | |||
47 dh_testroot | |||
48 rm -f build-stamp | |||
49 | |||
50 # Add here commands to clean up after the build process. | |||
51 -$(MAKE) distclean | |||
52 ifneq "$(wildcard /usr/share/misc/config.sub)" "" | |||
53 cp -f /usr/share/misc/config.sub config.sub | |||
54 endif | |||
55 ifneq "$(wildcard /usr/share/misc/config.guess)" "" | |||
56 cp -f /usr/share/misc/config.guess config.guess | |||
57 endif | |||
58 | |||
59 | |||
60 dh_clean | |||
61 | |||
62 install: build | |||
63 dh_testdir | |||
64 dh_testroot | |||
65 dh_clean -k | |||
66 dh_installdirs | |||
67 | |||
68 # Add here commands to install the package into debian/hello. | |||
69 $(MAKE) DESTDIR=$(CURDIR)/debian/hello install | |||
70 | |||
71 | |||
72 # Build architecture-independent files here. | |||
73 binary-indep: build install | |||
74 # We have nothing to do by default. | |||
75 | |||
76 # Build architecture-dependent files here. | |||
77 binary-arch: build install | |||
78 dh_testdir | |||
79 dh_testroot | |||
80 dh_installchangelogs ChangeLog | |||
81 dh_installdocs | |||
82 dh_installexamples | |||
83 # dh_install | |||
84 # dh_installmenu | |||
85 # dh_installdebconf | |||
86 # dh_installlogrotate | |||
87 # dh_installemacsen | |||
88 # dh_installpam | |||
89 # dh_installmime | |||
90 # dh_python | |||
91 # dh_installinit | |||
92 # dh_installcron | |||
93 # dh_installinfo | |||
94 dh_installman | |||
95 dh_link | |||
96 dh_strip | |||
97 dh_compress | |||
98 dh_fixperms | |||
99 # dh_perl | |||
100 # dh_makeshlibs | |||
101 dh_installdeb | |||
102 dh_shlibdeps | |||
103 dh_gencontrol | |||
104 dh_md5sums | |||
105 dh_builddeb | |||
106 | |||
107 binary: binary-indep binary-arch | |||
108 .PHONY: build clean binary-indep binary-arch binary install | |||
</pre> | |||
=== .ex-päätteiset tiedostot === | === .ex-päätteiset tiedostot === |