如何在本地使用APT (用deb包制作本地源)

技术分享 Story 83浏览 0评论
摘要

如何在本地使用APT (用deb包制作本地源)

执行过sudo apt-get update && sudo apt-get disk-upgrade && sudo apt-get install XXX操作后,更新包和系统光盘里面没有的软件包都会保存在
代码:
/var/cache/apt/archives/
本文将以这些包为基础来制作本地安装源。所进行的操作建议新手在自己的家目录里进行,以避免权限的麻烦。以下为制作步骤:
1.安装必要的软件包dpkg-dev
代码:
sudo apt-get install dpkg-dev

2.备份已经下载到本机的软件包和更新
代码:
mkdir ~/feisty #在/home目录建立feisty文件夹,该目录名可选
sudo cp -a /var/cache/apt/archives/* ~/feisty

3.建立包列表及依赖信息文件
代码:
cd ~/
sudo dpkg-scanpackages feisty /dev/null |gzip >feisty/Packages.gz

该命令执行完成后,将在~/feisty目录下生成一个Packages.gz文件,里面记录了本地包的列表及包依赖信息,sudo apt-get update命令就是为了获取该文件中的信息
4.保存建立好的本地包及Packages.gz
代码:
sudo mv ~/feisty /media/sda7/linux/soft/packs/
#后面这个保存路径随个人喜好而定

5.至此,本地源就基本建好了,下面是添加源
代码:
sudo vim /etc/apt/sources.list

加入下面的源地址,注意与常见的网络源格式不同
代码:
deb file:///media/sda7/linux/soft/packs feisty/

保存退出vim,然后在终端里执行:
代码:
sudo apt-get update && sudo apt-get dist-upgrade

接下来就是正常的apt-get install了,安装本地源上的包时,该包不会再复制到
代码:
/var/cache/apt/archives/

里面,而是直接安装,所以不用担心会多浪费硬盘空间。

2.2 如何在本地使用APT
=====================
有时你硬盘上有许多软件包,你会希望通过APT来安装它们,以便让它去处理软件包间复杂的依赖关系。

想这么做,就建一个目录,将所有你想要安装的.deb文件放入其中。例如:

mkdir /root/debs

你可以使用一个重载文件(override file)直接去修改软件包中管理文件中的定义(definitions),使之符合你的软件储藏库管理规则,在这个重载文件中,你可能希望定义一些选项来重载那些软件包的定义,如下所示:

package priority section

package 是软件包的名称,priority有三个级别low,medium或high,section是软件包所属的section,重载文件可任意命名,文件名将在接下来的步骤中做为参数传递给dpkg-scanpackages。如果你不想写重载文件,只需在调用dpkg-scanpackages时使用 /dev/null就行了。

仍是在/root目录下执行:

dpkg-scanpackages debs file | gzip > debs/Packages.gz

在上述的命令行中,file为重载文件,命令生成一个Packages.gz文件,它包含了APT所需的各种软件包信息,要使用这些软件包,在sources.list中加上:

deb file:/root debs/

完成了上面的工作,就可以通常那样使用APT命令操作这些软件包了。你可以使用同样的方法生成一个源码库,但请记住你需要将.orig.tar.gz文件、.dsc文件和.diff.gz文件包含在目录中,要生成Source.gz文件而不是Packages.gz文件。所使用的命令也不相同,要使用 dpkg-scansources,命令如下所示:

dpkg-scansources debs | gzip > debs/Sources.gz

注意dpkg-scansource不需要重载文件,在sources.list中的引用法是:

deb-src file:/root debs/

转载请注明:成长的对话 » 如何在本地使用APT (用deb包制作本地源)