Explain: Red Hat Linux RPM Relocatable and Not Relocatable Packages

by on March 26, 2008 · 4 comments· LAST UPDATED March 26, 2008

in , ,

Q. Can you explain CentOS / RHEL / Fedora Linux relocatable package concept?

A. RPM has the ability to give users some latitude in deciding where packages are to be installed on their systems. However, package builders must first design their packages to give users this freedom. In other words, an RPM package that can be installed into a different directory is said to be relocatable. Please note that not all RPM packages can be installed into another directory.

Task: Find out if whether a particular package is relocatable or not

Use rpm command as follows:
$ rpm -qi {package-name} | grep Relocations
$ rpm -qpi package.file.rpm | grep Relocations
$ rpm -qi bash | grep Relocations

Sample output (it means bash package can be installed in diffrent directory such as /home/chroot/users/):

Name        : bash                         Relocations: /usr

Following package is not relocatable:
$ rpm -qi keyutils-libs | grep -i Relocations
Output:

Name        : keyutils-libs                Relocations: (not relocatable)

Task: Install package into a different directory

rpm command has --prefix option. It allows to install package in diffrent directory. For example, install bash into /opt directory:
# rpm --prefix=/opt bash*.rpm

See also:

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 4 comments… read them below or add one }

1 pradeep m August 13, 2008 at 7:08 am

i was a study to rhce

Reply

2 Prakash saurabh January 27, 2010 at 5:16 pm

Explain vi editor options for text formatting.

Reply

3 Reynold September 7, 2011 at 2:11 am

Thanks for the post Vivek:)
One question if you don’t mind. Is it possible to convert a non-relocatable rpm to a relocatable one?

I was able to install a non-relocatable package to a non-standard location with rpm. The details are provided below,
—————————————————————————–
[root@mail2 ~]# rpm –prefix=/mail/mysql -i mysql-server-5.0.77-4.el5_6.6.x86_64.rpm
error: package mysql-server is not relocatable
[root@mail2 ~]# rpm –relocate /=/mail/mysql/ –badreloc -ivh mysql-server-5.0.77-4.el5_6.6.x86_64.rpm
Preparing… ########################################### [100%]
1:mysql-server ########################################### [100%]
error reading information on service mysqld: No such file or directory
/bin/chmod: cannot access `/var/lib/mysql': No such file or directory
[root@mail2 ~]# echo $?
0
[root@mail2 ~]#
—————————————————————————–

Do you think there is any possible issues with the above procedure?

Reply

4 emmanuel segura December 9, 2014 at 7:05 pm

the problem using relocate options is explained here: http://rpm5.org/docs/api/relocatable.html

Reply

Leave a Comment

Tagged as: , , , , , , , ,

Previous Faq:

Next Faq: