How to install a rpm package and its dependencies offline

試著忘記壹切 提交于 2019-12-24 00:26:53

问题


I want to install a rpm package, (e.g. python 3), and all of its dependencies in a linux server that does not have internet connection.

How can I do that?


回答1:


Assuming you already downloaded the package before from another machine that has internet access and FTP the files to your server, you can use the following command to install a rpm

rpm -ivh package_name_x85_64.rpm

options:

  • i = This installs a new package.
  • v = Print verbose information
  • h = Print 50 hash marks as the package archive is unpacked.

You can also check the rpm manual for more options and details




回答2:


There is a way, but it is quite tricky and might mess up your servers, so be very careful.

Nomenclature:

  • online : your system that is connected to the repositories
  • offline: your system that is not connected

Steps:

Compress your rpm database from the offline system and transfer it to the online system:

cd /var/lib/rpm/
tar -cvzf /tmp/rpmdb.tgz *
scp /tmp/rpmdb.tgz root@online:/tmp

on your online system; replace your rpm db with the one from the offline system:

cp -r /var/lib/rpm{,.bak} # back up your rpmdb from your online system. Make sure not to lose this!!
rm -rf /var/lib/rpm/*
cd /var/lib/rpm
tar -xvf /tmp/rpmdb.tgz # now your online system pretends to have the rpm database from the offline system. Don't start really installing / uninstalling rpms or you'll break everything

now simulate your update with download-only (I didn't run this with yum but with zypper, but it should be similar):

zypper up --download-only

Now you can fetch all the downloaded packages and they should suffice for updating your offline system

And now restore your online machine:

rm -rf /var/lib/rpm
cp -r /var/lib/rpm{.bak,}


来源:https://stackoverflow.com/questions/50648152/how-to-install-a-rpm-package-and-its-dependencies-offline

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!