我想在一个没有网络连接的Linux服务器上安装一个RPM软件包(例如Python 3)及其所有依赖项。
我该怎么做?
yumdownloader
下载特定的软件包,这将下载所有所需的RPM软件包,然后压缩该目录,上传到没有互联网访问权限的服务器并安装RPM软件包。
在这里,您可以找到一个示例,演示如何在没有互联网访问权限的情况下安装Kubernetes。yumdownloader --assumeyes --destdir=/var/rpm_dir/docker-ce --resolve docker-ce
tar -czvf d4r-k8s.tar.gz /var/rpm_dir
# Upload files
scp d4r-k8s.tar.gz root@YOUR-IP:/root
# Connect to your server
ssh root@YOUR-IP
tar -xzvf /root/d4r-k8s.tar.gz -C /
# install Docker:
yum install -y --cacheonly --disablerepo=* /var/rpm_dir/docker-ce/*.rpm
yum install yum-utils
。 - degeneraterpm -ivh package_name_x85_64.rpm
选项:
您还可以查看rpm手册以获取更多选项和详细信息。
有一种方法,但是它非常棘手,可能会破坏您的服务器,所以要非常小心。
术语:
步骤:
从离线系统压缩您的rpm数据库并将其传输到在线系统:
cd /var/lib/rpm/
tar -cvzf /tmp/rpmdb.tgz *
scp /tmp/rpmdb.tgz root@online:/tmp
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
现在,您可以使用仅下载的方式模拟更新(我没有用yum运行此命令,而是使用zypper,但应该类似):
zypper up --download-only
现在,您可以获取所有已下载的软件包,并且它们足以更新您的离线系统。
现在,请恢复您的在线计算机:
rm -rf /var/lib/rpm
cp -r /var/lib/rpm{.bak,}