packaging
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
| packaging [2015/02/06 17:45] – [malé velké rady] djbuldog | packaging [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 27: | Řádek 27: | ||
| %_srcrpmdir %{_rpmtopdir} | %_srcrpmdir %{_rpmtopdir} | ||
| </ | </ | ||
| + | * nebo parametrem programu rpmbuild | ||
| + | <code bash> | ||
| + | rpmbuild --buildroot=" | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | -bb " | ||
| + | </ | ||
| + | |||
| + | * seznam proměnných/ | ||
| + | |||
| + | ==== spec file ==== | ||
| + | |||
| + | * SourceX | ||
| + | * soubor balíčku zadaný jako URL nebo název souboru v SOURCES adresáři, typicky tgz archív se zdrojáky | ||
| + | * X zastupuje číslo, například Source0, Source1.., může jich být tedy více | ||
| + | * Source bez čísla je synonymum k Source0 | ||
| + | * lze využít proměnné %{name}, %{version} | ||
| + | * PatchX | ||
| + | * rozdílový soubor zadaný jako URL nebo název souboru v SOURCES adresáři, typicky obsahující modifikace souborů z archívu SourceX | ||
| + | * X zastupuje číslo, například Patch0, Patch1.., může jich být tedy více | ||
| + | * Requires | ||
| + | * na čem balíček závisí | ||
| + | * například názvy jiných balíčků oddělených čárkou | ||
| + | * lze zadat i konkrétní verze přes komparátory (<,>, | ||
| + | |||
| + | * %prep | ||
| + | * příkazy k přípravě balíčku | ||
| + | * typicky volají příkaz setup, který zařídí extrakci souborů SourceX | ||
| + | * setup má parametry, popis například [[https:// | ||
| + | * setup lze nahradit například zápisem | ||
| + | < | ||
| + | cd %{_builddir} | ||
| + | rm -rf %{name}-%{version} | ||
| + | cp -rf %{_sourcedir} %{name}-%{version} | ||
| + | cd %{name}-%{version} | ||
| + | / | ||
| + | </ | ||
| + | * %build | ||
| + | * příkazy pro build programu, který balíček reprezentuje | ||
| + | * pokud nic buildovat nepotřebujeme, | ||
| + | * %install | ||
| + | * příkazy pro instalaci, typicky kopírování z %{_builddir} do %{buildroot}, | ||
| + | |||
| + | * %pre - příkazy před instalací/ | ||
| + | * %post - příkazy po instalaci/ | ||
| + | * %preun - příkazy před odinstalací | ||
| + | * %postun - příkazy po odinstalování, | ||
| + | |||
| + | ^ ^ install ^ upgrade ^ uninstall ^ | ||
| + | | %pretrans | $1 == 0 | $1 == 0 | (N/A) | | ||
| + | | %pre | $1 == 1 | $1 == 2 | (N/A) | | ||
| + | | %post | $1 == 1 | $1 == 2 | (N/A) | | ||
| + | | %preun | (N/A) | $1 == 1 | $1 == 0 | | ||
| + | | %postun | (N/A) | $1 == 1 | $1 == 0 | | ||
| + | | %posttrans | $1 == 0 | $1 == 0 | (N/A) | | ||
| + | |||
| + | < | ||
| + | %post | ||
| + | case $1 in | ||
| + | 1) | ||
| + | # instalation | ||
| + | ;; | ||
| + | 2) | ||
| + | # upgrade | ||
| + | ;; | ||
| + | esac | ||
| + | </ | ||
| + | |||
| + | * %files | ||
| + | * soubory, které budou balíčkem instalovány (verzovány) | ||
| + | * všechny soubory vytvořené v '' | ||
| + | * místo souborů lze použít hvězdičku | ||
| + | * pozor na verzování obecných adresářů, | ||
| + | * souborům lze nastavit oprávnění a vlastníka předřazením '' | ||
| + | * konfigurační soubory by měly mít předřazeno označení '' | ||
| + | * pokud je v balíčku novější cfg soubor, tak přepíše lokální a případné modifikace lokálního uloží do .rpmsave | ||
| ==== Příklad " | ==== Příklad " | ||
| Řádek 40: | Řádek 118: | ||
| Release: 0 | Release: 0 | ||
| Source: none | Source: none | ||
| - | Copyright: GPL | + | License: GPL |
| Group: Utilities/ | Group: Utilities/ | ||
| Řádek 69: | Řádek 147: | ||
| cp -ra projekt/* build/ | cp -ra projekt/* build/ | ||
| chmod +x build/ | chmod +x build/ | ||
| - | rpmbuild --buildroot=$(BASEDIR)/build/root --define=" | + | rpmbuild --buildroot=${BASEDIR}/build/root --define=" |
| </ | </ | ||
| Řádek 142: | Řádek 220: | ||
| * *) pak se teprve dela pre/post uinstall | * *) pak se teprve dela pre/post uinstall | ||
| + | Pořadí, ve kterém se bude spouštět pre-install není asi dopředu známo. Pokud jsou balíčky závislé na sobě, je dobré využít trigger skripty ([[https:// | ||
| + | |||
| + | https:// | ||
| + | |||
| + | - %pretrans of new package | ||
| + | - %pre of new package | ||
| + | - (package install) | ||
| + | - %post of new package | ||
| + | - %triggerin of other packages (set off by installing new package) | ||
| + | - %triggerin of new package (if any are true) | ||
| + | - %triggerun of old package (if it's set off by uninstalling the old package) | ||
| + | - %triggerun of other packages (set off by uninstalling old package) | ||
| + | - %preun of old package | ||
| + | - (removal of old package) | ||
| + | - %postun of old package | ||
| + | - %triggerpostun of old package (if it's set off by uninstalling the old package) | ||
| + | - %triggerpostun of other packages (if they' | ||
| + | - %posttrans of new package | ||
| ==== malé velké rady ==== | ==== malé velké rady ==== | ||
| Řádek 159: | Řádek 255: | ||
| * http:// | * http:// | ||
| * http:// | * http:// | ||
| + | * https:// | ||
| + | |||
| + | |||
| + | ===== DEB ===== | ||
| + | |||
| + | ==== Finty ==== | ||
| + | |||
| + | * nalezení balíčku, který obsahuje soubor | ||
| + | |||
| + | < | ||
| + | $ dkpg -S /bin/cat | ||
| + | coreutils: /bin/cat | ||
| + | </ | ||
| + | |||
| + | * Jak zobrazit dostupnou a nainstalovanou verzi? | ||
| + | |||
| + | < | ||
| + | # apt-cache policy gnome-control-center | ||
| + | gnome-control-center: | ||
| + | | ||
| + | | ||
| + | | ||
| + | *** 1:2.20.0-1 0 | ||
| + | 500 ftp:// | ||
| + | 100 / | ||
| + | </ | ||
| + | |||
| + | ==== Tvorba ==== | ||
| + | |||
| + | * http:// | ||
| + | |||
| + | < | ||
| + | $ mkdir -p ./ | ||
| + | $ cp linuxstatus ./ | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | Package: linuxstatus | ||
| + | Version: 1.1-1 | ||
| + | Section: base | ||
| + | Priority: optional | ||
| + | Architecture: | ||
| + | Depends: bash (>= 2.05a-11), textutils (>= 2.0-12), awk, procps (>= \ | ||
| + | 1:2.0.7-8), sed (>= 3.02-8), grep (>= 2.4.2-3), coreutils (>= 5.0-5) | ||
| + | Maintainer: Chr. Clemens Lee < | ||
| + | Description: | ||
| + | This script provides a broad overview of different | ||
| + | | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | $ mkdir -p debian/ | ||
| + | $ find ./debian -type d | xargs chmod 755 # this is necessary on Debian Woody, don't ask me why | ||
| + | $ cp control debian/ | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | $ dpkg-deb --build debian | ||
| + | dpkg-deb: building package `linuxstatus' | ||
| + | $ mv debian.deb linuxstatus_1.1-1_all.deb | ||
| + | </ | ||
packaging.1423241116.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)
