问题
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