Tento článek popisuje jednoduchý způsob, jak vytvořit domácí balíček debianu a zahrnout jej do místního úložiště balíčků. Přestože bychom mohli použít stávající balíček Debian/Ubuntu, začneme od nuly vytvořením a zabalením vlastní triviální aplikace. Jakmile bude náš balíček připraven, zahrneme jej do našeho místního úložiště balíčků. Tento článek ilustruje velmi zjednodušený přístup, nicméně může sloužit jako vzor v mnoha různých scénářích.
V tomto tutoriálu se naučíte:
- Jak vytvořit triviální balíček debian
- Jak vytvořit místní úložiště debianu
- Jak přidat úložiště do seznamu zdrojů softwaru
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Debian |
Software | Balík sestavení-základní |
Jiné | Fungující webový server Apache a oprávnění root |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Vytvoření binárního spustitelného souboru
První věc, kterou musíme udělat, je vytvořit jednoduchý program v C++, zkompilovat jej a otestovat. V případě, že si místo toho přejete napsat jednoduchý program v C, navštivte náš komplexní návod k programování v C. Náš program neudělá nic jiného, jen vytiskne na obrazovku „linuxconfig.org“. Zde je kód:
#include <iostream>
int main() {
using namespace std;
cout << "linuxconfig.org\n";
}
Uložte výše uvedený kód jako linuxconfig.cc
. Ke kompilaci programu potřebujeme g++
kompilátor, který je součástí balíčku build-essential. Můžeme jej nainstalovat spuštěním:
$ sudo apt-get install build-essential
Ke kompilaci kódu používáme následující linuxový příkaz:
$ g++ linuxconfig.cc -o linuxconfig $ ./linuxconfig linuxconfig.org
Všechno vypadá dobře. V tuto chvíli bychom měli mít spustitelný soubor nazvaný „linuxconfig“, který vypíše na obrazovku nějaký řetězec.
Vytvoření balíčku Debian
Nyní, když máme náš malý program připravený ve formě spustitelného binárního souboru, můžeme vytvořit balíček debian. K tomu používáme dpkg-deb
nářadí. Nejprve musíme vytvořit strukturu balíčků debianu. Jediné soubory potřebné k sestavení balíčku debianu jsou:
- DEBIAN/ovládání
- vlastní soubory, které budou součástí balíčku (není vyžadováno)
Nejprve vytvořte adresář s názvem linuxconfig
. Tento adresář bude obsahovat všechny potřebné soubory balíčků:
$ mkdir linuxconfig
Dále vytvořte adresář DEBIAN a řídicí soubor:
$ mkdir linuxconfig/DEBIAN $ vi linuxconfig/DEBIAN/control
Do ovládacího souboru zadáme následující informace:
Package: linuxconfig Version: 1.0 Section: custom Priority: optional Architecture: all Essential: no Installed-Size: 1024 Maintainer: linuxconfig.org Description: Print linuxconfig.org on the screen
Skvělé, jediné, co chybí, je náš linuxconfig program. Uvnitř linuxconfig
adresář vytvoříme adresářový strom, který představuje cestu, kam bude náš program v systému nainstalován, a zkopírujeme do něj
spustitelný soubor:
$ mkdir -p linuxconfig/usr/bin/ $ cp /path/to/linuxconfig linuxconfig/usr/bin/
V tuto chvíli jsme připraveni vytvořit balíček:
$ dpkg-deb --build linuxconfig dpkg-deb: building package `linuxconfig' in `linuxconfig.deb'. $ ls linuxconfig linuxconfig.deb
Možná budete chtít změnit název balíčku tak, aby obsahoval verzi programu a architekturu balíčku. Například:
$ mv linuxconfig.deb linuxconfig-1.0_amd64.deb
Vše hotovo ! Náš balíček je připraven! (POZNÁMKA:toto je pouze příklad, vytvoření oficiálních balíčků vyžaduje více práce).
Nastavení místního úložiště balíčků
K vytvoření místního úložiště balíčků potřebujeme funkční. V tomto případě budeme předpokládat použití Apache
s výchozím nastavením. Chcete-li nainstalovat webový server Apache, vše, co musíme udělat, je spustit:
$ sudo apt-get install apache2
Po instalaci, abychom ověřili, že webový server funguje, můžeme přejít na IP adresu počítače (nebo na „http://localhost“, pokud na samotném počítači běží prohlížeč), což je v našem případě http:// 10.1.1.4. Měli bychom vidět
slavnouFunguje to! zprávu.
Software webového serveru běží, ale zatím nebyl přidán žádný obsah. DocumentRoot
výchozího Apache VirtualHost
, je /var/www/html
:zde vytvoříme naše úložiště.
Vytvořme adresář „debian“ uvnitř /var/www/html
a zkopírujte do něj balíček linuxconfig-1.0_amd64.deb:
$ sudo mkdir /var/www/html/debian $ sudo cp /path/to/linuxconfig-1.0_amd64.deb /var/www/html/debian/
Dalším krokem je vytvoření seznamu balíčků. Přesuneme se do debian
a použijte dpkg-scanpackages
nástroj ke splnění úkolu. Možná budete muset nainstalovat dpkg-dev
balíček v případě dpkg-scanpackages
chybí příkaz:
$ dpkg-scanpackages . | gzip -c9 > Packages.gz dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
Naše místní úložiště je nyní připraveno.
Přidání úložiště ke zdrojům softwaru
V tuto chvíli, abychom mohli nainstalovat náš balíček z místního úložiště, které jsme vytvořili, musíme upravit /etc/apt/sources.list
soubor, přidejte záznam k němu (změňte IP adresu tak, aby odpovídala adrese vašeho počítače) a
synchronizujte úložiště:
echo "deb [trusted=yes] http://10.1.1.4/debian ./" | tee -a /etc/apt/sources.list > /dev/null
Nezapomeňte přidat výše uvedené [trusted=yes]
abyste se vyhnuli následující chybové zprávě:
Release' does not have a Release file. N: Updating from such a repository can't be done securely, and is therefore disabled by default.
Synchronizovat úložiště:
$ sudo apt-get update Ign:1 http://10.1.1.4/debian ./ InRelease Ign:2 http://10.1.1.4/debian ./ Release Ign:3 http://10.1.1.4/debian ./ Packages Ign:3 http://10.1.1.4/debian ./ Packages Ign:3 http://10.1.1.4/debian ./ Packages Get:3 http://10.1.1.4/debian ./ Packages [303 B]
K instalaci našeho balíčku nyní můžeme použít nástroj apt-get:
$ sudo apt-get install linuxconfig Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: linuxconfig 0 upgraded, 1 newly installed, 0 to remove and 8 not upgraded. Need to get 3174 B of archives. After this operation, 1,049 kB of additional disk space will be used. WARNING: The following packages cannot be authenticated! linuxconfig Install these packages without verification [y/N]? y
Provést:
$ linuxconfig linuxconfig.org
Chcete-li odebrat balíček ze systému, stačí spustit:
$ sudo apt-get remove linuxconfig Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: linuxconfig 0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded. After this operation, 1049 kB disk space will be freed. Do you want to continue? [Y/n] y