Kirjoittaja Aihe: deb paketti foremost 1.5 ohjelmasta (apua?)  (Luettu 3527 kertaa)

moonstone

  • Vieras
deb paketti foremost 1.5 ohjelmasta (apua?)
« : 27.05.07 - klo:08.27 »
Hei,

Olen lukenut tarkkaan Ubuntun ohjeet ohjelmien paketoimiseksi http://doc.ubuntu.com/ubuntu/packagingguide/C/index.html
Yritän paketoida foremost ohjelman 1.5 versiota itse (pakettivarastosta löytyy vaan 1.3 versio)

Käytän apuna debhelper ohjelmaa.
Olen tehnyt chroot järjestelmän ohjeiden http://doc.ubuntu.com/ubuntu/packagingguide/C/appendix-chroot.html mukaan
chroot järjestelmässä käytän pbuilder-ohjelmaa binääripakettien tekemiseen.

Tässä koko prosessi

$ wget http://foremost.sourceforge.net/pkg/foremost-1.5.tar.gz
$ tar -xzvf foremost-1.5.tar.gz
$ cd foremost-1.5/
$ dh_make -e minun.sahkoposti@email.com -f ../foremost-1.5.tar.gz

Seuraavaksi poistan *.ex ja *.EX tiedostot foremost-1.5/debian hakemistosta
$ cd debian/
$ rm *.ex *.EX

Seuraavaksi pitäisi tarkastaa tiedostot changelog, rules, compat, control ja copyright. Nämä ilmeisesti ovat oletuksena OK? (en oikein tiedä mitä kaikkea esim. rules tiedostoon pitäisi lisätä/poistaa, jotta homma toimisi. Paketointioppaassa käytiin läpi GNU hello ohjelma, joka ei kyllä hirveästi avannut aivoja)

Jatketaan luomalla source paketti
$cd ..
$debuild -S

