参考:
Ubuntu下的deb打包、安装与卸载
ubuntu打包软件
【Ubuntu】打包C++程序及导出依赖库lib
文章目录
- 导出可执行程序依赖库
- 安装打包工具
- 创建工作目录
- 设定安装的路径
- 编写控制文件
- 使用 dpkg 命令构建 deb包
- 安装 deb包
- 卸载deb包
导出可执行程序依赖库
在.out文件所在目录下创建export.py,内容如下:
import shutil
import os
outpath = "../export_lib" # -- 设置依赖库lib输出路径
os.makedirs(outpath) if not os.path.exists(outpath) else None
command = "ldd ./xxx" # -- xxx更换为要打包的可执行文件名
out_string = os.popen(command)
data = out_string.readlines()
data = [[data_.split()[0], data_.split()[2]] for data_ in data if len(data_.split()) == 4]
print(data)
for data_ in data:
shutil.copy(data_[1], os.path.join(outpath, data_[0]))
安装打包工具
sudo apt-get install dpkg-dev
创建工作目录
mkdir mypackage
cd mypackage
设定安装的路径
root@ubuntu:/home/hebbe/work# mkdir -p usr/src
root@ubuntu:/home/hebbe/work# mkdir -p usr/lib
root@ubuntu:/home/hebbe/work# mkdir DEBIAN
usr/lib文件安装后会在根目录下的lib文件里,其余和DEBIAN同层级文件在根目录文件下
编写控制文件
在package目录下必须创建一个DEBIAN文件夹里面使用vim创建一个control文件,里面包含软件安装包信息,卸载软件包名称为里面的Package,注意冒号和空格必须要添加。
Package: xxxPlus
Version: 1.0.1
Section: utils
Priority: optional
Architecture: amd64
Depends:
Maintainer: xxx@163.com
Description: xxxPlus package
使用 dpkg 命令构建 deb包
root@ubuntu:/home/hebbe/work# sudo chmod 755 * -R
root@ubuntu:/home/hebbe/work# dpkg -b . /home/hebbe/xxxPlus_1.0.1_amd64.deb
注意权限是755 ,否则会报错,例如
dpkg-deb: error: control directory has bad permissions 777 (must be >=0755 and <=0775)
至此,便已打包完成。
安装 deb包
dpkg -i xxxPlus_1.0.1_i386.deb
卸载deb包
注意是和control文件里的package里面一致的名称,否则会提示找不到安装包
sudo apt-get remove xxxPlus
or
dpkg -r xxxPlus