制作Ubuntu的deb格式包 从Hello World做起
1、新建一個(gè)我們臨時(shí)的工作目錄
mkdir deb
2、新建我們程序的目錄
mkdir hello
3、編寫(xiě)我們的程序
我們以我們最熟悉的helloworld程序做起,
hello.c代碼如下
#include <stdio.h>
int main(int argc, char* argv[])
{
printf(“Hello world!\n”);
return 0;
}
Makefile文件如下:
OBJS=hello.o
CC=gcc -g
all:$(OBJS)
$(CC) -o hello (OBJS)clean:rm?f?.ohello.PHONY:allclean4、我們make一下,測(cè)試程序編譯是否有問(wèn)題,然后在./hello檢查程序是否正確執(zhí)行5、如果沒(méi)問(wèn)題進(jìn)行下一步,如果有問(wèn)題我們檢查程序代碼6、我們清理下剛才編譯程序的垃圾,makeclean一下7、輸入命令,切回上級(jí)目錄cd..8、進(jìn)行一次壓縮打包(為什么做這一步,我也不太明白,查資料說(shuō),這一步是為了給生成的deb文件進(jìn)行對(duì)比,確保我們deb文件沒(méi)有錯(cuò)誤)改名:因?yàn)槲募仨毎募€有版本號(hào)mvhellohello?1.0說(shuō)明:文件名后必須用?,不能用tarzcvfhello1.0.orig.tar.gzhello?1.0說(shuō)明:壓縮包的名字必須是包含文件名及版本號(hào)9、進(jìn)入我們的hello?1.0目錄cdhello?1.010、我們需要dhmake工具進(jìn)行打包前的配置,如果是第一使用請(qǐng)先安裝dh?makedh?make安裝方法:sudoapt?getinstalldh?make安裝好后,我們就可以使用該命令了dhmake?elinuxidc@www.linuxidc.com修改參數(shù),也可以不修改,執(zhí)行這一步,我們將會(huì)看到,郵箱是我們剛才輸入的如果不想改為自己的郵箱,可以執(zhí)行下面命令dhmake上面任一命令后都會(huì)出現(xiàn),一下內(nèi)容:www.linuxidc.com@linuxidc:/deb/hello?1.0(OBJS) clean: rm -f *.o hello .PHONY:all clean 4、我們make一下,測(cè)試程序編譯是否有問(wèn)題,然后在./hello檢查程序是否正確執(zhí)行 5、如果沒(méi)問(wèn)題進(jìn)行下一步,如果有問(wèn)題我們檢查程序代碼 6、我們清理下剛才編譯程序的垃圾,make clean一下 7、輸入命令,切回上級(jí)目錄 cd .. 8、進(jìn)行一次壓縮打包(為什么做這一步,我也不太明白,查資料說(shuō),這一步是為了給生成的deb文件進(jìn)行對(duì)比,確保我們deb文件沒(méi)有錯(cuò)誤) 改名:因?yàn)槲募仨毎募€有版本號(hào) mv hello hello-1.0 說(shuō)明:文件名后必須用-,不能用_ tar zcvf hello_1.0.orig.tar.gz hello-1.0 說(shuō)明:壓縮包的名字必須是包含文件名及版本號(hào) 9、進(jìn)入我們的hello-1.0目錄 cd hello-1.0 10、我們需要dh_make工具進(jìn)行打包前的配置,如果是第一使用請(qǐng)先安裝dh-make dh-make安裝方法: sudo apt-get install dh-make 安裝好后,我們就可以使用該命令了 dh_make -e linuxidc@www.linuxidc.com 修改參數(shù),也可以不修改,執(zhí)行這一步,我們將會(huì)看到,郵箱是我們剛才輸入的 如果不想改為自己的郵箱,可以執(zhí)行下面命令 dh_make 上面任一命令后都會(huì)出現(xiàn),一下內(nèi)容: www.linuxidc.com@linuxidc:~/deb/hello-1.0(OBJS)clean:rm?f?.ohello.PHONY:allclean4、我們make一下,測(cè)試程序編譯是否有問(wèn)題,然后在./hello檢查程序是否正確執(zhí)行5、如果沒(méi)問(wèn)題進(jìn)行下一步,如果有問(wèn)題我們檢查程序代碼6、我們清理下剛才編譯程序的垃圾,makeclean一下7、輸入命令,切回上級(jí)目錄cd..8、進(jìn)行一次壓縮打包(為什么做這一步,我也不太明白,查資料說(shuō),這一步是為了給生成的deb文件進(jìn)行對(duì)比,確保我們deb文件沒(méi)有錯(cuò)誤)改名:因為文件名必須包含文件名還有版本號(hào)mvhellohello?1.0說(shuō)明:文件名后必須用?,不能用t?arzcvfhello1?.0.orig.tar.gzhello?1.0說(shuō)明:壓縮包的名字必須是包含文件名及版本號(hào)9、進(jìn)入我們的hello?1.0目錄cdhello?1.010、我們需要dhm?ake工具進(jìn)行打包前的配置,如果是第一使用請(qǐng)先安裝dh?makedh?make安裝方法:sudoapt?getinstalldh?make安裝好后,我們就可以使用該命令了dhm?ake?elinuxidc@www.linuxidc.com修改參數(shù),也可以不修改,執(zhí)行這一步,我們將會(huì)看到,郵箱是我們剛才輸入的如果不想改為自己的郵箱,可以執(zhí)行下面命令dhm?ake上面任一命令后都會(huì)出現(xiàn),一下內(nèi)容:www.linuxidc.com@linuxidc:?/deb/hello?1.0 dh_make -e linuxidc@www.linuxidc.com
Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs?
[s/i/m/l/k/n/b]
11、我們輸入s
Maintainer name : zsx
Email-Address : linuxidc@www.linuxidc.com
Date : Sat, 18 Dec 2010 23:06:25 +0800
Package Name : hello
Version : 1.0
License : blank
Using dpatch : no
Type of Package : Single
Hit to confirm:
12、輸入回車,確認(rèn)
Skipping creating …/hello_1.0.orig.tar.gz because it already exists
Done. Please edit the files in the debian/ subdirectory now. You should also
check that the hello Makefiles install into $DESTDIR and not in / .
13、準(zhǔn)備工作完成
14、開(kāi)始打包
dpkg-buildpackage
dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor):
dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions
dpkg-buildpackage: 源碼包 hello
dpkg-buildpackage: 源碼版本 1.0-1
dpkg-buildpackage: 源碼修改者 zsx linuxidc@www.linuxidc.com
dpkg-buildpackage: 主機(jī)架構(gòu) i386
dpkg-source --before-build hello-1.0
fakeroot debian/rules clean
dh clean
dh_testdir
dh_auto_clean
make[1]: 正在進(jìn)入目錄 /home/zsx/deb/hello-1.0' rm -f *.o hello make[1]:正在離開(kāi)目錄/home/zsx/deb/hello-1.0’
dh_clean
dpkg-source -b hello-1.0
dpkg-source: info: using source format 3.0 (quilt)' dpkg-source: info: building hello using existing ./hello_1.0.orig.tar.gz dpkg-source: info: building hello in hello_1.0-1.debian.tar.gz dpkg-source: info: building hello in hello_1.0-1.dsc debian/rules build dh build dh_testdir dh_auto_configure dh_auto_build make[1]: 正在進(jìn)入目錄/home/zsx/deb/hello-1.0’
gcc -g -g -O2 -c -o hello.o hello.c
gcc -g -o hello hello.o
make[1]:正在離開(kāi)目錄 `/home/zsx/deb/hello-1.0’
dh_auto_test
fakeroot debian/rules binary
dh 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_pysupport
dh_installinit
dh_installmenu
dh_installmime
dh_installmodules
dh_installlogcheck
dh_installlogrotate
dh_installpam
dh_installppp
dh_installudev
dh_installwm
dh_installxfonts
dh_bugfiles
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
dpkg-gencontrol: 警告: Depends field of package hello: 未知的替換變量 ${shlibs:Depends}
dh_md5sums
dh_builddeb
dpkg-deb:正在新建軟件包“hello”,包文件為“…/hello_1.0-1_i386.deb”。
dpkg-genchanges >…/hello_1.0-1_i386.changes
dpkg-genchanges: 上傳數(shù)據(jù)中包含完整的原始代碼
dpkg-source --after-build hello-1.0
dpkg-buildpackage: 完整上載(包含原始的代碼)
15、打包成功,切回上級(jí)目錄就可看到我們的helloworld的deb包
cd …
ls后就會(huì)看到 hello_1.0-1_i386.deb
總結(jié)
以上是生活随笔為你收集整理的制作Ubuntu的deb格式包 从Hello World做起的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《网络神采4》技术大揭密之:DedeCM
- 下一篇: pip安装pymssql出现ERROR: