本地下载的软件包制作成本地repo源并使用apache发布

背景
在前面的博客中,介绍了如何使用apt-mirror同步远程的repo源。
本文将介绍如何利用本地已经缓存的软件包制作成本地repo源,并对外提供源服务。

应用目标
在应用中,有时候会遇到类似问题:远程的软件源太慢,而如果同步远程的软件源到本地,又会消耗大量的数据存储(一个完整的软件源可能超过1T),而大部分的软件源实际上不需要用到。
如果:
只需要一个最小的软件源,这个软件包含了所需要安装的所有软件包的依赖库,那是一件多么令人欣喜的事!
这时候,就需要本地缓存的软件包。

原理
软件在安装的时候,会扫描Header并自动下载依赖的所有软件包以及运行库,并缓存到/var/cache/apt/archives中。通过dpkg-dev这工具可以将这些包打包成本地repo源。

步骤

$ sudo apt-get install dpkg-dev

等配置好后,在/下建立一个目录software作为软件包的存放地点,或者放在硬盘中任意位置。
将/var/cache/apt/archives中的所有软件包拷贝到这个文件夹里。
执行以下命令,进行软件源的制作

$ sudo dpkg-scanpackages /software /dev/null | gzip>/software/Packages.gz

等待系统扫描完所有的软件包后,会返回命令行,并且在software文件夹中生成一个名为Packages.gz的压缩文件,存有这个文件夹中的软件包信息及其依赖关系。
如此,本地repo源制作成功。

使用方法
1、仅本地使用
这种用途基本没太大的用途,可用于验证Repo源是否正常。

$ sudo gedit /etc/apt/sources.list

删除所有内容,添加

deb file:/// software/
Packages.gz文件中包含deb包的绝对路径信息
根路径 根路径到Packages的路径
保存。

打开终端,输入

$ sudo apt-get update

以更新本地的软件包列表

然后可以用apt-get命令安装本地源中含有的软件包或者执行

$ sudo apt-get dist-upgrade

命令更新系统。

2、对外提供repo源服务
原理:使用Apache对外提供服务

$ ln -s /software  /var/www/html/software
$ sudo gedit /etc/apt/sources.list

删除所有内容,添加

deb http://192.168.206.170/ software/

然后就可以进行 update 跟 upgrade ,测试这个repo源是否成功了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值