Linux|软件安装包deb打包

参考:
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
Linux|软件安装包deb打包_第1张图片

创建工作目录

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同层级文件在根目录文件下
Linux|软件安装包deb打包_第2张图片

Linux|软件安装包deb打包_第3张图片

编写控制文件

在package目录下必须创建一个DEBIAN文件夹里面使用vim创建一个control文件,里面包含软件安装包信息,卸载软件包名称为里面的Package,注意冒号和空格必须要添加。
Linux|软件安装包deb打包_第4张图片

Package: xxxPlus
Version: 1.0.1
Section: utils
Priority: optional
Architecture: amd64
Depends:
Maintainer: [email protected]
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

你可能感兴趣的:(Linux,linux)