User Tools

Site Tools


rpm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
rpm [2012/04/12 19:04]
k2patel [SPEC file sections explained]
rpm [2020/08/10 02:35] (current)
Line 1: Line 1:
 ====== RPM ====== ====== RPM ======
 +
 +* [[ Python packages to rpm ]]
  
 Package management system few tips / trick to build / modify / work with packages. \\ Package management system few tips / trick to build / modify / work with packages. \\
 Many hints information taken from original site [[http://​rpm.org/​ | RPM]] Many hints information taken from original site [[http://​rpm.org/​ | RPM]]
  
 +==== RPM Common Command ====
 +
 +^ Syntax ^Description^
 +| rpm -ivh {rpm-file} | Install the package |
 +| rpm -Uvh {rpm-file} | Upgrade package |
 +| rpm -ev {package} | Erase/​remove/​ an installed package |
 +| rpm -ev --nodeps {package} | Erase/​remove/​ an installed package without checking for dependencies |
 +| rpm -qa | Display list all installed packages |
 +| rpm -qi {package} | Display installed information along with package version and short description |
 +| rpm -qf {/​path/​to/​file} | Find out what package a file belongs to i.e. find what package owns the file |
 +| rpm -qc {pacakge-name} | Display list of configuration file(s) for a package |
 +| rpm -qcf {/​path/​to/​file} | Display list of configuration files for a command |
 +| rpm -qa --last | Display list of all recently installed RPMs |
 +| rpm -qpR {.rpm-file} | Find out what dependencies a rpm file has |
 +| rpm -qR {package} | ::: |
 +| rpm -qR bash | ::: |
 ==== How to Print .spec file from RPM ==== ==== How to Print .spec file from RPM ====
  
Line 125: Line 143:
 </​code>​ </​code>​
  
 +==== Something i come across ====
 +If you wanna override marco from OS you can define value at ''​top''​ of the spec file.
 +<code bash>
 +%define _mandir /usr/man
 +</​code>​
 ==== Sample RPM ==== ==== Sample RPM ====
 <code bash | sample.spec>​ <code bash | sample.spec>​
Line 216: Line 239:
 [[http://​rpm.org/​wiki/​Docs#​PackagerDocumentation | RPM Official]] [[http://​rpm.org/​wiki/​Docs#​PackagerDocumentation | RPM Official]]
  
 +==== Scriptlets ====
 +
 +Normally, rpm has scriptlets inside the spec file that are 
 +ran at install time.  These are:
 +<code bash>
 + %pre              - Run before rpm files are installed.
 + %post ​            - Run after rpm files are installed.
 + %preun ​           - Run before rpm files are erased.
 + %postun ​          - Run after rpm files are erased.
 + ​ %triggerin ​       - Install trigger.
 + %triggerun ​       - uninstall trigger
 + %triggerpostun ​   - postuninstall trigger.
 +</​code>​
 +The scripts are normally bash scripts, but you can change the interpreter
 +with the -p option.
 +
 +Also, as they are bash scripts you can call external scripts from these.
 ==== General RPM Command ==== ==== General RPM Command ====
  
Line 223: Line 263:
 </​code>​ </​code>​
  
 +
 +==== Error on Building ====
 +=== module: command not found ===
 +Try running following command and then execute rpmbuild will resolve the issue.
 +<code bash>
 +source /​etc/​profile.d/​modules.sh
 +</​code>​
 ==== MOCK ==== ==== MOCK ====
  
Line 267: Line 314:
 </​code>​ </​code>​
  
 +== Building SRPM ==
 +<code bash>
 +mock -r epel-6-x86_64 --spec icinga-web.spec --sources=../​SOURCES/​ --resultdir=../​RPMS/​ --buildsrpm
 +</​code>​
 ==== Copying Files ==== ==== Copying Files ====
 <note important>​Dont scratch over --copyin check spelling one more time</​note>​ <note important>​Dont scratch over --copyin check spelling one more time</​note>​
Line 292: Line 343:
 In general case result will be stored in '/​var/​lib/​mock/​epel-5-x86_64/​result/'​ In general case result will be stored in '/​var/​lib/​mock/​epel-5-x86_64/​result/'​
  
-==== RPM Spec File Information ​====+==== SPEC file Overview ​====
  
 This is mostly from following URL [[http://​fedoraproject.org/​wiki/​How_to_create_an_RPM_package | Fedora Project]] This is mostly from following URL [[http://​fedoraproject.org/​wiki/​How_to_create_an_RPM_package | Fedora Project]]
  
 <code text> <code text>
-SPEC file overview 
  
 Other useful guides: Other useful guides:
Line 772: Line 822:
 </​code>​ </​code>​
  
-^ Macro ^Typical Expansion ^  Meaning ^ + 
-| %{_bindir} | /​usr/​bin | ​ Binary directory: where executables are usually stored. |  +^ Macro ^ Typical Expansion ^ Meaning ^ 
-| %{_builddir} | ~/​rpmbuild/​BUILD | Build directory: files are compiled within a subdirectory of the build directory. See %buildsubdir. |  +| %{_bindir} | /usr/bin | Binary directory: where executables are usually stored. |  
-| %{buildroot} | ~/​rpmbuild/​BUILDROOT| Build root: where files are "​installed"​ during the %install stage, which copies files from a subdirectory of %{_builddir} to a subdirectory of %{buildroot}.(Historically,​ %{buildroot} was in "/​var/​tmp/"​.) |  +| %{_builddir} | ~/​rpmbuild/​BUILD | Build directory: files are compiled within a subdirectory of the build directory. See %buildsubdir. |  
-| %{buildsubdir}| ​ %{_builddir}/​%{name}| Build subdirectory:​ a subdirectory within %{_builddir} where files are compiled during the %build stage. It is set after %setup. |  +| %{buildroot} | ~/​rpmbuild/​BUILDROOT | Build root: where files are "​installed"​ during the %install stage, which copies files from a subdirectory of %{_builddir} to a subdirectory of %{buildroot}. (Historically,​ %{buildroot} was in "/​var/​tmp/"​.) |  
-| %{_datadir} | /​usr/​share | ​ Share directory. |  +| %{buildsubdir} | %{_builddir}/​%{name} | Build subdirectory:​ a subdirectory within %{_builddir} where files are compiled during the %build stage. It is set after %setup. |  
-| %{_defaultdocdir}| ​ /​usr/​share/​doc | ​ Default documentation directory. |  +| %{_datadir} | /usr/share | Share directory. |  
-| %{dist} | .fcNUMBER | ​ Distribution+version short name (e.g. "​.fc9"​) |  +| %{_defaultdocdir} | /​usr/​share/​doc | Default documentation directory. |  
-| %{fedora} | NUMBER | ​ Number of fedora release (e.g. "​9"​) |  +| %{dist} | .fcNUMBER | Distribution+version short name (e.g. "​.fc9"​) |  
-| %{_includedir}| ​ /​usr/​include| ​ |  +| %{fedora} | NUMBER | Number of fedora release (e.g. "​9"​) |  
-| %{_infodir} | /​usr/​share/​info| ​ |  +| %{_includedir} | /​usr/​include |  |  
-| %{_initrddir} | /​etc/​rc.d/​init.d| ​ |  +| %{_infodir} | /​usr/​share/​info |  |  
-| %{_libdir} | /​usr/​lib| ​ |  +| %{_initrddir} | /​etc/​rc.d/​init.d |  |  
-| %{_libexecdir}| ​ /​usr/​libexec| ​ |  +| %{_libdir} | /usr/lib |  |  
-| %{_localstatedir}| ​ /var|  |  +| %{_libexecdir} | /​usr/​libexec |  |  
-| %{_mandir} | /​usr/​share/​man| ​ |  +| %{_localstatedir} | /var |  |  
-| %{name} |  |  Name of package, set by Name: tag |  +| %{_mandir} | /​usr/​share/​man |  |  
-| %{_sbindir} | /​usr/​sbin| ​ |  +| %{name} |  ​Name of package, set by Name: tag |  
-| %{_sharedstatedir}| ​ /​var/​lib| ​ |  +| %{_sbindir} | /usr/sbin |  |  
-| %{_sysconfdir}| ​ /etc|  |  +| %{_sharedstatedir} | /var/lib |  |  
-| %{version} | ​  Version of package, set by Version: tag Learn more about macros by looking in /etc/rpm/* and /​usr/​lib/​rpm,​ especially /​usr/​lib/​rpm/​macros. Also use rpm --showrc to show values that RPM will use for macros (altered by rpmrc and macro configuration files).|+| %{_sysconfdir} | /etc |  |  
 +| %{version} |  | Version of package, set by Version: tag |  
 + 
 + 
  
 <code text> <code text>
 +Learn more about macros by looking in /etc/rpm/* and /​usr/​lib/​rpm,​ especially /​usr/​lib/​rpm/​macros.
 +Also use rpm --showrc to show values that RPM will use for macros (altered by rpmrc and macro configuration files).
 +
 You can set your own macro values using %global, You can set your own macro values using %global,
 but be sure to define them before you use them. but be sure to define them before you use them.
Line 805: Line 862:
 Also see Packaging/​RPMMacros and RPM Guide chapter 9. Also see Packaging/​RPMMacros and RPM Guide chapter 9.
 </​code>​ </​code>​
 +
 +==== Custom Built RPM ====
 +
 +[[http://​rpm.k2patel.in|my repository]]
rpm.1334257475.txt.gz · Last modified: 2020/08/10 02:29 (external edit)