RPM: Difference between revisions
m Text replacement - "</code>" to "}}" |
m formatting |
||
| Line 3: | Line 3: | ||
=== List installed packages === | === List installed packages === | ||
{{highlight|lang=terminal|code= | |||
# rpm -qa | |||
}} | |||
=== Look for a specific package by name === | === Look for a specific package by name === | ||
{{highlight|lang=terminal|code= | |||
# rpm -qi <package name> | |||
}} | |||
=== Determine the origin of a file === | === Determine the origin of a file === | ||
{{highlight|lang=terminal|code= | |||
# rpm -qf <path to file> | |||
}} | |||
eg: | eg: | ||
{{highlight|lang=terminal|code= | |||
# rpm -qf /etc/hosts | |||
setup-2.8.14-10.el6.noarch | |||
}} | |||
=== Extracting a rpm package === | === Extracting a rpm package === | ||
Go into a directory and extract it using cpio. This will dump the files in the current directory, so make a directory to avoid having your files clobbered. | Go into a directory and extract it using cpio. This will dump the files in the current directory, so make a directory to avoid having your files clobbered. | ||
{{highlight|lang=terminal|code= | |||
mkdir package && cd package | # mkdir package && cd package | ||
rpm2cpio ~/custom-package.rpm | cpio -idmv | # rpm2cpio ~/custom-package.rpm | cpio -idmv | ||
}} | |||
=== Viewing / Editing rpm package scripts === | === Viewing / Editing rpm package scripts === | ||
| Line 41: | Line 41: | ||
=== Remove a package with a broken uninstall script === | === Remove a package with a broken uninstall script === | ||
{{highlight|lang=terminal|code= | |||
# rpm -e --noscripts <package> | |||
}} | |||
== Building RPM == | == Building RPM == | ||
| Line 84: | Line 84: | ||
Example usage: | Example usage: | ||
{{highlight|lang=bash|code= | |||
%pre | %pre | ||
| Line 90: | Line 90: | ||
# Initial install | # Initial install | ||
fi | fi | ||
}} | |||
== Troubleshooting == | == Troubleshooting == | ||
| Line 99: | Line 99: | ||
... it probably means that you ran {{code|rpm}}. To fix this warning, clear {{code|yum}}'s cache and force a rebuild by running: | ... it probably means that you ran {{code|rpm}}. To fix this warning, clear {{code|yum}}'s cache and force a rebuild by running: | ||
{{highlight|lang=terminal|code= | |||
# yum clean all | |||
# yum makecache | |||
}} | |||
[[Category:Linux]] | [[Category:Linux]] | ||
Revision as of 20:01, 5 July 2017
Common RPM Tasks
Below are the common tasks I do with RPM.
List installed packages
# rpm -qa
Look for a specific package by name
# rpm -qi <package name>
Determine the origin of a file
# rpm -qf <path to file>
eg:
# rpm -qf /etc/hosts
setup-2.8.14-10.el6.noarch
Extracting a rpm package
Go into a directory and extract it using cpio. This will dump the files in the current directory, so make a directory to avoid having your files clobbered.
# mkdir package && cd package
# rpm2cpio ~/custom-package.rpm
Viewing / Editing rpm package scripts
Use the rpmrebuild utility to generate a .spec file from an existing RPM package. The spec file that gets generated will contain any scripts that may be bundled with rpm which you can modify.
# rpmrebuild -e -p some-package.rpm
## This should open your editor with the .spec file that was generated.
## Save and quit when done to have the option to rebuild the rpm.
Remove a package with a broken uninstall script
# rpm -e --noscripts <package>
Building RPM
Creating 32bit Dependency
In your RPM.spec file, have the following in your Requires line:
Requires: nss-pam-ldapd(x86-32)
Not:
Requires: nss-pam-ldapd.i686
Checking for Install/Upgrade/Remove in Install Scripts
To check whether a .rpm file is being installed, upgraded, or removed in the pre/post install scripts, check $1 against the table below:
| $1 = | 0 | 1 | 2 |
|---|---|---|---|
| %pre | Install | Upgrade | |
| %post | Install | Upgrade | |
| %preun | Uninstall | Upgrade | |
| %postun | Uninstall | Upgrade |
Example usage:
%pre
if [ $1 -eq 1 ] ; then
# Initial install
fi
Troubleshooting
Warning: RPMDB altered outside of yum.
If you ever get the error:
Warning: RPMDB altered outside of yum.
... it probably means that you ran rpm. To fix this warning, clear yum's cache and force a rebuild by running:
# yum clean all
# yum makecache