我想在没有互联网连接的linux服务器上安装rpm包(例如python 3)及其所有依赖项。
我该怎么做?
答案 0 :(得分:2)
在 CentOS/RedHat 中,您可以将 yumdownloader
用于特定的包,这会下载所有需要的 RPM,然后压缩目录,将其上传到没有 Internet 访问权限的服务器并安装 RPM。
Here 您可以找到并举例,在没有 Internet 访问的情况下安装 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
答案 1 :(得分:1)
假设您之前已从其他具有Internet访问权限的计算机下载了该程序包并将文件FTP到您的服务器,则可以使用以下命令安装rpm
rpm -ivh package_name_x85_64.rpm
选项:
您还可以查看rpm手册以获取更多选项和详细信息
答案 2 :(得分:1)
有一种方法,但它非常棘手,可能会弄乱你的服务器,所以非常小心。
命名法:
步骤:
从离线系统压缩您的rpm数据库并将其传输到在线系统:
cd /var/lib/rpm/
tar -cvzf /tmp/rpmdb.tgz *
scp /tmp/rpmdb.tgz root@online:/tmp
在线系统;将您的rpm db替换为离线系统中的那个:
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,}