建立自己的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,创建自己的简单程序(用来实验的程序)
编辑添加以下内容:
6 |
cout << "linuxconfig.org\n"; |
为了能够编译,需要相应的编译工具,可以使用命令:
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 |
一个简单的在屏幕输出linuxconfig.org的程序。
2,创建自己的deb包
deb包的内容分为两大部分:
一,控制信息:位于在DEBIAN目录下的control文件中(另可能由md5sums文件,用来校验文件完整性,可有可无)。
二,安装内容:其目录结构会映射到’/'目录下,即deb包内安装内容在usr/xx/yy下,则安装后将会安装在/usr/xx/yy下。
现在来创建我们的deb包:
在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
2 |
cp path/to/linuxconfig usr/bin |
这样安装内容和控制信息就都布置好了。
创建包:
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包:
3 |
cp /path/to/linuxconfig-1.0_i386.deb /var/www/mydeb/ |
使用dpkg-scanpackages 来生成Packages.gz(存放所有包的信息,以便用户获取):
2 |
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz |
dpkg-scanpackages 第一个参数用来指定要扫描的目录(当前所在目录的相对路径),通过’|'管道使用gzip(-9c 对应最高质量的压缩)输出到Packages.gz包中。
也可以将该命令写到文件中,方便以后执行:
1 |
sudo vi /bin/scan-mydeb |
添加内容:
3 |
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz |
修改执行权限:
1 |
sudo chmod u+x /bin/scan-mydeb |
之后直接执行:
就可以实现Packages.gz的更新。
在浏览器中输入localhost/mydeb/可以看到:
![]()
4,获取deb包:
在其他机子上添加源:
1 |
sudo vi /etc/apt/sources.list |
添加一行:
deb http://服务器地址/mydeb
执行:
2 |
sudo apt-get install linuxconfig |
成功安装!
可以看到输出:linuxconfig.org
通过apt-get remove可以卸载:
1 |
sudo apt-get remove linuxconfig |
ok.