Tworzenie pakietów DEB

Pakiet jest tworzony przy pomocy narzędzia dpkg-deb.

Przygotowanie własnego pakietu rozpoczynamy od stworzenia katalogu roboczego projektu. Następnie należy utworzyć w nim strukturę katalogów odpowiadającą temu, co będzie instalowane. W odpowiednich podkatalogach umieszczamy następnie pliki (wykonywalne programy lub skrypty, pliki manuala itp.):

mkdir -p ./project/srv/target/usr/bin/
cp foo-util ./project/srv/target/usr/bin
 
mkdir -p ./project/srv/target/usr/share/man/man1
cp foo-util.1 ./project/srv/target/usr/share/man/man1
gzip --best ./project/srv/target/usr/share/man/man1/foo-util.1

Należy zadbać o właściwe uprawnienia plików i katalogów:

$ find ./project -type d | xarg chmod 755

Struktura plików i katalogów (oraz ich uprawnienia) odpowiadają docelowemu miejscu i uprawnieniom plików w systemie.

Zawartość pakietu, sposób jego tworzenia i metadane, które zawiera znajdują się w pliku control.

control
Package: foo-util
Version: 1.0-1all
Section: utils
Priority: optional
Architecture: i386
Depends: libc6 (>= 2.11.2)
Suggests: bash
Replaces: foo-test (<< 0.99)
Installed-Size: 24000
Maintainer: Marcin Bis <marcin@bis.org.pl>
Description: Foo-util is the foo tool doing bar.
 Lorem ipsum ...

Plik należy umieścić w odpowiednim podkatalogu.

mkdir -p ./project/DEBIAN
cp control ./project/DEBIAN

Pozostaje zbudowanie pakietu:

dpkg-deb --build project
mv project.deb foo-util_1.0-1all.deb

Utworzony w powyższy sposób pakiet można zainstalować poleceniem:

dpkg -i foo-util_1.0-1all.deb

A do jego odinstalowania, służy polecenie:

dpkg -r foo-util_1.0-1all.deb

Oprócz opisu - control, w skład pakietu mogą wchodzić inne specjale pliki:

  • DEBIAN/srv/target/usr/share/doc/<pakiet>/copyright - informacje o licencji(-ach);
  • DEBIAN/srv/target/usr/share/doc/<pakiet>/changelog.Debian.gz, oraz changelog.gz - opisy zmian (opcjonalne);

Do sprawdzenia poprawności pakietu służy narzędzie lintian.

Aby możliwe było tworzenie pakietów z konta zwykłego użytkownika konieczne jest uruchamianie niektórych poleceń jako administrator lub skorzystanie z narzędzia fakeroot:

fakeroot dpkg-deb --build project
ostatnio zmienione: 2011/08/28 12:03