dpkg是deb系(debian,ubuntu以及其他使用.deb包的发行版)主要的软件包管理程序,apt包管理器是基于dpkg实现。
1.Linux编写完成程序后保存为c/c++文件,使用gcc/g++工具生成二进制可运行文件;
2.在目录下创建deb文件夹,在deb文件夹中创建DEBIAN文件夹以及usr文件夹
VirtualBox:~/hi-debian$ tree
.
├── DEBIAN
│ └── control
└── usr
└── bin
└── hi_debian
3 directories, 2 files
#mkdir hi-debian
#cd hi-debian
#mkdir DEBIAN
#mkdir usr
#cd DEBIAN
#touch control
#vi control
Source: hi-debian //可以无#源码包名
Package:hi-debian //软件名称 使用dpkg -l命令显示的名字(名字不能用下划线“_”)
Version:1.0 //软件版本
Architecture:amd64 //架构
Section:utils //软件类别
Priority: extra //#重要程度
Depends: ${shlibs:Depends}, ${misc:Depends} #安装依赖
Maintainer:puweixi puweixii@126.com //软件制作人信息(电话/邮箱)
Description:This is hi-debian deb demo//备注信息,使用dpkg -l命令显示的详情信息
#cd ../usr/
#mkdir bin
#touch hi_debian
#vi hi_debian
#!/bin/bash
echo "this is hi-debian test deb"
3.创建完成 在顶目录下使用命令 dpkg -b ./hi-debian hi-debian.deb 命令生成hi-debian.deb包。
4.安装包
#sudo dpkg -i hi-debian.deb
Selecting previously unselected package hi-debian.
(Reading database ... 245439 files and directories currently installed.)
Preparing to unpack hi-debian.deb ...
Unpacking hi-debian (1.0) ...
Setting up hi-debian (1.0) ...
5.查看
#sudo dpkg -l |grep hi-debian
ii hi-debian 1.0 amd64 This is hi_debian deb demo
6.执行 hi-debian程序
#hi_debian
this is hi_debian test deb
7.删除包
#sudo dpkg -r hi-debian.deb
8.其它dpkg命令
sudo dpkg -i <package.deb> #安装包
sudo dpkg -r <package.deb> #删除包
sudo dpkg -p <package.deb> #彻底删除包(包括配置文件)
dpkg -l #列出当前已安装的包
dpkg -L package #列出与该包关联的文件
9.其它知识
deb包除DEBIAN目录外,其他文件夹都会解压到系统根目录。
下面对DEBIAN目录下几个重要的文件进行说明
1.软件包安装后,DEBIAN下的文件会按照一定规则存放到 /var/ 目录下
2.DEBIAN/control文件是根据源码debian/control文件修改而来,只包含deb包的信息
3.生成的md5sums记录了除DEBIAN目录外其他文件的摘要值
4.当deb包包含 etc/ 目录(etc目录用于存放系统配置文件)时,DEBIAN目录还会生成conffile文件,里面记录的就是etc下的配置文件位置,当更新软件包时,包管理器从conffile读取配置文件列表,重新计算每个文件的md5值,然后和存放在 /var 目录下的 md5sum 文件记录的md5进行对比,用于判断配置文件是否被修改,如果没有修改则将新包的配置文件覆盖老的配置文件,如果配置文件被修改则会弹出交互页面询问是保留原配置还是使用新包的配置文件
参考文件
https://www.cnblogs.com/ditvelo/p/16662910.html