Skip to content

Instantly share code, notes, and snippets.

@avshabanov
Last active February 17, 2018 03:42
Show Gist options
  • Save avshabanov/47d64dc1b098a9796a77d64df45b425a to your computer and use it in GitHub Desktop.
Save avshabanov/47d64dc1b098a9796a77d64df45b425a to your computer and use it in GitHub Desktop.
RPM for binary distribution

Create RPM

$ rpmdev-setuptree
... (=> in SOURCES)
$ install -m 755 hello       samplepkg-1.0/usr/bin/
$ install -m 644 hello.conf  samplepkg-1.0/etc/hello/
$ tar -zcvf samplepkg-1.0.tar.gz samplepkg-1.0/
... (=> in SPECS)
$ vim samplepkg.spec

Sample RPM:

# Don't try fancy stuff like debuginfo, which is useless on binary-only
# packages. Don't strip binary too
# Be sure buildpolicy set to do nothing
%define        __spec_install_post %{nil}
%define          debug_package %{nil}
%define        __os_install_post %{_dbpath}/brp-compress

Summary: A very simple toy bin rpm package
Name: samplepkg
Version: 1.0
Release: 1
License: Proprietary
Group: Development/Tools
SOURCE0 : %{name}-%{version}.tar.gz
URL: http://toybinprog.company.com/

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root

%description
%{summary}

%prep
%setup -q

%build
# Empty section.

%install
rm -rf %{buildroot}
mkdir -p  %{buildroot}

# in builddir
cp -a * %{buildroot}


%clean
rm -rf %{buildroot}


%files
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
%{_bindir}/*

%changelog
* Fri Feb 16 2018  John Doe <johndoe@localhost> 1.0-1
- First Build

Install / Uninstall RPM

$ rpm -ivp RPMS/x86_64/samplepkg-1.0-1.x86_64.rpm 
$ rpm -e samplepkg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment