Difference between revisions of "Build rpm packages with the rpmbuild command"
From Linuxintro
imported>ThorstenStaerk |
imported>ThorstenStaerk |
||
Line 5: | Line 5: | ||
<pre> | <pre> | ||
cd | cd | ||
− | mkdir hello | + | mkdir hello-1.0 |
− | cd hello | + | cd hello-1.0 |
cat >main.c <<EOF | cat >main.c <<EOF | ||
#include <stdio.h> | #include <stdio.h> | ||
Line 68: | Line 68: | ||
= Build the rpm = | = Build the rpm = | ||
− | Now we have the SPEC file and the software. | + | Now we have the SPEC file and the software. First we store the source in the "appropriate" place: |
+ | cd | ||
+ | tar cvzf hello.tar.gz hello-1.0 | ||
+ | cp hello.tar.gz /usr/src/packages/SOURCES | ||
+ | Then, build it with the command | ||
rpmbuild -ba hello.spec | rpmbuild -ba hello.spec | ||
You will find your ready RPM under /usr/src/packages/RPMS. | You will find your ready RPM under /usr/src/packages/RPMS. | ||
+ | |||
+ | = Clean up = | ||
+ | To clean up, run | ||
+ | rm /usr/src/packages/SOURCES/hello.tar.gz | ||
= See also = | = See also = |
Revision as of 15:25, 13 February 2011
This article is about how to build rpm packages with the rpmbuild command and a SPEC file. The example is based on SuSE 11.3 x86_64. However, other distributions should work same or similar.
The program
Here is how we create our program, hello world:
cd mkdir hello-1.0 cd hello-1.0 cat >main.c <<EOF #include <stdio.h> int main() { printf("hello world"); } EOF
The Makefile
To build our program, we need a makefile. Here is how we create it:
cat >Makefile <<EOF all:hello hello: main.c gcc main.c -o hello install: hello cp hello /usr/local/bin EOF sed -i "s/ /\t/g" Makefile
The SPEC file
cat >hello.spec<<EOF Summary: hello greets the world Name: hello Version: 1.0 Release: 1 License: GPL Group: Applications/Sound Source: hello.tar.gz URL: http://www.staerk.de/thorsten/ Distribution: SUSE Linux Vendor: - Packager: Thorsten Staerk %description hello greets the world %prep %setup %build make %install make install mkdir -p /usr/src/packages/BUILDROOT/hello-1.0-1.x86_64/usr/local/bin cp /usr/local/bin/hello \$RPM_BUILD_ROOT/usr/local/bin/hello %files %defattr(-, root, root) "/usr/local/bin/hello" EOF
Build the rpm
Now we have the SPEC file and the software. First we store the source in the "appropriate" place:
cd tar cvzf hello.tar.gz hello-1.0 cp hello.tar.gz /usr/src/packages/SOURCES
Then, build it with the command
rpmbuild -ba hello.spec
You will find your ready RPM under /usr/src/packages/RPMS.
Clean up
To clean up, run
rm /usr/src/packages/SOURCES/hello.tar.gz