道者编程

linux离线安装软件

有时候我们会遇到一些特殊的环境配置要求,或许出于安全、也或许是保密、也或许其他环境,总而言之,言而总之。给了一台linux,但没有网络。这种情况就日了狗了,我们现在就解决这种情况。

以ubuntu18.04为例。安装php7.2环境

废话少说,干

假如,假如有网络的话,安装容易的很:

sudo apt install -y --no-install-recommends php7.2 php7.2-bcmath php7.2-cli php7.2-common php7.2-curl php7.2-fpm php7.2-gd php7.2-mbstring php7.2-mysql php7.2-xml php7.2-zip php7.2-soap
就这样一下就可以了,前提是有网络。

那现在没网络怎么办?

思路:我们在有网络的服务器上(相同版本的服务器),先把这些包给拉下来,先不考虑依赖。怎么拉?总不能一个一个去找吧?太麻烦。我们借用 apt-get download命令即可。还是上面那些包,apt-cache depends -i:下载相关依赖,执行一下:

格式:

apt-get download 要下载的软件包 && apt-cache depends -i 要下载的软件包 | awk '/Depends:/ {print $2}' | xargs  apt-get download
 执行下载php:

apt-get download php7.2 php7.2-bcmath php7.2-cli php7.2-common php7.2-curl php7.2-fpm php7.2-gd php7.2-mbstring php7.2-mysql php7.2-xml php7.2-zip php7.2-soap && apt-cache depends -i php7.2 php7.2-bcmath php7.2-cli php7.2-common php7.2-curl php7.2-fpm php7.2-gd php7.2-mbstring php7.2-mysql php7.2-xml php7.2-zip php7.2-soap | awk '/Depends:/ {print $2}' | xargs  apt-get download
执行完毕,这些包在哪里?打开:/var/cache/apt/archives 目录,先提前把这个目录的deb清理一下,可以备份到其他目录,不然分不清楚。


我们把这些包搞下来,在服务器上安装这些包就可以了,但是安装是有先后顺序的,怎么知道?我们可以在有网络的服务器上,把本文开头的第一条命令实际执行一下:这是执行完后留下来的痕迹


看见没,这就是执行顺序,我们按照这个顺序执行就行了,sudo dpkg -i,但这里有个问题,上面红色的框框没有。我们用同样的办法,把上面红色框框的软件,拉下来

apt-get download libsodium23

这时候就按照上图顺序依次执行,执行第一个

sudo dpkg -i libsodium23_1.0.16-2_amd64.deb
成功后再干第一个,这种方法搞不定依赖中的依赖,所以如果有遇到依赖,我们用同样的方法,把某个依赖在另外一台服务器上干下来,然后再传过来即可。这样做的目的我们不用考虑版本型号是否正确,不要到处去找这些玩意儿。


最新评论:
1楼 中国 移动 发表于 2021-05-11 14:12:04
牛逼666
2楼 广东省深圳市 电信 发表于 2021-05-11 14:16:46
牛牛牛,好方法,感谢分享
3楼 广东省深圳市 电信 发表于 2021-10-09 10:48:12
可以可以
共有 3 条记录  首页 上一页 下一页 尾页 1
我要评论:

看不清楚