Ask Your Question
2

Vytvoření .deb s CGI skriptem.

asked 2014-12-12 17:47:34 +0100

Kuba gravatar image

updated 2014-12-13 13:45:09 +0100

Miro Hrončok gravatar image

Ahoj, jako semestrálku na ADS mám vytvořený CGI script. Musím z něj udělat deb balíček. Jak na to?

edit retag flag offensive close delete

Comments

Nevíš vůbec, jak vytvořit ten balíček, nebo tohle víš, jen nevís, jak správně zabalit právě cgi skript?

Miro Hrončok ( 2014-12-12 19:20:53 +0100 )edit

na balíček jsem našel na internetu návody, spíš jsem nevěděl, jak jako mám nainstalovat "webovou stránku".

Kuba ( 2014-12-12 22:44:39 +0100 )edit

1 Answer

Sort by » oldest newest most voted
6

answered 2014-12-12 20:29:57 +0100

VojtechMyslivec gravatar image

updated 2014-12-12 20:49:10 +0100

deb balíček je vlastně (komprimovaný) archiv, se strukturou jako má FS na debianu.

Když to vezmeš nejjednoduššeji, stačí ti vytvořit adresářovou strukturu tak, jak to má být umístěno na FS, např:

balik
  + etc
  |    \ apache2
  + var
  |    \ www
  |         \ cgi-bin
  \  usr
        \ share
               \ man

A akorát přidáš "speciální adresář" s názvem DEBIAN, kde jsou pomocné soubory, které jsou potřeba pro instalaci / odstranění balíčku.

Důležitý je soubor control, kde jsou informace o balíčku, dobrý je tam mít changelog, md5sums a hlavně se hodí soubory {pre,post}{inst,rm}, což jsou (bash) skripty, které se spouští před/po instalaci/odstranění. Takže k tomu nahoře ještě přidat:

balik
  + DEBIAN
  |    + control
  |    + changelog
  |    + md5sums
  |    + preinst
  |    \ postrm
  ...

Potom příkazem dpkg-deb --build adresar <název souboru.deb> vytvoříš z adresářové struktury deb balíček, který lze příkazem dpkg -i <název souboru.deb> nainstalovat (nakopíruje strukturu na FS a spustí inst skripty) a dpkg -r <název balíčku> odstranit ze systému (odstraní vytvořené soubory a prázdné adresáře a provede rm skripty).

Jaký formát mají mít jednotlivé soubory se dá dočíst např. tady:
http://wiki.ubuntu.cz/vytvo%C5%99en%C3%AD_.deb_bal%C3%ADku
Kde je ale několik kroků navíc, jelikož se tam vytváří grafická aplikace včetně integrace do grafického rozhraní Debianu.

Další návody:
http://ubuntuforums.org/showthread.php?t=910717
http://www.root.cz/clanky/vytvorte-si-balicek-pro-ubuntu-debian-snadno-a-rychle/

Jinak podrobnosti tady:
https://www.debian.org/doc/debian-policy/ch-controlfields.html
https://www.debian.org/doc/manuals/maint-guide/

ps: soubory si zachovají uživatele a práva, na to je potřeba dát pozor, aby byly tak, jak potřebuješ, popřípadě detaily dořešit instalačním skriptem postinst.

edit flag offensive delete publish link more

Comments

1

Díky moc! Zachránil jsi mě.

Kuba ( 2014-12-12 22:41:59 +0100 )edit
2

Tady i s Makefilem: https://github.com/hroncok/usb-time-card/blob/master/Makefile .

Miro Hrončok ( 2014-12-13 13:44:26 +0100 )edit

Link není funkční, ale spíš vypadá, že je chyba v systému než v odkazu

Miroslav Kalina ( 2014-12-13 20:03:16 +0100 )edit

404. Ale nevadí, našel jsem to.

Kuba ( 2014-12-13 22:07:22 +0100 )edit

v odkazu je navíc html tag </p>

VojtechMyslivec ( 2014-12-13 22:20:06 +0100 )edit

jop, sorry, opraveno

Miro Hrončok ( 2014-12-14 00:13:41 +0100 )edit

Mám ještě jeden problém. Používám modul v perlu (Nmap::Parser) a potřebuju ho i nainstalovat s tím deb balíčkem. Ale když to dám do postinst, tak mi to pak vždy hodí chybu Can't locate ... in @INC. Nějaké nápady? Edit: Vyřešeno. Závislost na libnmap-parser-perl

Kuba ( 2014-12-14 16:58:56 +0100 )edit

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

Add answer

[hide preview]

Question tools

Follow
1 follower

Stats

Asked: 2014-12-12 17:47:34 +0100

Seen: 230 times

Last updated: Dec 12 '14