GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvořit vlastní úložiště rpm na Linuxu

Rpm je zkratka pro RPM Package Manager :je to nízkoúrovňový správce balíčků používaný ve všech distribucích Red Hat, jako je Fedora a Red Hat Enterprise Linux.

Balíček rpm je balíček obsahující software, který je určen k instalaci pomocí tohoto systému správy balíčků, a balíčky rpm jsou obvykle distribuovány prostřednictvím softwarových úložišť. V tomto tutoriálu se naučíme, jak vytvořit vlastní úložiště otáček za minutu a jak nakonfigurovat naši distribuci tak, aby ji používala jako zdroj softwaru.

V tomto tutoriálu se to naučíte :

  • Jak vytvořit úložiště otáček za minutu
  • Jak používat úložiště jako zdroj softwaru

Použité softwarové požadavky a konvence

Softwarové požadavky a konvence příkazového řádku systému Linux
Kategorie Požadavky, konvence nebo použitá verze softwaru
Systém Jakákoli distribuce rodiny Red Hat
Software dnf, createrepo
Jiné Administrativní práva pro konfiguraci úložiště
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 command
$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel

Instalace softwaru

Pro účely tohoto tutoriálu vytvoříme naše vlastní úložiště na místním počítači s IP 192.168.0.39 který bude používat jako http server. První věc, kterou musíme na tomto počítači udělat, je nainstalovat createrepo balík. Distribuce nainstalovaná na vzdáleném počítači nemusí být samotná distribuce založená na rpm, pokud je uvedený balíček k dispozici. V našem případě je například systém nainstalovaný na serveru Debian, takže k instalaci balíčku musíme spustit následující příkaz:

$ sudo apt-get update &&sudo apt-get install createrepo

Jak jsme řekli dříve, v našem konkrétním příkladu chceme zajistit, aby software hostovaný na našem vlastním úložišti byl přístupný prostřednictvím protokolu HTTP, proto musíme nainstalovat server HTTP; v tomto případě budeme pracovat s Apache. Instalace na Debian, je to jen otázka spuštění:

$ sudo apt-get install apache2

Jakmile jsou balíčky nainstalovány, můžeme pokračovat a vytvořit naše rpm úložiště v několika velmi jednoduchých krocích.

Vytvoření úložiště

Výchozí Apache VirtualHost DocumentRoot vytvořený při instalaci Apache na Debian je /var/www/html . V tomto okamžiku se můžeme rozhodnout vytvořit VirtualHost pro naše úložiště, nebo jednoduše vytvořit adresář úložiště jako součást
výchozího. Pro zjednodušení v tomto tutoriálu prozkoumáme druhou možnost:

$ sudo mkdir /var/www/html/repo

repo adresář, který jsme vytvořili pomocí příkazu výše, uvnitř výchozího VirtualHost DocumentRoot , bude hostit naše balíčky a bude základem našeho úložiště. Abychom to lépe strukturovali, chceme nyní vytvořit některé podadresáře
pojmenované podle distribuce, její verze a architektury balíčků, které chceme zpřístupnit. Předpokládejme například, že chceme použít úložiště na Fedora 33 x68_64 , měli bychom spustit následující příkaz:

$ sudo mkdir -p /var/www/html/repo/fedora/releases/33/x86_64

Dalším krokem je naplnění úložiště. Vše, co musíme udělat, je umístit balíčky, které chceme zpřístupnit, do příslušného adresáře úložiště. V tomto případě jako příklad naplním úložiště balíčkem získaným kompilací editoru VSCode ze zdroje. Balíček se nazývá code-1.56.0-1617183449.el8.x86_64.rpm . Po zkopírování by naše struktura souborů měla vypadat takto:

repo└── fedora └── vydává └── 33 └── x86_64 └── kód-1.56.0-1617183449.el8.x86_64> 

Když je naše úložiště naplněno, vše, co chceme udělat, je spustit createrepo příkaz uvnitř adresáře obsahujícího balíčky. V tomto případě bychom spustili:

$ sudo createrepo /var/www/html/repo/fedora/releases/33/x86_64

Příkaz vytvoří metadata úložiště v adresáři s názvem repodata , na základě balíčků obsažených v cílovém adresáři a musí být znovu spuštěn pokaždé, když je úložiště aktualizováno novými balíčky nebo jsou odstraněny staré balíčky. Po spuštění příkazu bude naše adresářová struktura vypadat takto:

 repo└└└─ fedora └└─ vydání └└└ 33 33 └└─ x86_64 ├├─ kód-1.56.0-1617183449.L8.0-1617183449.lpm └└─ repodata ├├─ 22Ab1d1d123BB7D7CDE556BF8A8AC4DAF9CDB75572F8A8AC4DAF399908CB7F6B9-itFION.xml.gz ├── 26ed9b63868b2e0263dfa817e21921c4e7542c1be9f6b7875381bba6bd78d1c6-primary.sqlite.bz2 ├── 50fc300a761812761cf9a8413a619da23cf336d49999753568ce19a97c025d44-other.sqlite.bz2 ├── a523f54b5fcd0720c182969f991f51e125728a361f31237725dc9418d5e126ea-primary.xml.gz ├── af2fa9ea5deaffca5ffc9f3e524155defa8cfa5656962845a45c8b0e984f3e19-filelists.sqlite.bz2 ├── f95849cf860f1184b97d30000ea1f9f1c35edd6d625dcd387453187510dd4a18-filelists.xml.gz └── repomd.xml

