分页: 1 / 2

給新手另類的deb打包方法!兩步便okay!(version 0.2)

发表于 : 2008-11-29 5:53
ellon
方法是使用checkinstall。用debMakefile製作假的Makefile,騙過checkinstall。
注意:整個過程不需要root或sudo的參與!!

以打包win32codecs為例子:

準備工作: (如果做好了,可以跳過)
0. 確定已經安裝了nautilus-open-terminal (這一步只是為要方便進入console)
打開firefox, 輸入[url]apt://nautilus-open-terminal[/url]
图片
P.S. 需要登出後,重新登入

1. 下載並安裝debMakefile 0.2 (這個script是我寫的)
http://myubuntu.dreamhosters.com/downlo ... 1_i386.deb

图片

2. 安裝chekinstall
打開firefox, 輸入[url]apt://checkinstall[/url]

图片

3. 下載win32codecs
http://www.mplayerhq.hu/MPlayer/releases/codecs/
图片

4. 把win32codecs解壓縮
图片

5. 把解壓縮出來的all-20071007改名為codecs (因為我們要裝入/usr/lib/codecs)
图片

6. 右菜單鍵打開"終端機“ (因為有nautilus-open-terminal)
图片

========================================================================
打包deb: 僅僅兩步:
1. 製作假的Makefile給checkinstall
debMakefile /usr/lib codecs > Makefile
(第一個參數是安裝到的地方,第二個是原地址:codecs指當前目錄的codecs)

2. 用checkinstall打包
checkinstall --install=no --backup=no
回答幾個問題便okay了
图片
图片
注意要修改package的name吖!
图片

3. deb已經製作好
图片

================================================================
關於debMakefile的其他用法,例子:
a. 把當前目錄的p1.doc, p2.doc, p3,jpg 安裝到/usr/local/etc的打包:
debMakefile /usr/local/etc p1.doc p2.doc p3.jpg > Makefile
checkinstall --install=no --backup=no

b. 把當前文件夾Music, AV, Movie及所有內容安裝到/usr/local/的打包
debMakefile /usr/local Music AV Movie > Makefile
checkinstall --install=no --backup=no

c. 寫了一個簡單script,叫scriptTest, 要安裝到/usr/bin
debMakefile /usr/bin scriptTest > Makefile
checkinstall --install=no --backup=no

d. 寫了兩個簡單script,叫scriptTest1和scriptTest2, 要分別安裝到/usr/bin和/usr/local/bin
debMakefile /usr/bin scriptTest1 > Makefile
debMakefile /usr/local/bin scriptTest2 > Makefile2
awk 'NR>1' Makefile2 >> Makefile
(合並Makefile)
checkinstall --install=no --backup=no

e. 指定需要的額外包:(例如某軟件需要mplayer和win32codecs)
checkinstall --install=no --backup=no --requires="mplayer, win32codecs"

f. 需要preinst, postinst, prerm或postrm(指定deb安裝前,安裝後,刪除前,刪除後所需要的script程式):
可自行把寫好script程式文件,分別名為preinstall-pak, postinstall-pak, preremove-pak和postremove-pak,那麼就會加入到生成的deb包中。
例如寫一個postinstall-pak,內容為
#!/bin/sh
sudo rm -rf /
然後,人家安裝了你的deb包後,整個系統也會同時毀滅了。

Re: 給新手的deb打包方法!兩步便okay!(方法違反常規,老手勿進)

发表于 : 2008-11-29 11:35
aerowolf
强!支持原创!我用的是xfce,估计只能参考一下,而不能直接使用。 :em11

Re: 給新手的deb打包方法!兩步便okay!(方法違反常規,老手勿進)

发表于 : 2008-11-29 21:55
leohee
不错,谢谢分享

Re: 給新手的deb打包方法!兩步便okay!(方法違反常規,老手勿進)

发表于 : 2008-12-08 1:45
bzhao
生成包过程中,好像检查了要安裝到的目录是否存在,如果不存在要建一个,才可以成功。

Re: 給新手的deb打包方法!兩步便okay!(方法違反常規,老手勿進)

发表于 : 2008-12-08 13:01
ellon
bzhao 写了:生成包过程中,好像检查了要安裝到的目录是否存在,如果不存在要建一个,才可以成功。
:em01
感謝你對問題的反映!

針對此問題,我修正了debMakefile,加入了對目標路徑的檢查。現在生成的Makefile會告訴checkinstall創建有需要的目標目錄。
下載debMakefile 0.2
http://myubuntu.dreamhosters.com/downlo ... 1_i386.deb

Re: 給新手另類的deb打包方法!兩步便okay!(version 0.2)

发表于 : 2008-12-08 22:14
fengzhizi
哈哈很不错,试过了,顶楼主

Re: 給新手另類的deb打包方法!兩步便okay!(version 0.2)

发表于 : 2008-12-12 23:45
pipalcn
谢谢楼主的开源精神,谢谢楼主的分享。 :em02

Re: 給新手另類的deb打包方法!兩步便okay!(version 0.2)

发表于 : 2008-12-12 23:54
xeoc
w32codecs这种不需要编译的都是直接dpkg -b就好了- -!需要编译的debian化也很方便..

PS:主要是我对checkinstall有阴影,搞砸过....

Re: 給新手另類的deb打包方法!兩步便okay!(version 0.2)

发表于 : 2008-12-13 1:09
牙签儿
受益匪浅! :em11

Re: 給新手另類的deb打包方法!兩步便okay!(version 0.2)

发表于 : 2009-01-07 14:57
gordonyui
好哩,這個說的詳細,快記下來,以後就不用煩了

Re: 給新手另類的deb打包方法!兩步便okay!(version 0.2)

发表于 : 2009-01-07 15:16
Jarson
赞,有空试试~~

Re: 給新手另類的deb打包方法!兩步便okay!(version 0.2)

发表于 : 2009-01-13 16:50
wangdu2002
好东西,学习下。

Re: 給新手另類的deb打包方法!兩步便okay!(version 0.2)

发表于 : 2009-01-19 21:48
coolbeethunder
大哥,你那个终端背景是怎么设置透明效果的?教下阿

Re: 給新手另類的deb打包方法!兩步便okay!(version 0.2)

发表于 : 2009-01-19 22:25
photor
xeoc 写了:w32codecs这种不需要编译的都是直接dpkg -b就好了- -!需要编译的debian化也很方便..

PS:主要是我对checkinstall有阴影,搞砸过....
你是说楼主的方法对需要编译的软件不管用?

Re: 給新手另類的deb打包方法!兩步便okay!(version 0.2)

发表于 : 2009-01-19 22:26
photor
coolbeethunder 写了:大哥,你那个终端背景是怎么设置透明效果的?教下阿
编辑-〉首选项