Uživatelské nástroje

Nástroje pro tento web


linux:rpm-balicky

Toto je starší verze dokumentu!


RPM balicky

Inicializace prostredi

Pro build balicku je durazne doporuceno pouzivat jineho / specialniho dedikovaneho uzivatele!

  1. Nejdrive je nutne nainstalovat potrebne zavislosti
    $ sudo dnf install gcc rpm-build rpm-devel rpmlint make python bash coreutils diffutils patch rpmdevtools
  2. Vytvorime a prepneme se na noveho uzivatele
    $ sudo useradd <user>
    $ sudo -iu <user>
  3. Pote vytvorime adresare a nastavime promenne pro vybraneho uzivatele
    $ rpmdev-setuptree

Novy *.spec

$ rpmdev-newspec [<jmeno projektu>]
$ ll /etc/rpmdevtools/

Vypise dostupne sablony, jde o soubory spectemplate-<jmeno>.spec. Zadave se pouze jmeno sablony.

Overeni / Linting

$ rpmlint <*.spec>|<*.rpm>|<*.src.rpm>

a seznam nejcastejsich chyb zde: https://fedoraproject.org/wiki/Common_Rpmlint_issues

Build balicku

$ rpmbuild [-ba|-bb|-bs] <spec file>

Spec file se zadava pouze jako jmeno bez plne cesty. Ke jmenu se predradi cesta k RPM build root - ~/rpmbuild/SPECS/, vytvorena pomoci rpmdev-setuptree

Zvysovani verze balicku

$ rpmdev-bumpspec -c "blah blah" <*.spec>

Tips

Vsechna preddefinovana makra

$ less /usr/lib/rpm/macros

Potlaceni debug balicku

Mozne / nutne pouze v pripade pouziti maker %make_*.

Na vrch spec souboru pridame:

%global debug_package %{nil}

SystemD

Systemd units nepatri do /etc/, proto pouzijeme ve spec file v ceste promenou %{_unitdir}. Aby tato promena byla definovana, je nutne take uvest BuildRequires: systemd

BuildRequires:  systemd

...

%{_unitdir}/<service>.d/override.conf

Ke zjisteni cesty na aktualnim systemu, lze pouzit prikaz rpm:

$ rpm -E %{_unitdir}

https://fedoraproject.org/wiki/Packaging:Systemd

Rebuild *.src.rpm

$ rpmbuild --rebuild <source-rpm>
$ rpmbuild --rebuild *.src.rpm

%files nastaveni opravneni / vlastnika

%files
%defattr(-,root,root)
%doc %attr(0644,-,-) CREDITS
%doc NEWS
linux/rpm-balicky.1641379161.txt.gz · Poslední úprava: 2022/01/05 10:39 autor: nost23