How to Build Own RPM Package





First Login as regular user like ashutosh or any other normal user-

First Step-: Create a directory hierarchy.
--------------------------------------------------------

You have two options here to create directory hierarchy.

1. you can download a rpm package "redhat-release-6-6.0.0.24.el6.src.rpm" from Internet and then install this to create directory hierarchy.

[ashutosh@server ~]$ rpm -ivh redhat-release-6-6.0.0.24.el6.src.rpm

                              or


[ashutosh@server ~]$ yum install redhat-release* -y

Now you can check the rpmbuild directory which is created or not.

[ashutosh@server ~]$ ls


Desktop    Music     redhat-release-6-6.0.0.24.el6.src.rpm  Videos
Documents  Pictures  rpmbuild
Downloads  Public    Templates

Note-: rpmbuild directory has been created

2. If you don't want to use redhat-release rpm package you can create directory hierarchy manually.

[ashutosh@server ~]$mkdir rpmbuild

[ashutosh@server ~]$mkdir rpmbuild/SOURCES

[ashutosh@server ~]$mkdir rpmbuild/SPECS

Second Step-: Create a directory with some sample files or scripts that you like to build in the package:
------------------------------------------------------------------------------


[ashutosh@server ~]$mkdir ashutosh-0.1

[ashutosh@server ~]$cd ashutosh-0.1/

[ashutosh@server ashutosh-0.1]$vim ashutosh1
______________________________________________
#!/bin/bash
#This is a Simple Script.
#Nmae-Ashutosh
#mail-ashutosh.meritnation@gmail.com
yum install festival* -y
echo "Your Welcome" | festival --tts
echo -e "\E[0;34mYour Welcome,\E[0m"
echo   "This ia my test rpm package" | festival --tts
echo -e "\E[32mThis ia my Test RPM Package.\E[0m"
echo "Thanks" | festival --tts
echo -e "\E[1;31mThanks,\E[0m"
echo "Ashutosh" | festival --tts
echo -e "\E[5;35mAshutosh\E[0m"
exit

:wq (save and exit)
________________________________________________
[ashutosh@server ashutosh-0.1]$cd

[ashutosh@server ~]$

Now create an archive file-

[ashutosh@server ~]$tar -czvf ashutosh-0.1.tar.gz ashutosh-0.1/

Then copy this source to /home/ashutosh/rpmbuild/SOURCES/

[ashutosh@server ~]$cp ashutosh-0.1.tar.gz /home/ashutosh/rpmbuild/SOURCES/

Third Step: Now Create spec file.
---------------------------------------------

(spec files is to read through some of the huge number of spec files for the source RPMs that come with your Linux distribution)

[ashutosh@server ~]$cd /home/ashutosh/rpmbuild/SPECS/

[ashutosh@server SPECS]$vim ashutosh.spec


Name:           ashutosh
Version:         0.1
Release:        1%{?dist}
Summary:      GOOD
Group:           Ashutosh
License:         GNUv2
URL:              http://ashutoshlinuxnotes.blogspot.in/
Source:          ashutosh-0.1.tar.gz
Buildroot:%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

# BuildRequires:
# Requires:

%description
THIS IS GOOD RPM.

%prep
%setup -q


%build
echo " OK "

%install
rm -rf $RPM_BUILD_ashutosh
mkdir -p $RPM_BUILD_root/root/bin
cp ashutosh1 $RPM_BUILD_root/root/bin

%clean
rm -rf $RPM_BUILD_root


%files
%defattr(-,root,root,-)
%attr(0777,root,root)/root/bin/ashutosh1

%changelog
* Thu Feb 22 2014 test-0.1
TYPE ANY COMMENT WHAT YOU LIKE.

Fourth Steps-: Now you have to build the rpm package using this spec file.
-------------------------------------------------------------------------------


[ashutosh@server ~]$su -
password:
[root@servr ~]#rpm -qa rpm-build
                           or
[root@server ~]#yum install rpm-build

[root@server ~]#logout

[ashutosh@server ~]$


[ashutosh@server ~]$rpmbuild -ba /home/ashutosh/rpmbuild/SPECS/ashutosh.spec

Finally your RPM has been build. now you can display your RPM package from this path (/home/student/rpmbuild/RPMS/x86_64/) using ls command.

[ashutosh@server ~]$ ls /home/ashutosh/rpmbuild/RPMS/x86_64/

ashutosh-1-1.el6.x86_64.rpm  ashutosh-debuginfo-1-1.el6.x86_64.rpm

Note- You can see following directory, inside the /home/ashutosh/rpmbuild/ directory:

BUILD                - Contains scratch space used to compile software
RPMS                - Contains the binary RPM that is built
SOURCES          - Holds the source code for the RPM
SPECS               - Contains the spec file(s) (one per RPM)
SRPMS               - Contains the source RPM built during the process


Now install rpm package-
-------------------------------

[ashutosh@server ~]$su -
 password:

[root@server ~]#rpm -ivh /home/ashutosh/rpmbuild/RPMS/x86_64/ashutosh-1-1.el6.x86_64.rpm

After installing rpm package you can use the command.

[root@server ~]#ashutosh1

Your Welcome,
This ia my Test RPM Package.
Thanks,
Ashutosh

[ashutosh@server ~]#


More Info...Click

I hope you like it.
So Enjoy............................!


______________________________________________________________________________________
Click Back..                                Click Home..
https://docs.google.com/forms/d/1iNRZlJJO6rBFizzPcFmyOTEtfkdjhdVRmpM74IbiT3o/viewform