$ cat ~/.rpmmacros
%_topdir /home/jamatos/
%_tmppath /tmp/rpmbuild
%_builddir %{_tmppath}
%_rpmtopdir %{_topdir}/build/%{name}
%_sourcedir %{_rpmtopdir}
%_specdir %{_rpmtopdir}
%_rpmdir %{_rpmtopdir}
%_srcrpmdir %{_rpmtopdir}
rpmbuild --buildroot="${BUILDDIR}/rpm-root" \ --define="_builddir ${BUILDDIR}/BUILD" \ --define="_rpmdir ${BUILDDIR}/RPMS" \ --define="_tmppath ${BUILDDIR}/rpm-tmp" \ --define="_sourcedir ${BUILDDIR}/SOURCES" \ -bb "${BUILDDIR}/$1.spec"
cd %{_builddir}
rm -rf %{name}-%{version}
cp -rf %{_sourcedir} %{name}-%{version}
cd %{name}-%{version}
/usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
| 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
%{buildroot} musí být vypsány ve sekci %files, jinak balíček nelze vytvořit%attr(644,user,group) před název souboru%config (případně i před %attr)Summary: Balicek na rychlo
Name: balicek-prvni
Version: 1.0
Release: 0
Source: none
License: GPL
Group: Utilities/System
%description
Tohle je muj balicek
%prep
%build
%configure
make OPTIM="$RPM_OPT_FLAGS"
%install
%makeinstall PREFIX=$RPM_BUILD_ROOT install
%files
%{_bindir}
%{_datadir}
BASEDIR=`pwd`
mkdir -p build/{root,BUILD}
cp -ra projekt/* build/BUILD/
chmod +x build/BUILD/configure
rpmbuild --buildroot=${BASEDIR}/build/root --define="_builddir ${BASEDIR}/build/BUILD" --define="_rpmdir ${BASEDIR}/build/" -bb balicek-prvni.spec
Summary: Bblablablabla
Name: balicek-prvni
Version: 1.0
Release: 0
Source: projekt-src.tar.gz
Copyright: GPL
Group: Utilities/System
%description
Tohle je muj balicek
%prep
%setup
%build
make OPTIM="$RPM_OPT_FLAGS"
%install
make PREFIX=$RPM_BUILD_ROOT install
%files
%{_bindir}
%{_datadir}
# pripravi adresarovy strom a nastaveni pro RPM
rpmbuildenv:
mkdir -p ~/rpmbuild/{BUILD,RPMS/x86_64,SOURCES,SPECS,SRPMS}
(echo "%_topdir ~/rpmbuild";echo "%_prefix /usr/local/") >> ~/.rpmmacros
rpm:
cp -ra zdrojaky zdrojaky-tmp
chmod +x zdrojaky-tmp/configure
# odstraneni info o svn, pokud tam je
find zdrojaky-tmp -name '.svn'|xargs rm -rf
tar czf zdrojaky-tmp.tgz zdrojaky-tmp
# pokud je lokalni RPM build prostredi tak do nej supnu balicky a spec file (dodelat)
[ -d ~/rpmbuild/SOURCES ] && cp -f zdrojaky-tmp.tgz ~/rpmbuild/SOURCES
all: rpmbuildenv rpm
Hence, the order of operations during an upgrade is:
A taky pozor na instalaci vice balicku najednou, chova se to trochu jinak. Hromadny upgrade (rpm -Uvh *) nejspis funguje takto:
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 (%triggerin, %triggerun, %triggerpostun)
https://fedoraproject.org/wiki/Packaging:Scriptlets
$ dkpg -S /bin/cat coreutils: /bin/cat
# apt-cache policy gnome-control-center
gnome-control-center:
Instalovaná verze: 1:2.20.0-1
Kandidát: 1:2.20.0-1
Tabulka verzí:
*** 1:2.20.0-1 0
500 ftp://ftp.cz.debian.org unstable/main Packages
100 /var/lib/dpkg/status
$ mkdir -p ./debian/usr/bin $ cp linuxstatus ./debian/usr/bin
Package: linuxstatus Version: 1.1-1 Section: base Priority: optional Architecture: all 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 <clemens@kclee.de> Description: Linux system information This script provides a broad overview of different system aspects.
$ mkdir -p debian/DEBIAN $ find ./debian -type d | xargs chmod 755 # this is necessary on Debian Woody, don't ask me why $ cp control debian/DEBIAN
$ dpkg-deb --build debian dpkg-deb: building package `linuxstatus' in `debian.deb'. $ mv debian.deb linuxstatus_1.1-1_all.deb