ubuntu deb安装包制作方法介绍
来源:互联网 发布:风刑软件站 编辑:程序博客网 时间:2024/05/17 01:17
方案一,基于dpkg-buildpackage
1.准备工作
1)重命名目标源码目录,目录名规则为文件名加大版本号,如下:
2)测试编译代码,清楚残余无用文件
安装libcurl开发包:
apt-get install libcurl4-gnutls-dev
清楚残余文件(bin/obj)
make clean
3)源码打包
2.制作deb包
1)利用dh_make生成debian模板文件
根据deb包类型选择对应的Type,-e 后跟包构建者E-mail.
2)修改控制文件
2.1)增加安装执行文件,如:libniscsdk.install
2.2)小版本更新,修改changelog文件
3)生成deb包:dpkg-buildpackage
root@liul-VirtualBox:~/tt/libniscsdk-1.0# dpkg-buildpackagedpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-securitydpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): -D_FORTIFY_SOURCE=2dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-securitydpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions -Wl,-z,relrodpkg-buildpackage: 源码包 libniscsdkdpkg-buildpackage: 源码版本 1.0-1dpkg-buildpackage: 源码修改者 root <liul.stone@gmail.com>dpkg-buildpackage: 主机架构 amd64dpkg-source --before-build libniscsdk-1.0debian/rules cleandh clean dh_testdir dh_auto_cleanmake[1]: 正在进入目录 `/root/tt/libniscsdk-1.0'Cleaning libSDK_VerifyRegister.so ...rm -fr libSDK_VerifyRegister.somake[1]:正在离开目录 `/root/tt/libniscsdk-1.0' dh_cleandpkg-source -b libniscsdk-1.0dpkg-source: info: using source format `3.0 (quilt)'dpkg-source: info: building libniscsdk using existing ./libniscsdk_1.0.orig.tar.gzdpkg-source: 警告: 忽略对文件 libSDK_VerifyRegister.so 的删除指令dpkg-source: info: building libniscsdk in libniscsdk_1.0-1.debian.tar.gzdpkg-source: info: building libniscsdk in libniscsdk_1.0-1.dscdebian/rules builddh build dh_testdir dh_auto_configure dh_auto_buildmake[1]: 正在进入目录 `/root/tt/libniscsdk-1.0'Building libSDK_VerifyRegister.so ...gcc -g -shared -fPIC -DPIC _API_VerifyRegister.c md5.c cJSON.c -lm -lcurl -o libSDK_VerifyRegister.somake[1]:正在离开目录 `/root/tt/libniscsdk-1.0' dh_auto_testdebian/rules binarydh binary dh_testroot dh_prep dh_installdirs dh_auto_install dh_install dh_installdocs dh_installchangelogs dh_installexamples dh_installman dh_installcatalogs dh_installcron dh_installdebconf dh_installemacsen dh_installifupdown dh_installinfo dh_installinit dh_installmenu dh_installmime dh_installmodules dh_installlogcheck dh_installlogrotate dh_installpam dh_installppp dh_installudev dh_installwm dh_installxfonts dh_installgsettings dh_bugfiles dh_ucf dh_lintian dh_gconf dh_icons dh_perl dh_usrlocal dh_link dh_compress dh_fixperms dh_strip dh_makeshlibs dh_shlibdeps dh_installdeb dh_gencontrol dh_md5sums dh_builddebdpkg-deb:正在新建软件包 libniscsdk,包文件为 ../libniscsdk_1.0-1_amd64.deb。dpkg-genchanges >../libniscsdk_1.0-1_amd64.changesdpkg-genchanges: 上传数据中包含完整的原始代码dpkg-source --after-build libniscsdk-1.0dpkg-buildpackage: 完整上载(包含原始的代码)root@liul-VirtualBox:~/tt/libniscsdk-1.0#
完成后整体文件结构如下:
root@liul-VirtualBox:~# tree tt/tt/├── libniscsdk-1.0│ ├── _API_VerifyRegister.c│ ├── _API_VerifyRegister.h│ ├── cJSON.c│ ├── cJSON.h│ ├── debian│ │ ├── changelog│ │ ├── compat│ │ ├── control│ │ ├── copyright│ │ ├── docs│ │ ├── emacsen-install.ex│ │ ├── emacsen-remove.ex│ │ ├── emacsen-startup.ex│ │ ├── files│ │ ├── init.d.ex│ │ ├── libniscsdk│ │ │ ├── DEBIAN│ │ │ │ ├── control│ │ │ │ └── md5sums│ │ │ └── usr│ │ │ ├── include│ │ │ │ └── _API_VerifyRegister.h│ │ │ ├── lib│ │ │ │ └── libSDK_VerifyRegister.so│ │ │ └── share│ │ │ └── doc│ │ │ └── libniscsdk│ │ │ ├── changelog.Debian.gz│ │ │ ├── copyright│ │ │ └── README.Debian│ │ ├── libniscsdk.cron.d.ex│ │ ├── libniscsdk.debhelper.log│ │ ├── libniscsdk.default.ex│ │ ├── libniscsdk.doc-base.EX│ │ ├── libniscsdk.install│ │ ├── libniscsdk.substvars│ │ ├── manpage.1.ex│ │ ├── manpage.sgml.ex│ │ ├── manpage.xml.ex│ │ ├── menu.ex│ │ ├── postinst.ex│ │ ├── postrm.ex│ │ ├── preinst.ex│ │ ├── prerm.ex│ │ ├── README.Debian│ │ ├── README.source│ │ ├── rules│ │ ├── source│ │ │ └── format│ │ └── watch.ex│ ├── Debug.h│ ├── libSDK_VerifyRegister.so│ ├── Makefile│ ├── md5.c│ ├── md5.h│ └── README├── libniscsdk_1.0-1_amd64.changes├── libniscsdk_1.0-1_amd64.deb├── libniscsdk_1.0-1.debian.tar.gz├── libniscsdk_1.0-1.dsc├── libniscsdk_1.0.orig.tar.gz└── libniscsdk_1.0.tar.gz11 directories, 52 filesroot@liul-VirtualBox:~#
方案二,基于dpkg -b
首先了解一下deb包的文件结构:
它具有DEBIAN和软件具体安装目录(如etc, usr, opt, tmp等)。在DEBIAN目录中起码具有control文件,其次还可能具有postinst(postinstallation)、postrm(postremove)、preinst(preinstallation)、prerm(preremove)、copyright (版权)、changlog (修订记录)和conffiles等。
control: 这个文件主要描述软件包的名称(Package),版本(Version)以及描述(Description)等,是deb包必须具备的描述性文件,以便于软件的安装管理和索引。同时为了能将软件包进行充分的管理,可能还具有以下字段:
Section: 这个字段申明软件的类别,常见的有utils’,
net’, mail’,
text’, x11′ 等;
required’,
Priority: 这个字段申明软件对于系统的重要程度,如standard’,
optional’, extra’ 等;
i386′, ‘amd64’,
Essential: 这个字段申明是否是系统最基本的软件包(选项为yes/no),如果是的话,这就表明该软件是维持系统稳定和正常运行的软件包,不允许任何形式的卸载(除非进行强制性的卸载)
Architecture:申明软件包结构,如基于m68k’,
sparc’, alpha’,
powerpc’ 等;
Source: 软件包的源代码名称;
Depends: 软件所依赖的其他软件包和库文件。如果是依赖多个软件包和库文件,彼此之间采用逗号隔开;
Pre-Depends: 软件安装前必须安装、配置依赖性的软件包和库文件,它常常用于必须的预运行脚本需求;
Recommends: 这个字段表明推荐的安装的其他软件包和库文件;
Suggests: 建议安装的其他软件包和库文件。
1.[必备文件]一个示例control文件格式如下:
2.增加md5sums文件,描述文件md5值,防止文件包损坏:
3.增加postinst,postrm文件:
4.放置要安装的动态链接库与头文件:
创建目录 mkdir usr/include,mkdir usr/lib/
5.增加静态描述文件,AUTHORS/copyright/README等
6.利用dpkg -b命令,打包生成deb包
这样,一个deb包就制作完成了,该方法的好处是静态文件可以复用,不用每次制作都重新编写,简单易用。
- ubuntu deb安装包制作方法介绍
- ubuntu deb安装包制作方法
- DEB安装包制作方法
- ubuntu 安装deb包
- ubuntu deb包安装
- ubuntu安装deb包
- .deb包制作方法
- deb包制作方法
- Ubuntu中deb文件包介绍(软件安装)
- Ubuntu .deb包安装方法
- Ubuntu .deb包安装方法
- ubuntu 安装deb,rpm包
- Ubuntu .deb包安装方法
- Ubuntu .deb包安装方法
- Ubuntu .deb包安装方法
- Ubuntu .deb包安装方法
- Ubuntu脱机安装deb包
- Ubuntu下安装deb包
- java修改JPG图片DPI 不改变分辨率
- opencv 网址
- input reader对virtual key的处理
- Qualcomm MSM Camera Dtsi documentation
- TObject *Sender
- ubuntu deb安装包制作方法介绍
- 编写一个以C 语言为基础的DSP程序
- java加密算法非对称加密算法——数字信封 DH
- javascript提取顶级域名 js获取一级域名
- Android应用开发SharedPreferences存储数据的使用方法
- ASIHTTPRequest 详解, http 请求终结者
- Android 屏幕适配
- new,malloc,GlobalAlloc用法
- PHP 数字金额转换成中文大写金额的函数