GNU/Linux >> Znalost Linux >  >> Debian

Snadný způsob, jak vytvořit balíček Debian a místní úložiště balíčků

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

Softwarové požadavky a konvence příkazového řádku systému Linux
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

Debian
  1. Jak vytvořit místní úložiště Red Hat

  2. Debian – vytvořit balíček .deb pouze se závislostmi?

  3. Debian – Jak poznat zdrojové úložiště balíčku v Debianu?

  1. Debian – bezpečnost úložiště Debian?

  2. Jak vytvořit a smazat uživatele v Debianu 9

  3. Jaký je nejjednodušší způsob, jak vytvořit virtuální balíček v debianu?

  1. Jak vytvořit místní úložiště YUM na CentOS 7 / RHEL 7 pomocí DVD

  2. Snadný způsob instalace a odstranění skupiny balíčků v Arch Linuxu

  3. Jak povolit testování a nestabilní úložiště na Debianu