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

编译打包和其他
头像
ellon
帖子: 358
注册时间: 2007-11-28 5:39

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

#1

帖子 ellon » 2008-11-29 5:53

方法是使用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包後,整個系統也會同時毀滅了。
上次由 ellon 在 2009-02-09 11:29,总共编辑 10 次。
头像
aerowolf
帖子: 1787
注册时间: 2006-02-25 17:09
来自: 西安

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

#2

帖子 aerowolf » 2008-11-29 11:35

强!支持原创!我用的是xfce,估计只能参考一下,而不能直接使用。 :em11
早起的鸟儿有虫吃
早起的虫儿被鸟吃

http://aerowolf.blog.sohu.com/
亲,点一下免费获得Dropbox空间!
leohee
帖子: 30
注册时间: 2008-07-09 15:27

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

#3

帖子 leohee » 2008-11-29 21:55

不错,谢谢分享
头像
bzhao
帖子: 252
注册时间: 2008-07-05 2:15
系统: XUbuntu

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

#4

帖子 bzhao » 2008-12-08 1:45

生成包过程中,好像检查了要安裝到的目录是否存在,如果不存在要建一个,才可以成功。
头像
ellon
帖子: 358
注册时间: 2007-11-28 5:39

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

#5

帖子 ellon » 2008-12-08 13:01

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

針對此問題,我修正了debMakefile,加入了對目標路徑的檢查。現在生成的Makefile會告訴checkinstall創建有需要的目標目錄。
下載debMakefile 0.2
http://myubuntu.dreamhosters.com/downlo ... 1_i386.deb
fengzhizi
帖子: 20
注册时间: 2008-10-31 20:40

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

#6

帖子 fengzhizi » 2008-12-08 22:14

哈哈很不错,试过了,顶楼主
头像
pipalcn
帖子: 16
注册时间: 2007-03-16 13:45

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

#7

帖子 pipalcn » 2008-12-12 23:45

谢谢楼主的开源精神,谢谢楼主的分享。 :em02
xeoc
帖子: 1994
注册时间: 2007-05-06 10:12

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

#8

帖子 xeoc » 2008-12-12 23:54

w32codecs这种不需要编译的都是直接dpkg -b就好了- -!需要编译的debian化也很方便..

PS:主要是我对checkinstall有阴影,搞砸过....
头像
牙签儿
帖子: 509
注册时间: 2007-06-30 0:27

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

#9

帖子 牙签儿 » 2008-12-13 1:09

受益匪浅! :em11
反对台独,反对藏独,反对孤独!
apt-get不是万能的:

代码: 全选

sudo apt-get install girlfriend
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
有一些软件包无法被安装。
下列的信息可能会对解决问题有所帮助:
下列的软件包有不能满足的依赖关系:
girlfiend: 依赖: hourse但是它将不会被安装
girlfiend: 依赖: car但是它将不会被安装
house,car: 依赖: money但是它将不会被安装
E: 无法安装的软件包
gordonyui
帖子: 5
注册时间: 2007-11-13 12:47

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

#10

帖子 gordonyui » 2009-01-07 14:57

好哩,這個說的詳細,快記下來,以後就不用煩了
头像
Jarson
帖子: 2371
注册时间: 2008-07-21 9:44
来自: 深圳
联系:

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

#11

帖子 Jarson » 2009-01-07 15:16

赞,有空试试~~
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

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

#12

帖子 wangdu2002 » 2009-01-13 16:50

好东西,学习下。
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
coolbeethunder
帖子: 8
注册时间: 2008-12-12 10:48

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

#13

帖子 coolbeethunder » 2009-01-19 21:48

大哥,你那个终端背景是怎么设置透明效果的?教下阿
头像
photor
论坛版主
帖子: 11004
注册时间: 2008-04-26 12:41

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

#14

帖子 photor » 2009-01-19 22:25

xeoc 写了:w32codecs这种不需要编译的都是直接dpkg -b就好了- -!需要编译的debian化也很方便..

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