2010-05-13 130 views
4

我在Ubuntu桌面上开发了一些C++应用程序。我想创建安装包,以便我可以将它们安装在Ubuntu服务器上。构建Ubuntu服务器包

任何人都可以提供有关如何创建Ubuntu服务器软件包的指导原则吗?

回答

5

最简单的方法是在makefile中创建一个“安装”部分,它将安装该程序,然后运行checkinstall 。您可能需要使用aptitude install checkinstall进行安装。

checkinstall运行make install,找出发生了什么变化,然后建立一个基于它的包。


要执行makefile中的安装部分,只需将安装程序所需的命令即可。下面是一个创建了一个名为“myprogram”二进制,需要在/ etc一些配置的程序的一个例子:

# make example 
myprogram: main.o something_else.o 
    gcc -o myprogram main.o something_else.o -llibrary_goes_here 

install: myprogram 
    cp myprogram /usr/bin #install binary 
    cp -R etc /etc/myprogram # copy "etc" folder to /etc/myprogram 

有一个名为install这跟cp,并允许您指定权限的命令,但我不知道语法够好。

您还需要为每个.o文件指定如何编译它(可能为gcc -c filename.cpp)。

+0

+1这确实听起来像最简单的方法。问题是我对GNU构建链工具比较陌生(我来自Windows背景)。你可以举一个例子来说明在'helloworld'应用程序的安装部分放置什么吗? MTIA – morpheous 2010-05-17 08:19:49

+0

我向答案添加了说明(因为makefile语法需要换行符)。 – 2010-05-18 01:20:53

+0

谢谢,这是一个非常好的起点! – morpheous 2010-05-18 06:40:30

3

Ubuntu使用Debian软件包格式(.deb)。生成的包可以针对一个架构(如i386,AMD64等)或独立于架构。

然后你可以以root身份安装'dpkg -i packagefile.deb'产生的软件包。

现在更重要的一点是:我建议您查找有关如何制作Debian软件包的信息。我确信有很多很好的参考站点和工具,比如这个:http://debcreator.cmsoft.net/