制作本地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库,此时便可以安装成功
更多推荐