Linux下载包相关命令概述
写在前面:可以直接先在一台有网机器下载相关软件包,然后上传到另一台无网机器上,安装即可。
一、Centos相关命令
方法1
yum install --downloadonly --downloaddir="path" <pkg_name>
- 仅下载,不安装。不加–downloadonly则会下载后安装(注意:若/etc/yum.conf 配置文件中keepcache=0,则安装后不会保留缓存)。
- 默认缓存在/var/cache/yum下,或 /etc/yum.conf 配置文件中cachedir指定的位置下。可通过–downloaddir参数指定下载位置。
方法2
yumdownloader --resolve --destdir "save_path" <pkg_name>
- 下载软件包。加上–resolve参数会分析依赖。
- 默认保存到当前目录,可通过–destdir指定保存目录。
方法3
repotrack <pkg_name>
- 下载软件包及所有相关的依赖。
- 默认保存到当前目录。
二、Ubuntu相关命令
方法1
apt install --reinstall -d <pkg_name>
- Ubuntu仅下载,不安装。不加-d则会下载后安装。
- 默认缓存在/var/cache/apt/archives下。
方法2
apt depends <pkg_name> # 查看软件包依赖
apt download <pkg_name> # 下载软件包
- 默认保存到当前目录。
- 可综合上面两条命令,根据自己电脑实际情况,利用管道,可写出下面类似的命令。
apt-get download $(apt-cache depends <pkg_name> --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends | grep -v i386 | grep "^\w")
Centos系统离线环境安装软件包
首先在有网环境下好软件包,在U盘拷贝到离线机器上安装。这里以docker-ce、ngnix举例。
一、预备操作
1、换CentOS-Base源
# 换阿里源(加快下载速度)
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2、添加epel源
# 添加epel源(Extra Packages for Enterprise Linux)
sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
3、添加docker-ce源
yum-util提供yum-config-manager功能,若机器已默认安装,则可跳过
sudo yum install -y yum-utils
添加docker-ce源
# 阿里云的docker-ce镜像源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
或
# 官网的docker-ce镜像源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
二、下载软件包
1、创建下载软件包的保存根目录
mkdir pkgs_install
cd pkgs_install
2、docker-ce 下载
下载devicemapper驱动依赖(根据实际情况,判断是否下载)
mkdir dm-dep
yumdownloader device-mapper-persistent-data lvm2 --resolve --destdir ./dm-dep
下载docker-ce
mkdir docker-ce
yumdownloader docker-ce --resolve --destdir ./docker-ce
若需指定版本
# 搜索docker-ce版本,且倒序显示
yum list docker-ce --showduplicates | sort -r
# 指定版本安装,版本号可以忽略 : 和 el7
yumdownloader docker-ce-<VERSION STRING> --resolve --destdir ./docker-ce-<VERSION STRING>
3、nginx下载
mkdir nginx
yumdownloader nginx --resolve --destdir ./nginx
三、拷贝到离线环境机器安装
cd pkgs_install
sudo yum localinstall dm-dep/*.rpm
sudo yum localinstall --setopt=arch_install_langpack_i686=no docker-ce/*.rpm
sudo yum localinstall --setopt=arch_install_langpack_i686=no nginx/*.rpm
Ubuntu系统离线环境安装软件包
# 查看依赖
apt depends <package name>
# 递归下载所有 deb 依赖 (目前极少用到 32 位架构 过滤掉 i386 )
apt download $(apt depends <package name> --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends | grep -v i386 | grep "^\w")
# 离线安装 deb 包
dpkg -i <package name>