Naše úložiště bylo úspěšně vytvořeno. Nyní musíme nakonfigurovat naši distribuci tak, aby ji používala jako zdroj softwaru.

Přidání úložiště jako zdroje softwaru

Pojďme k naší distribuci založené na rpm a podívejme se, jak ji nakonfigurovat, abychom mohli používat naše vlastní úložiště jako zdroj softwaru. Konfigurační soubory úložiště naleznete v /etc/yum.repos.d adresář a musí mít
.repo rozšíření. Když se podíváme do adresáře, můžeme vidět ty již existující:

$ ls /etc/yum/repos.dfedora-cisco-openh264.repo fedora-updates-testing-modular.repofedora-modular.repo fedora-updates-testing.repofedora.repo rpmfusion-free.repofedora-updates-ar .repo rpmfusion-free-updates.repofedora-updates.repo rpmfusion-free-updates-testing.repo

Nyní vytvoříme vlastní konfiguraci úložiště. Uvnitř souboru bychom jako minimální soubor informací měli poskytnout:

  • ID úložiště
  • Název úložiště
  • Základní adresa URL úložiště
  • Stav úložiště
  • Zda kontrolovat gpg podpis balíčků nebo ne

Tyto informace uložíme do souboru s názvem ownrepo.repo , zde je jeho obsah:

[ownrepo]name=Own repositorybaseurl=http://192.168.0.39/repo/fedora/releases/$releasever/$basearchenabled=1gpgcheck=0

Definice uvedená v závorkách ([ownrepo] ) je ID úložiště a musí být jedinečné ve všech definicích úložiště. S name klíč jsme poskytli lidsky čitelný název pro úložiště jako řetězec. Toto je volitelné; pokud není zadán název, bude ID úložiště použito také jako název.

Pomocí baseurl klíč specifikujeme seznam adres URL pro úložiště. Adresy URL musí být odděleny mezerou nebo čárkou. V našem příkladu jsme právě poskytli jednu adresu URL, ale můžete si všimnout, že jsme v ní použili dvě proměnné:

  • $releasever
  • $basearch

Rozšíření prvního, $releasever , bude mít za následek verzi operačního systému, v tomto případě 33 , protože instalujeme naše úložiště na systém Fedora 33. Druhá proměnná, $basearch , bude rozšířen v řetězci představujícím základní architekturu systému, což je v našem případě x86_64 .

enabled klíč vyžaduje boolean hodnota, která určuje, zda má být úložiště považováno za aktivní nebo ne. Poslední klíč, který jsme použili, je gpgcheck :také vyžaduje booleovskou hodnotu a používá se k určení, zda by měla být provedena kontrola podpisu gpg na balíčcích nainstalovaných z úložiště. V našem příkladu jsme jednoduše zakázali kontrolu, protože úložiště je určeno pouze pro osobní použití.

Nyní, když je naše úložiště nakonfigurováno, můžeme zkusit nainstalovat code balíček z něj jednoduše spuštěním:

$ instalační kód sudo dnfVlastní úložiště 451 kB/s | 13 kB 00:00 Závislosti vyřešeny.======================================================================================================================Velikost úložiště verze architektury balíčku=====================================================================================================================Instalace:kód x86_64 1.56.0-1617183449. el8 ownrepo 100 MTtransaction Summary======================================================================================================================Instalovat 1 balíčekCelková velikost stažení:100 MInstalovaná velikost:294 MIs toto je v pořádku [y/N]:

Jakmile na výzvu poskytneme kladnou odpověď a potvrdíme ji, bude balíček nainstalován do našeho systému.

Závěry

V tomto článku jsme zjistili, jak snadné je vytvořit vlastní úložiště otáček za minutu pomocí createrepo a viděli jsme, jak vytvořit konfigurační soubor dnf v naší distribuci, abychom jej mohli použít jako zdroj softwaru. Viděli jsme minimální podmnožinu
klíčů, které lze použít v konfiguraci úložiště; pro podrobnější seznam můžete nahlédnout do oficiální dokumentace dnf.


Linux
  1. Jak sestavit rpm balíčky

  2. Jak vytvořit balíček RPM pro Linux

  3. Jak nainstalovat CVS a vytvořit úložiště CVS na serveru Linux

  1. Jak nakonfigurovat úložiště YUM v Linux/Centos/Redhat | YUM v Linuxu/Centos/Redhat

  2. Jak vytvořit skript příkazu Linux

  3. Jak vytvořit vlastní rotaci souboru protokolu pomocí logrotate v Linuxu

  1. Jak přidat linuxové softwarové úložiště společnosti Microsoft

  2. Jak vytvořit swap v Linuxu

  3. Jak vytvořit službu Systemd v Linuxu