制作本地apt源离线安装
1、背景及概述
1.1、背景

最近在做的一个项目,但linux工作环境无法联网,却又需要下载安装相关软件,需要把多个开源包打在一起形成一个安装包供其他人使用,这就面临一个问题,开源包依赖很多的linux依赖库,同时不能保证外部使用环境一定联网,稳妥的办法就是把所有依赖包都打到安装包中,此时便需要制作ubuntu的apt本地源。

1.2、概述

   基本思路是在有网的计算机下载某软件(以cgroup为例)依赖,把依赖deb复制到离线计算机,配置本地源,然后进行安装。

2、制作本地apt源
2.1、在联网计算机上下载某软件依赖包

sudo apt-get -d install cgroup-bin(该指令只下载该软件包及其依赖,不会安装)

sudo apt-get install cgroup-bin (该指令除了下载该软件包及其依赖,还会安装)

下载的cgroup依赖包存放在/var/cache/apt/archives目录。该文件内还有其他软件的依赖包,因为我们并不知道cgroup的依赖包有哪些,所以在后续的依赖包打包时姑且将这个文件下的所有包都给打包。

2.2、生成依赖包本地索引

以/home/debs为根目录,创建archives目录,将上一步下载的软件包和依赖包复制到/home/debs/archives目录下。在/home/debs目录,生成本地索引:

mkdir -p /home/debs/archives

cp /var/cache/apt/archives/*.deb /home/debs/archives/

cd /home/debs

dpkg-scanpackages archives /dev/null | gzip > archives/Packages.gz

cd …/

chmod 777 -R debs

其中,dpkg-scanpackages命令的作用为创建一个描述文件,描述当前文件夹中有哪些依赖包以及依赖包之间的依赖关系。现在debs文件夹中的内容为依赖包+描述文件Packages.gz。此时debs就是一个可用的本地源

3、离线安装
3.1、离线包复制

复制debs文件到目标离线计算机,如/data/debs,debs目录下是archives目录。

3.2、配置本地源

   配置本地源之前先备份配置文件。

mv /etc/apt/sources.list /etc/apt/sources.list.bak

然后在离线计算机上,在/etc/apt/sources.list文件增加离线源路径。

deb [trusted=yes] file:///data/debs /archives/

其中,本地源不含签名,增加[trusted=yes]是信任本地源。

3.3、更新源并安装

sudo apt-get update,此时apt源即指向我们的本地源

sudo apt-get install cgroup-bin,安装cgroup库,此时便可以安装成功

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