2010-05-13 121 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/