多读书多实践,勤思考善领悟

Linux 制作 deb 安装包

deb 是 Unix 系统(其实主要是 Linux )下的安装包,基于 tar 包,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组。由于 Unix 类系统对权限、所有者、组的严格要求,而 deb 格式安装包又经常会涉及到系统比较底层的操作,所以权限等的设置尤其重要。

1 整理文件

1.1 创建如下基本目录结构

1
2
3
4
5
6
7
8
9
10
deb
malib
DEBIAN // 存放control文件,用于记录安装包相关信息的配置文件
usr
local
ma
malib // 存放程序文件
share
applications // 存放 *.desktop 文件
icons // 存放软件的图标 *.png 或 放在程序目录(可不创建此目录)

1.2 拷贝文件

把程序文件拷贝到上面目录结构的ma/malib下,并在该目录下执行下面命令。

1
2
sudo chmod +x malib
#本例,可执行程序文件名为malib

2 编写配置文件

2.1 在DEBIAN路径下创建control文件

1
2
cd /home/ma/deb/malib/DEBIAN
touch control

双击control文件,添加如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
package: malib
version: 1.0.0
architecture: mips64el
maintainer: myh
description: malib

------- 以下为注释部分,执行时,请将从这一行开始的所有内容删除 --------
package 表示安装包的名字
version 表示次安装包的版本
architecture 当前系统的架构的信息
maintainer 此安装包的维护者
description 此安装包的描述

2.2 在applications目录下创建.desktop文件

1
2
cd /home/ma/deb/malib/usr/share/applications
touch malib.desktop

双击该文件并添加如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0.0
Name=malib
GenericName=malib
Comment=malib
Exec=/usr/local/ma/malib/malib
Icon=/usr/local/ma/malib/logo.ico
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Office;

------- 以下为注释部分,执行时,请将从这一行开始的所有内容删除 --------
Exec 目标文件(完整路径)
Icon 图标文件(完整路径)末尾不能有空格,否则将会导致无法加载图标
Categories可以取以下值,表示程序的启动快捷方式放在哪个菜单下:
应用菜单Application;
Network放在互联网(Internet);
办公 Office;
图形 Graphics;
声音和视频 AudioVideo;
系统工具 System;
编程 Development;
附件 Utility;
影音 AudioVideo;
游戏 Game;
首选项 Settings(GNOME;GTK;Settings;HardwareSettings;);
系统管理 System;Settings;
1
sudo chmod +x malib.desktop

3 打包制作安装包

在/home/ma/deb文件夹下输入如下指令。
deb包正确的命名规则program-name_version_architeture.deb。所有的值必须与它们在control文件里对应的语句相同。

1
2
cd /home/ma/deb
dpkg -b malib/ malib_1.0.0_mips64el.deb

一段时间便可得到deb文件。

4 安装程序

在linux系统下,将deb文件拷贝到某目录下,命令定位到该目录下,并输入命令进行安装。

1
sudo dpkg -i malib_1.0.0_mips64el.deb

5 运行程序

找到malib.desktop文件,路径在/usr/share/applications/malib.desktop,
或者在桌面左上角点击图标,在应用里找到运行文件。

6 卸载程序

1
sudo dpkg -r malib