56

I'm asking this question cautiously because I don't want to get this wrong.

I have a program_name.rpm file saved locally on my server (CentOS 6.5).

I have installed it previously just by navigating to it and using yum install program_name.rpm which worked fine but it didn't give me any option to specify where it is installed.

Is it possible to install this rpm to /opt/some_directory instead of it's default install location?

2 Answers 2

108

Too bad you accepted that rpm answer. That will lead to warnings from subsequent executions of yum, such as Warning: RPMDB altered outside of yum

Instead you should use yum localinstall, per section 13 of the Yum and RPM Tricks page of the CentOS wiki => https://wiki.centos.org/TipsAndTricks/YumAndRPM#head-3c061f4a180e5bc90b7f599c4e0aebdb2d5fc7f6

You can use the --installroot option to specify a different installation root.

4
  • 3
    I do like doing things according to best practices and this answer includes the yum equivalent that I was hoping for. Unfortunately I've installed a whole bunch of packages using the rpm -ivh method already. I wish it were possible to accept two correct answers because I feel the accepted answer is correct but people coming to view this question would benefit more from this answer Commented Jun 21, 2016 at 7:34
  • Is better to use yum instead of rpm,but to solve the "warning: RPMDB altered outside of yum" is possible to use "yum history sync"
    – elbarna
    Commented Oct 3, 2018 at 15:48
  • 1
    This works. When I tried just running rpm it didn't go get the dependencies. It just errored with "Failed dependencies". Commented Oct 4, 2018 at 21:52
  • "yum --nogpgcheck localinstall packagename.arch.rpm"
    – hmz
    Commented Mar 26, 2019 at 7:02
36

Use rpm

rpm -ivh package.rpm

If you want to install it on different place use:

rpm -ivh -r /new/path package.rpm

but be aware under new root will be recreated the directory structure from package

5
  • 2
    this worked great, I don't suppose there is a YUM equivalent? Commented Feb 5, 2015 at 8:40
  • 4
    To clarify: yum is wrapper around rpm. rpm is the main program to manage packaged in RHEL, SuSE, CentOS and other distributions Commented Feb 5, 2015 at 8:42
  • 4
    Oh I always thought yum was based on rpm, never realized it was a wrapper, thanks for all your help Commented Feb 5, 2015 at 9:09
  • Do you have to be root to run this command? Commented Oct 14, 2017 at 1:25
  • Correct, you must be root to run the command Commented Oct 14, 2017 at 3:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .