建立自己的apt-get源

建立自己的apt-get源


参考:http://linuxconfig.org/easy-way-to-create-a-debian-package-and-local-package-repository

如果需要比较详细的deb包制作手册可以参照以下链接:
官方的debian制作手册:http://www.debian.org/doc/manuals/maint-guide/index.zh-cn.html

 

1,创建自己的简单程序(用来实验的程序)

1 vi linuxconfig.cc

编辑添加以下内容:

1 #include <iostream>
2  
3 int main()
4 {
5   using namespace std;
6   cout << "linuxconfig.org\n";
7  
8 return 0;
9 }

为了能够编译,需要相应的编译工具,可以使用命令:

1 sudo apt-get install build-essential

从build-essential包信息:
build-essential
依赖: libc6-dev
依赖:
libc6-dev
依赖: gcc
依赖: g++
依赖: make
依赖: dpkg-dev
可以得知,安装来build-essential即等于安装了以上显示的依赖包。

编译并执行测试输出:

1 g++ linuxconfig.cc -o linuxconfig
2  
3 ./linuxconfig
4 linuxconfig.org

一个简单的在屏幕输出linuxconfig.org的程序。

2,创建自己的deb包

deb包的内容分为两大部分:

一,控制信息:位于在DEBIAN目录下的control文件中(另可能由md5sums文件,用来校验文件完整性,可有可无)。

二,安装内容:其目录结构会映射到’/'目录下,即deb包内安装内容在usr/xx/yy下,则安装后将会安装在/usr/xx/yy下。

现在来创建我们的deb包:

1 mkdir linuxconfig
2 cd linuxconfig
3 mkdir DEBIAN
4 vi DEBIAN/control

在control中添加内容:

Package: linuxconfig
Version: 1.0
Section: custom(代表软件类别)
Priority: optional
Architecture: all
Essential: no
Installed-Size: 1024
Maintainer: linuxconfig.org
Description: Print linuxconfig.org on the screen
1 mkdir -p usr/bin/
2 cp path/to/linuxconfig usr/bin

这样安装内容和控制信息就都布置好了。

创建包:

1 cd ..
2 dpkg --build linuxconfig/ linuxconfig-1.0_i386.deb

执行成功后就能看到linuxconfig-1.0_i386.deb的包。

3,发布你的deb包

首先需要安装apache2:

1 sudo apt-get install apache2

默认的网站内容是在/var/www目录下的,我们建立一个mydeb文件夹用来存放自己的deb包:

1 cd /var/www
2 mkdir mydeb
3 cp /path/to/linuxconfig-1.0_i386.deb /var/www/mydeb/

使用dpkg-scanpackages 来生成Packages.gz(存放所有包的信息,以便用户获取):

Packages

实质上是

deb

文件的

control

信息集合,另外多了

deb

文件本身的信息。(

control

文件是记录

软件包本身的信息,但没有

deb

文件本身)

 


Packages

实质上是

deb

文件的

control

信息集合,另外多了

deb

文件本身的信息。(

control

文件是记录

软件包本身的信息,但没有

deb

文件本身)


1 cd /var/www/mydeb/
2 dpkg-scanpackages . /dev/null gzip -9c > Packages.gz

dpkg-scanpackages 第一个参数用来指定要扫描的目录(当前所在目录的相对路径),通过’|'管道使用gzip(-9c 对应最高质量的压缩)输出到Packages.gz包中。

也可以将该命令写到文件中,方便以后执行:

1 sudo vi /bin/scan-mydeb

添加内容:

1 #!/bin/bash
2 cd /var/www/mydeb/
3 dpkg-scanpackages . /dev/null gzip -9c > Packages.gz

修改执行权限:

1 sudo chmod u+x  /bin/scan-mydeb

之后直接执行:

1 sudo scan-mydeb

就可以实现Packages.gz的更新。

在浏览器中输入localhost/mydeb/可以看到:

4,获取deb包:

在其他机子上添加源:

1 sudo vi /etc/apt/sources.list

添加一行:

deb http://服务器地址/mydeb

执行:

1 sudo apt-get update
2 sudo apt-get install linuxconfig

成功安装!

1 linuxconfig

可以看到输出:linuxconfig.org

通过apt-get remove可以卸载:

1 sudo apt-get remove linuxconfig

ok.



Packages实质上是deb文件的control信息集合,另外多了deb文件本身的信息。(control文件是记录软件包本身的信息,但没有deb文件本身)


Packages

实质上是

deb

文件的

control

信息集合,另外多了

deb

文件本身的信息。(

control

文件是记录

软件包本身的信息,但没有

deb

文件本身)

 


Packages文件本身的信息。(deb

control

文件是记录

软件包本身的信息,但没有

deb

文件本身)




 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值