linux上使用源码包安装软件,一般就是三步,"./confure","make",
"sudo make install"那人家的这个安装包又是怎么制作出来的呢?我们能
不能使用一个简单的程序也制作一个安装包呢?---------------------------------------------------------------------------------
1,搭建使用工具的环境。
sudo apt-get install autoconf
sudo apt-get install automake
这两个工具都是GNU系列中的软件,也可以下载源码安装。
下载地址: -------------------------------------------------------------------------------
2,制作软件包。
由于为了避免麻烦,我就使用了automake源代码中自带的一个“模板”。
使用该“模板”制作起来更方便。该模板就是automake/doc/amhello amhello.rar 只要在这个基础上做一些参数的修改就可以了。-------------------------------------------------------------------------------
3,修改相关参数。
将amhello/src/main.c换成我自己的程序。这儿换成我的myshell.c
将amhello/src/Makefile.am中的参数也替换下:
原来:- 5 bin_PROGRAMS = hello
- 6 hello_SOURCES = main.c
更改:- 5 bin_PROGRAMS = myshell
- 6 myshell_SOURCES = myshell.c
然后再修改configure.ac这个文件:
原来:- 5 AC_INIT([amhello], [1.0], [bug-automake@gnu.org])
- 6 AM_INIT_AUTOMAKE([-Wall -Werror foreign])
- 7 AC_PROG_CC
- 8 AC_CONFIG_HEADERS([config.h])
- 9 AC_CONFIG_FILES([
- 10 Makefile
- 11 src/Makefile
- 12 ])
- 13 AC_OUTPUT
修改后:
- 5 AC_INIT([myshell], [1.0], [wangzhe5004@gmail.com])
- 6 AM_INIT_AUTOMAKE([-Wall -Werror foreign])
- 7 AC_PROG_CC
- 8 AC_CONFIG_HEADERS([config.h])
- 9 AC_CONFIG_FILES([
- 10 Makefile
- 11 src/Makefile
- 12 ])
- 13 AC_OUTPUT
-----------------------------------------------------------------------------------------
4,使用工具开始制作。
首先执行:aclocal
然后执行: autoconf
然后执行:autoheader
最后执行:automake --add-missing----------------------------------------------------------------------------------------
5,检测。
可以将制作好的软件包到多个机子上检测下,看能不能安装。
执行源码包安装的“三步曲” : "./configure" "make" "sudo make install"
然后在终端下执行myshell这个命令。----------------------------------------------------------------------------------------
6,自己制作好的myshell-1.0软件包。 myshell-1.0.rar 还制作了一个myls-1.0的软件包。 myls-1.0.rar ---------------------------------------------------------------------------------------
7,如果想了解更多的原理可以参考:
http://blog.chinaunix.net/uid-27033491-id-3317460.html-------------------------------------------------------------------------------------
阅读(4402) | 评论(0) | 转发(0) |