Seuraavaksi yritän luoda source paketista deb binäärin
$sudo pbuilder build ../*.dsc

Tietokone murskaa lukuja ja lopussa seisoo error:
# Add here commands to install the package into debian/foremost.
/usr/bin/make DESTDIR=/tmp/buildd/foremost-1.5/debian/foremost install
make[1]: Entering directory `/tmp/buildd/foremost-1.5'
install -m 755 foremost /usr/local/bin
install: cannot create regular file `/usr/local/bin/foremost': Permission denied
make[1]: *** [install] Error 1
make[1]: Leaving directory `/tmp/buildd/foremost-1.5'
make: *** [install] Error 2
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//8912 and its subdirectories

Checkinstall ohjelma osaa tehdä nopsaan toimivan paketin foremost ohjelmasta, mutta haluaisin mieluusti oppia myös oikean paketointitavan.

Apuja, neuvoja, huutoa? :)

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Vs: deb paketti foremost 1.5 ohjelmasta (apua?)
« Vastaus #1 : 27.05.07 - klo:12.09 »
Olen lukenut tarkkaan Ubuntun ohjeet ohjelmien paketoimiseksi http://doc.ubuntu.com/ubuntu/packagingguide/C/index.html
Yritän paketoida foremost ohjelman 1.5 versiota itse (pakettivarastosta löytyy vaan 1.3 versio)

ok.

Seuraavaksi poistan *.ex ja *.EX tiedostot foremost-1.5/debian hakemistosta
$ cd debian/
$ rm *.ex *.EX

olisikohan mansivut hyvä jättää? tai kai ne alkuperäisetkin saa sieltä käsin kopioitua rulesissa?

Seuraavaksi pitäisi tarkastaa tiedostot changelog, rules, compat, control ja copyright. Nämä ilmeisesti ovat oletuksena OK?

eivät ole OK. copyrightista puuttuu upstream authoreiden nimet ja paketin oikea lisenssi, controlista puuttuu ohjelman kuvaukset, oikea sektio ja mahdollisesti ajonaikaiset/käännösaikaiset riippuvuudet, changelogista puuttuu kunnollinen kuvaus tai sitten siellä on liikaa 'täytä tähän sitä ja tätä' tyyppistä tavaraa ja rules ei tule toimimaan, koska alkuperäinen Makefile on väärin.

(en oikein tiedä mitä kaikkea esim. rules tiedostoon pitäisi lisätä/poistaa, jotta homma toimisi. Paketointioppaassa käytiin läpi GNU hello ohjelma, joka ei kyllä hirveästi avannut aivoja)

rules on ihan makefile joka tässä tapauksessa käyttää hyväkseen noita debhelperistä asentuvia työkaluja.

Tietokone murskaa lukuja ja lopussa seisoo error:
# Add here commands to install the package into debian/foremost.
/usr/bin/make DESTDIR=/tmp/buildd/foremost-1.5/debian/foremost install
make[1]: Entering directory `/tmp/buildd/foremost-1.5'
install -m 755 foremost /usr/local/bin
install: cannot create regular file `/usr/local/bin/foremost': Permission denied
make[1]: *** [install] Error 1
make[1]: Leaving directory `/tmp/buildd/foremost-1.5'
make: *** [install] Error 2
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//8912 and its subdirectories

rules-tiedostossa softa asennetaan, paketoinnin aikana käytettävään prefixiin, install targetissa:
Koodia: [Valitse]
$(MAKE) DESTDIR=$(CURDIR)/debian/foremost install
oikea Makefile kuitenkin jättää tuon muuttujan DESTDIR kokonaan huomiotta ja asentaa kamat suoraan juureen (/):
Koodia: [Valitse]
...
# Where we get installed
BIN = /usr/local/bin
MAN = /usr/local/man/man1
CONF= /usr/local/etc

...
install: goals
        install -m 755 $(NAME) $(BIN)
        install -m 444 $(MAN_PAGES) $(MAN)
        install -m 444 foremost.conf $(CONF)
...

jos puukotat alkup. Makefilen tottelemaan DESTDIRiä tai hoidat installa targetin käsin rulesista, homma toiminee hitusen paremmin.
Janne

moonstone

  • Vieras
Vs: deb paketti foremost 1.5 ohjelmasta (apua?)
« Vastaus #2 : 27.05.07 - klo:16.41 »
Kiitos. Tarkoituksena ei ole kuin oppia ymmärtämään tuota paketointia.

Vielä tyhmä kysymys. Saadakseni jonkun tietyn Ubuntuun se tulisi ensin saada Debianiin? Vai onko Ubuntulla jokin paketointihaara, joka ohittaa debianin tyystin?

Heikki Mäntysaari

  • Käyttäjä / tiedottaja
  • Viestejä: 377
    • Profiili
Vs: deb paketti foremost 1.5 ohjelmasta (apua?)
« Vastaus #3 : 27.05.07 - klo:17.37 »
Paketit voi lähettää ensin Debianiin, josta ne sitten valuvat seuraavaan Ubuntuun. Toinen vaihtoehto on lisätä paketti suoraan Ubuntuun. Uusia paketteja ja paketoijia varten on olemassa REVU-järjestelmä: http://revu.tauware.de/. REVU:ssa kokeneet paketoijat kommentoivat pakettia ja neuvovat, miten siitä saa tehtyä paremman (riittävän laadukkaan, jotta se voidaan lisätä Ubuntuun). Tuolla sivulla on linkkejä Ubuntun wikiin, josta yksityiskohdat selviävät.

Aloittelin itse jokin aika sitten suomenkielisen paketointioppaan kirjoittamista, opas löytyy osoitteesta http://linux.fi/index.php/Deb-paketin_tekeminen (kaipaa laajennusta ja kehittämistä, saa vapaasti kirjoitella :))
Suomenkielinen Linux-wiki: Linux.fi - katso myös http://linux.fi/foorumi

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Vs: deb paketti foremost 1.5 ohjelmasta (apua?)
« Vastaus #4 : 27.05.07 - klo:17.38 »
Kiitos. Tarkoituksena ei ole kuin oppia ymmärtämään tuota paketointia.

juu, niin arvelinkin. muuten olisin varmaan ehdottanut lähdekoodipakettin hakemista debianin unstablesta ;)

sinun kannattaisi varmaan osallistua jollekin paketointikurssille. niitä järjestetään ainakin pk- seudulla aina toisinaan. äskettäin oli ainakin yksi.

Vielä tyhmä kysymys. Saadakseni jonkun tietyn Ubuntuun se tulisi ensin saada Debianiin? Vai onko Ubuntulla jokin paketointihaara, joka ohittaa debianin tyystin?

ubuntuun voi lähettää paketteja suoraankin, mutta tietty kaikista fiksuinta olisi saada ne ensin debianiin jolloin paketointi hyödyttäisi mahdollisimman monia. toisaalta taas debianiin on oletettavasti aika paljon hankalampaa saada paketteja tai siis ainakin tie paketoijaksi on huomattavasti pidempi.
Janne

moonstone

  • Vieras
Vs: deb paketti foremost 1.5 ohjelmasta (apua?)
« Vastaus #5 : 27.05.07 - klo:17.47 »
sinun kannattaisi varmaan osallistua jollekin paketointikurssille. niitä järjestetään ainakin pk- seudulla aina toisinaan. äskettäin oli ainakin yksi.

Koti on kaukana pk-seudulta, joten ehdotan paketointikurssin kuvaamista dvd-levylle. Voisin jopa maksaakkin :)

Tosiaan foremost löytyy debian unstablesta ja sitä kautta se olisi helpompi saada toimimaan ihan seuraamalla tuota Ubuntu paketointiopasta. Kiitos neuvoista kuitenkin. Jatkan harjoittelua.