在Linux操作系统时有时候我们需要在没有网络的环境下部署软件当需要编译安装时可能会遇到缺少编译工具的情况而安装编译工具又需要其他的依赖包。如果一个一个安装将会非常繁琐本文提供一种方法在有网的环境下直接下载工具包及对应的所有依赖包直接拷贝到没有网络上的机器进行部署即可。RedHatRedHat系统使用yum工具yumdownloader命令下载rpm包1.安装yum工具yum-yinstallyum-utils2.下载所需包及全部依赖yumdownloader--resolve软件包名# 创建一个目录进入目录然后执行该命令所有软件包及依赖都会下载到该目录内# 如下命令yumdownloader--resolvereadline-devel openssl-devel zlib-devel libxml2-devel libxslt-devel libcurl-devel libicu-devel postgresql-devel flex bisongitwget3.打包rpm文件将该目录打包并拷贝到U盘等文件内tar-cf压缩包名 源文件名4.解压安装包tar-xf压缩包rpm-ivh*.rpmUbuntu1.使用apt-get下载软件包及依赖# 该命令会把所有的软件包及依赖的下载地址输出到.txt文件中apt-getinstall--print-uris--yes软件包名|grep^\|cut-d\-f2packages.txt# 例如apt-getinstall--print-uris--yesbuild-essential libreadline-dev libssl-dev zlib1g-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev libicu-dev libpq-dev flex bisongitwget|grep^\|cut-d\-f2packages.txt2.使用wget -i从.txt文件中的地址下载软件包mkdirsoftware_installcdsoftware_installwget-i.txt3.下载完成后使用dpkg -i安装软件包dpkg-i*.deb4.使用–download-only参数该参数只下载deb包而不进行安装aptinstall-y--download-only gccmakelibpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev下载完成后去/var/cache/apt/archives/目录下找到对应的包然后拷贝出来即可再执行dpkg -i *.deb建议准备新机器每次下载后包移到另外的文件夹关掉网络进行安装保证/var/cache/apt/archives/目录下每次都是需要的deb包