Własne repo yum/dnf

Pisałem kiedyś tam o specu dla jednoplikowego programu. Pakiet RPM to oczywiście fajna sprawa, ale trzeba go jakoś rozprowadzić po różnych komputerach i pilnować, żeby był aktualny. Żeby być szczerym, to dla jednego pliku pewnie użyłbym syncthinga i umieścił locate_plus w ~/bin, ale skoro mamy już pakiet, to coś z nim zróbmy.

Pakiet jest na razie w katalogu ~/rpmbuild/RPMS/noarch, ale skopiujmy go do ~/repozytorium, żeby odizolować gotowy plik od naszych kolejnych eksperymentów. Potrzebujemy programu o nazwie createrepo, więc go zainstalujmy

dnf install createrepo

Dla fanów RHELa i centosa zamiast dnf używamy yum. Potem wystarczy już tylko

cd ~/repozytorium
createrepo --update .

Repo jest już gotowe, ale dnf/yum nic o nim nie wie. Idziemy do katalogu /etc/yum.repos.d i wklejamy tam taki plik:

cat /etc/yum.repos.d/moje.repo 
[moje]
name=moje
baseurl=file:///home/jankowalski/repozytorium/
enabled=1
gpgcheck=0
skip_if_unavailable=True

O co tu chodzi? Po kolei:

  • [moje] to skrócona nazwa repozytorium,
  • name= to długa i ładna nazwa, na przykład moje 🙂 , lub Moje Najlepsze Repozytorium,
  • baseurl to ścieżka do plików, która najczęściej jest jakimś ftpem, ale my jeszcze ftpa nie mamy,
  • enabled odpowiada za domyślne przeszukiwanie repozytorium podczas instalacji i aktualizacji pakietów,
  • gpgcheck ustawiłbym na 1, gdyby pakiet był podpisany cyfrowo,
  • skip_if_unavaible to fajne ustawienie pozwalające dnfowi (oraz yumowi) na ignorowanie repozytorium jeżeli akurat nie ma do niego dostępu.

No i dobra, pakiety są dostępne:

dnf list *locate_plus*
moje 620 kB/s | 941 B 00:00
Dostępne pakiety
locate_plus.noarch 0.1-1.fc23 moje