centos rpm系列的
为它往往有很多依赖项目。比如,我们来查看一下net-tools的依赖项有哪些:
yum deplist net-tools
推荐使用以下几种方法:
1.repotrack
我这里也以上期讲到的Mariadb为例演示,以下操作需要在有网络的环境下进行。repotrack可以分析软件的依赖项目,并把依赖的rpm包下载下来。
# 安装yum-utils
yum -y install yum-utils# 下载全量依赖包
repotrack net-tools
2.yumdownloader
yumdownloader也是一款离线依赖包下载工具,与repotrack不同的是,它并不是全量下载,而是根据你机器的环境来决定的,比如你电脑已经安装了大多数依赖项目,那么下载下来的软件包数量就少,反之就更多。
yumdownloader --downloadonly --resolve net-tools ./
我的建议是,使用一台全新安装的机器,运行yumdownloader得到关键的依赖项,拿到类似环境的服务器上,就能正常运行了。当然第一种方法更值得推荐,只是文件较多
# 离线安装
$ rpm -Uvh --force --nodeps *.rpm
3:yum 的 downloadonly 插件
下载 ansible 依赖包
$ yum -y install ansible --downloadonly --downloaddir=/tmp
deb系列:
1.查看依赖
apt-cache depends XXX
2.下载deb及其依赖包
apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-break
3.使用dpkg命令离线安装
sudo dpkg -i *.deb
下面的指令可以只下载软件包而不安装
sudo apt-get install --reinstall -d -y xxx软件包
组合起来就可以了
sudo apt-get install --reinstall -d -y `apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends xxx软件包 | grep -v i386 | grep "^\w"`
下载的路径是 /var/cache/apt/archives/