deb包打包流程
一.deb的文件结构要打包的文件中主要包含DEBIAN和软件具体的安装目录,其中,DEBIAN目录下有control(必须存在),postinst(在安装deb包后触发的脚本文件),postrm(在卸载软件时触发的脚本),preinst(在安装deb包前触发的脚本),prerm(在卸载软件前触发的脚本),copyright(版权),changlog(修订记录)和conffiles,其中除了cont
一.deb的文件结构
要打包的文件中主要包含DEBIAN和软件具体的安装目录,其中,DEBIAN目录下有control(必须存在),postinst(在安装deb包后触发的脚本文件),postrm(在卸载软件时触发的脚本),preinst(在安装deb包前触发的脚本),prerm(在卸载软件前触发的脚本),copyright(版权),changlog(修订记录)和conffiles,其中除了control是必须的,其余文件可以不创建。
二.control文件内容
Package:软件包的名称(mysoftware)
Version:版本号(2021-08-06)
Section:申明软件的类别(常见的有'utils','net','mail','text','x11'等)
Priority:软件对于系统的重要程度(如'required','standard','optional','extra')
Essential:申明是否是系统最基本的软件包(yse或者no)
Architecture:软件包结构(如'i386','amd64','m68k','sparc','alpha','powerpc')
Source:软件包的源代码名称
Depends:软件所依赖的其他软件包和库文件。如果是依赖多个软件包和库文件,彼此之间采用逗号隔开
Pre-Depends:软件安装前必须安装、配置依赖性的软件包和库文件,它常常用于必须的预运行脚本需求
Recommends:表明推荐的安装的其他软件包和库文件
Suggests:建议安装的其他软件包和库文件
Priority:声明这个包的优先级(大部分的时候使用optional(可选的))
Eseential:指该软件包是否是必须的(大部分的时候不是)
Maintainer:制作此打包文件的作者(zh[邮箱])
Conflicts:表示跟这个程序冲突的软件
Replaces:表明哪些软件包将被这个程序取代
Description:针对此软件的描述
(在control末尾一定要空一行)
其中,Pre-Depends和Depends所说明的包,若在安装deb包时不存在,会安装失败并提示包依赖问题,此时可以通过sudo apt-get -f install解决包依赖问题,然后再次安装deb包,或者是在安装deb包时选择apt命令安装,即sudo apt-get install ./xxx.deb ,此命令可以先自动安装deb包所依赖的包,然后安装deb包。
control文件所必需的参数有:Package,Version,Architecture,Maintainer,Depends,Description
三.dpkg相关命令
dpkg -b xxx1 xxx2.deb 第一个参数为将要打包的目录名,第二个参数为生成包的名称
dpkg -i xxx.deb 安装deb包
dpkg -r xxxx(包名) 卸载deb包
dpkg -s xxxx(包名) 查看deb包是否安装
dpkg -c xxx.deb 查看deb包文件内容
dpkg --info xxx.deb 查看当前目录某个deb包的信息
dpkg -X xxxx.deb xxx(目录名) 解压deb包中所要安装的文件(解压到后面的目录下)
dpkg -e xxx.deb xxx/DEBIAN 解压deb包中DEBIAN目录下的文件(至少包含control文件)
sudo apt-get install ./xxx.deb 先安装依赖包,再安装deb包(注意,在包名前必须要指定相对路径或者绝对路径)
更多推荐
所有评论(0)