背景: 自己编写了一套工具,类似于i2ctool,有很多个独立的小工具,一般情况下,直接复制到OS(并安装相关组件/驱动/tool)就可以用了,但是想直接制作成deb/rpm包,这样在ubuntu下直接dpkg -i <package.deb>;CentOS下直接rpm -ivh <package.rpm>便可安装使用(或者-Uvh),安装的时候可以添加一些脚本。
deb包的制作
采用先将工具编译好的方式
(1) 创建工作目录
taddeo@SW-SERVER:~/201909/dpkg-debbb/workspace$ tree debworkkk/
debworkkk/
├── DEBIAN
│ ├── control
│ ├── postinst
│ ├── postrm
│ ├── preinst
│ └── prerm
└── home
└── my_tools
├── bin
│ ├── my-tool-01
│ ├── my-tool-02
│ └── my-tool-03
├── configs
│ ├── my-cfg01.yaml
│ └── my-cfg02.yaml
├── README.txt
└── tools
├── connectionmgrhostx86_64
├── dmidecode
├── eeupdate64e
├── memtool
├── slqssdk
└── smartctl
6 directories, 17 files
taddeo@SW-SERVER:~/201909/dpkg-debbb/workspace$
先创建debwork/DEBIAN目录,然后在DEBIAN目录下添加
control postinst postrm preinst prerm这五个文件,直接用vim创建即可,其中
1)control: 记录deb的版本号,作者信息,运行环境,依赖信息等
2)preinst:在deb包解包前运行的脚本
3)postinst: 在解包后运行的脚本,比如这次用到了yaml库,可以在这里添加把动态库文件(XX.so)复制到/lib文件夹下的命令
4)prerm :在卸载deb包,即删除相应文件前运行的脚本
5)postrm 删除相应文件后运行的脚本
taddeo@SW-SERVER:~/201909/dpkg-debbb/workspace/debworkkk$ cat DEBIAN/*
Package: my-tools
Version: 0.0.7-1
Section: admin
Depends:
Priority: optional
Architecture: all
Maintainer: me <me@template.com>
Installed-Size: 10240
Description: Suite of tools and libraries for Celestica diagnostics.
#!/bin/sh
#echo "+++==========++++"
#echo "+ postinst test +"
#echo "+++==========++++"
cp /home/my-tool/tools/libmy_yaml.so /lib
#cd /home/my-tool/bin/
#!/bin/sh
#echo "+++========++++"
#echo "+ postrm test +"
#echo "+++========++++"
#!/bin/sh
#echo "+++=========++++"
#echo "+ preinst test +"
#echo "+++=========++++"
#!/bin/sh
#echo "+++=======++++"
#echo "+ prerm test +"
#echo "+++=======++++"
taddeo@SW-SERVER:~/201909/dpkg-debbb/workspace/debworkkk$
(2)放入自己的文件
安装时,之前建立的debwork目录就相当于系统的根目录(/),我想把自