今天处理了一个需求,要在离线的ubuntu服务器上安装ntpd,这个东西要多少依赖不说,名我都没听过,所以这个东西无论如何都得用apt或者apt-get,这找依赖不知道要找到猴年马月。离线的服务器现在想用apt install是不可能了,我需要新建一个离线的镜像源,这东西只在之前听过,从来没自己做过,今天就尝试了一把。
1.先把离线包搞定
在一个有网的服务器上下载ntpd,这样他就会把这个软件和所有的依赖下载到/var/cache/apt/archives中(deb文件),我们就可以直接用了,或者在网上找一个相对完整的包里面啥都有的包,然后我们把所有的包权限都改为777,之后找个没用的文件夹把所有deb都扔里,比如/opt/debs,之后在/opt/debs下创建一个Packages.gz,这样的包,然后执行 dpkg-scanpackages /opt/debs /dev/null |gzip >/opt/debs/Packages.gz ,这步是为了创建索引,如果报错dpkg-scanpackages: command not found 需要安装apt-get install dpkg-dev,之后可以把这整个文件夹打成一个packages.tar.gz,这个包可以直接用了,把packages.tar.gz传到离线的服务器上去,例如传到/opt/debs中。
2.修改镜像源地址
/etc/apt/sources.list 这里面是镜像源地址,把这个改到本地
deb file:/// /opt/debs 这个写法是固定的,先不考虑这么多了
3.使用
经过上述操作,已经把镜像源和地址都修改了,然后我们使用apt-get update就可以刷新镜像源了,这时候就会指到我们的本地,然后就可以下载需要的软件了。
有人说 这么麻烦,我直接下deb包 用dkpg装不就行了,你去死叭。也可以,不过你需要装好依赖包,而apt是自动处理依赖的,只要装好了镜像就不用管别的有的没的