Linux源码打包工具CheckInstall
来源:互联网 发布:张晶漫画家 知乎 编辑:程序博客网 时间:2024/05/22 03:41
Checkinstall是能够通过源码,自动生成 RPM/Debian 或Slackware 安装包的程序。通过 CheckInstall生成的安装包,可以通过linux的各种软件包软件包管理器来管理安装与卸载,保证系统的”干净“。
使用GUN Autoconf安装程序时我们一般是使用源码提供的Makefile在进行构建,但Makefile很多情况下是不提供卸载或升级的,所以我们只能自行的进行程序的管理,这样在我们升级或卸载时就非常繁琐,所以我们可以通过打包工具,打包成安装包,以供我们在该平台下进行程序的管理。
一般来说,我们编译GNU Autoconf配置的工程是使用:
./configuremakemake install
的步骤来编译安装工程,并安装至预定位置。configure脚本即是检查安装程序之前,系统是否满足某些依赖项,在make时需要用到,同时会根据编译参数生成Makefile文件(若有依赖子工程,则会在子工程文件夹统一生成Makefile文件,同时也会生成一个日志文件config.log和配置脚本config.status),然后就可以进行make
,从临时文件夹中编译出可执行文件,并可以通过make install
安装到指定目录中。
安装:sudo apt-get install checkinstall
使用checkinstall来打包安装程序
通过checkinstall来打包程序非常简单,只需要利用checkinstall
来替换上文中的make install
就会生成指定的打包文件:
./configuremakecheckinstall
使用checkisntall指令时,会产生一个事务并运行make install
检测所有安装过程中的写操作,在make安装执行完以后,会回滚事务,同时产生一个.deb,.rpm或slackware的安装包。关于生成安装包的路径,可以通过设置PAK_DIR的环境变量来修改。
同时,若安装程序使用的不是make install
使用shell脚本来进行安装的话,也可以通过checkinstall来进行打包,例如,安装脚本为setup.sh:
./configuremakecheckinstall setup.sh
checkinstall的参数配置
checkinstall默认打包的类型为deb,可以通过参数来生成不同的打包程序:
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran This software is released under the GNU GPL.Usage: checkinstall [options] [command [command arguments]]Options:*Package type selection*-t,--type=<slackware|rpm|debian> 设置打包类型-S 打包成Slackware-R 打包成RPM-D 打包成DEB
CheckInstall 也有自己的局限之处。它不能处理静态连接的程序,因为这样 Installwatch 就不能监测到安装过程中修改过文件了。总体说来,有两类连接库:动态的和静态的。这些连接库通过 include 指令整合到程序中。静态连接过的程序已经包含了所有需要的库文件,运行时也就不需要再将这些库载入内存中。这种程序与安装在系统中的连接库无关,因为所谓的连接器(Linker)已经在编译时把这些库内置到可执行程序里了。
- Linux源码打包工具CheckInstall
- Linux 源码安装工具 CheckInstall
- Linux 的源码安装工具 CheckInstall
- Linux 的源码安装工具 CheckInstall
- Linux 的源码安装工具 CheckInstall
- checkinstall制作linux安装包
- Debian下制作deb工具:checkinstall
- fedora/ubuntu使用checkinstall源码安装软件
- Linux 下打包工具
- Linux 下打包工具
- Linux压缩打包工具
- wdOS系统上checkinstall工具的安装和应用示例
- 源码安装时用CheckInstall生成deb包
- 使用checkinstall 编译软件源码并生成deb包
- Linux打包安装开发者工具
- IzPack打包工具 源码编译、安装、使用
- linux 源码浏览工具
- Linux源码分析工具
- C语言 extern 经常出错的一处
- adb not responding if youd like to retry...的解决方法
- where、group by、having使用
- NYOJ 次方求模102
- sandbox沙盒介绍以及如何取得沙盒里面各文件的路径,图片导入方式和图片路径获取
- Linux源码打包工具CheckInstall
- 如何让模拟器加载自己的Room
- Window 7 小常识集合
- 面试笔试杂项积累-leetcode 271-280
- Atitit. Ati IDE 开发平台的第一版规划
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
- 如何实现只收听一次sticky的广播,读取电池电量的值
- Light OJ 1191 Bar Codes (DP)
- SAE中的日志功能