Debian 安装deb安装包注意事项
1.不要dpkg安装
2.尽量apt安装,据说aptitude对安装依赖更好,我试了,不会用
3.如果缺少依赖也能正常运行,要明白此软件随时可能爆炸(虽然我没爆过)
讲解deb软件包的文章
https://juejin.cn/post/7029284097939734535
内容
Linux制作deb格式安装包教程
我们通常在使用Debian系的Linux系统时,常常会遇到一些deb格式安装包。我们也知道,使用dpkg命令即可安装。
当然,也会下载到一些软件是压缩包,就没那么方便了。我们能不能把它自己打包成deb安装包呢?当然是可以的。
其实,制作一个deb安装包是个很简单的事情。
1,认识deb安装包结构
在制作安装包之前,我们认识一下deb包的内容:
image.png
这是我要打包的内容,可见除了DEBIAN文件夹,其余都是应用程序文件,这里其余部分的目录模拟了安装目录(看起来和安装完成后根目录里面对应内容结构一致),这是因为deb安装包安装就是把内容释放到了根目录/下。
DEBIAN文件夹中必须有control文件,表示安装包基本信息。
除此之外,其中还可以有:
preinst 软件安装之前会执行的脚本
postinst 软件安装完成后执行的脚本
prerm 软件卸载前会执行的脚本
postrm 软件卸载后会执行的脚本
这四个脚本非必须,如果有,这四个脚本文件必须要有可执行权限。
2,开始制作安装包
今天下载了typora,但是是压缩文件格式的,我们就以制作typora的安装包为例开始。
(1) 创建一个目录存放所有文件
我创建了一个名为pack的文件夹,位于/home/maiqu/Downloads/pack,放置安装包内容和配置。下文也以此为例。
(2) 创建DEBIAN文件夹并编写control文件
我们在pack文件夹中创建DEBIAN文件夹,并在里面新建control文件,并编辑control文件。
我这里control内容如下:
Package: typora
Version: 13.6.1
Section: utils
Priority: optional
Architecture: amd64
Installed-Size: 218600
Maintainer: swsk33example@163.com
Provides: typora
Description: 自己打包的Typora安装包。
复制代码
上述字段意义如下:
Package 包名
Version 版本号
Section 软件的类别,可以是utils、net、mail、text、devel等等
Priority 软件对于系统的重要程度,如required、standard、 optional、extra等等
Architecture 架构,32位软件填写i386,64位软件填写amd64,如果是既能在32位系统运行又能在64为系统运行可以填写all
Installed-Size 安装后大小,单位为kb
Maintainer 维护者,为维护者名<邮箱>的形式
Provides 供应者
Description 描述
上面的字段是必须字段或者常用字段,除此之外,control文件还可以有以下字段,以下字段非必须,按需加入:
Essential 申明是否是系统最基本的软件包,值为yes或者no,如果是的话,这就表明该软件是维持系统稳定和正常运行的软件包,不允许任何形式的卸载
Depends 软件所依赖的其他软件包和库。如果是依赖多个软件包,彼此之间采用英文逗号隔开(例如该值为libc6, default-jre,说明该软件包依赖于libc6和default-jre这两个软件包,缺一不可)
Pre-Depends 软件安装前必须安装、配置依赖性的软件包和库
Recommends 这个字段表明推荐的安装的其他软件包
Suggests 建议安装的其他软件包
注意,control文件最末尾必须保留一个空行,否则打包会报错。
(3) 将待打包内容放进来
上面我们知道了,其余内容即为被打包的软件内容,会被直接释放到根目录。那么我们这里也需要保持目录结构。
例如我想让typora安装到/opt文件夹中,那么我们这里就在pack文件夹中创建opt文件夹,将typora文件夹放进这个opt文件夹:
image.png
我们知道了除了DEBIAN文件夹,其它内容都会被直接放到根目录,那么这时我们就要在这里模拟出安装目录,把应用程序文件进行一个组织,以让它安装到我们想要的位置。
(4) 快捷方式
之前写了个博客讲解Linux创建快捷方式的方法,这里就不再赘述Linux快捷方式文件怎么写了,直接参考这个博客即可:链接
当然,我们知道快捷方式文件都位于/usr/share/applications目录下,因此这里我们需要在我们的pack文件夹中建立起/usr/share/applications,在里面新建一个desktop文件表示快捷方式。
不过需要注意的是,快捷方式的可执行文件、图标、运行目录指向必须对应为这个安装包安装完成后我们的应用程序所在位置,如下图:
image.png
3,打包
刚刚完成了安装包配置文件编写,现在就可以打包了。使用dpkg命令打包:
dpkg -b "待打包目录" "生成deb安装包目录"
复制代码
我的待打包内容都在/home/maiqu/Downloads/pack文件夹下,那么我执行命令:
cd /home/maiqu/Downloads
dpkg -b "pack" "Typora-linux.deb"
复制代码
等待安装包构建完成,然后我们就可以使用dpkg -i命令安装它了!
image.png
如果要卸载,还是使用apt remove命令即可,包名就是上面control文件中Package字段的值。