Debian package a local repozitár

Zdroj: SOOM.cz [ISSN 1804-7270]
Autor: nitrexx
Datum: 9.9.2012
Hodnocení/Hlasovalo: 1.69/13

Tento článok je o tom ako vytvoriť vlastný debian balíček aj s repozitárom.


Najprv si vytvoríme základný program ktorý bude v balíčku:
#include 

int main(int argc, char** argv)
{
  printf("Hi Man!\n");
  return 0;
}
Zdrojový kód uložíme do priečinku pozdrav, ktorý si vytvoríme, pomocou gcc skompilujeme:
root@bt:~# mkdir pozdrav
root@bt:~# cd ~/pozdrav
root@bt:~/pozdrav# gcc -o hi hi.c
root@bt:~/pozdrav# ./hi
Hi Man!
Teraz vytvoríme priečinok DEBIAN, v ňom vytvoríme súbor control:
root@bt:~/pozdrav#
root@bt:~/pozdrav# mkdir DEBIAN
root@bt:~/pozdrav# nano DEBIAN/control
Súbor control bude mít tento obsah:
Package: pozdrav
Version: 0.1
Section: none
Priority: optional
Architecture: all
Essential: no
Installed-size: 1024
Maintainer: meno 
Description: Vypise pozdrav
Vytvoríme priečinok usr/bin a do neho nakopírujeme obsah priečinku pozdrav:
root@bt:~/pozdrav# mkdir -p usr/bin
Vytvoríme balíček:
root@bt:~/pozdrav# cd ..
root@bt:~# dpkg-deb --build pozdrav
dpkg-deb: building package `pozdrav' in `pozdrav.deb'.
root@bt:~#
A balíček máme vytvorený.

Vlastný repozitár na local serveri

Do var/www/ vytvoríme priečinok debian a do debian vytvoríme priečinky binary a source:
root@bt:/var/www#mkdir debian
root@bt:/var/www#cd ~/debian
root@bt:/var/www/debian#mkdir binary
root@bt:/var/www/debian#mkdir source
Skopírujeme pozdrav.deb do var/www/binary/. Použijeme script na vytvorenie Package.gz:
#!/bin/bash
cd /var/www/debian
echo "Vytvaram binary a source balicky.."
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz
dpkg-scansources source /dev/null | gzip -9c > source/Sources.gz
echo "Kompletne!"
root@bt:/var/www/debian# ./gen_pack.sh
Musíme zapísat do source.list z kade sa majú načítať balíčky u mna to je 192.168.2.17:
root@bt:~#echo "deb http://192.168.2.17/debian/ binary/" >> /etc/apt/sources.list
root@bt:~#echo "deb-src http://192.168.2.17/debian/ source/" >> /etc/apt/sources.list
Musíme updatnúť, a už iba nainštalujeme a spustíme:
root@bt:~# apt-get update
Ign http://192.168.2.17 binary/ Release.gpg
Ign http://192.168.2.17/debian/ binary/ Translation-en_US
Ign http://192.168.2.17 source/ Release.gpg
Ign http://192.168.2.17 binary/ Release
Ign http://192.168.2.17 source/ Release
Ign http://192.168.2.17 binary/ Packages
Ign http://192.168.2.17 source/ Sources
Ign http://192.168.2.17 binary/ Packages
Ign http://192.168.2.17 source/ Sources
Get:1 http://192.168.2.17 binary/ Packages [423B]
Get:2 http://192.168.2.17 source/ Sources [20B]
root@bt:~# apt-get install pozdrav
root@bt:~# hi