有關自己打包deb [論壇 - Ubuntu 套件打包]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

(1) 2 »


有關自己打包deb
會員五級
註冊日期:
2008/10/7 21:19
所屬群組:
已註冊使用者
等級: 36
HP : 0 / 896
MP : 661 / 28685
EXP: 85
離線
之前有用到xrdp這個遠端遙控程式
http://xrdp.sourceforge.net/

就如網頁內所見到的,只有提供原始碼,安裝要自行編譯
我想自己包一個deb,在其他電腦安裝的時候就不用再連上網路下載gcc等編譯用的套件

正體中文自由文件計劃:DEB 套件打包指南
http://cwchien.wikidot.com/debpackaging

所以我就按照這個文件從安裝打包套件、製作金鑰等,現在到了「Debian化」卡住了
我將程式原始碼的資料夾按照命名規則命名為「xrdp-0.4.1-1ubuntu1」,並在資料夾中下指令「dh-make」,終端機回應:
822-date: warning: This program is deprecated. Please use 'date -R' instead.

Type of package: single binary, multiple binary, library, kernel module or cdbs?
[s/m/l/k/b]

出現了第一行不知道是哪裡有問題的訊息,忽略完成後面的步驟後,並沒有像文章中所說會出現「xrdp-0.4.1-1ubuntu1.orig」這樣的目錄
請問是出了什麼問題呢?如何解決?

謝謝

2009/2/23 0:18
I′m UGP
應用擴展 工具箱
回覆: 有關自己打包deb
會員五級
註冊日期:
2008/4/9 14:04
所屬群組:
已註冊使用者
等級: 31
HP : 0 / 765
MP : 447 / 25594
EXP: 60
離線
如果只是單純的從原始碼經過編譯之後,自己做成deb檔案自己用,應該不用這麼複雜的去宣告有的沒有的。

通常原始碼都有 autogen.sh 或者 configure 檔案可以執行設定系統資訊。執行之後如果有缺乏的套件,會顯示出來告訴你需要安裝。
只要沒有錯誤,就可以執行編譯了
編譯之前,請先安裝checkinstall這個套件
sudo apt-get install checkinstall

make clean # 預防萬一,先清除暫存檔案
make # 開始編譯

經過漫長的編譯過程,編譯完成之後,請執行

sudo checkinstall

會問你一些小問題,不知道就按enter過去就好。
這個程式會模擬安裝你所編譯好的軟體,並且將編譯好的檔案做成deb檔案。是個很方便很好用的軟體。
試試看吧!

2009/2/23 0:42
應用擴展 工具箱
回覆: 有關自己打包deb
會員五級
註冊日期:
2008/10/7 21:19
所屬群組:
已註冊使用者
等級: 36
HP : 0 / 896
MP : 661 / 28685
EXP: 85
離線
感謝,這個看起來很好用
不過在做出deb包之後,安裝會發生錯誤:
http://img12.imageshack.us/img12/6734/20090223debpack.png

KDE下的訊息:
http://img27.imageshack.us/img27/2585/20090223debpackkde.png

2009/2/23 2:53
I′m UGP
應用擴展 工具箱
回覆: 有關自己打包deb
版主
註冊日期:
2006/12/24 16:54
所屬群組:
網站管理員
已註冊使用者
等級: 33
HP : 0 / 816
MP : 524 / 30408
EXP: 67
離線

dpkg --contents
查驗一下將會安裝的檔案
再檢查一下
debian/dirs
或是makefile的安裝部分是否有正確新增資料夾

前陣子也為了包套件搞得暈頭轉向= =

2009/2/23 7:54
就算你百分之一百認定某人是渣滓中的渣滓,請仍然展示你的冷靜、體諒、尊重。

* My Blog
* My Twitter <- follow me!
* My Plurk
FoolproofProject:
* KomiX latest stable: v0.1.0 (Comics Viewer)
* Khopper latest stable: v0.4.2 (Audio Converter with CUE Sheet Support)
* PicKing latest stable: v0.2.3 (File Picking)
應用擴展 工具箱
回覆: 有關自己打包deb
會員五級
註冊日期:
2008/10/7 21:19
所屬群組:
已註冊使用者
等級: 36
HP : 0 / 896
MP : 661 / 28685
EXP: 85
離線

[root@andLinux xrdp-0.4.1]# dpkg --contents ./xrdp_0.4.1-1_i386.deb
drwxr-xr-x root/root 0 2009-02-23 03:26 ./
drwxr-xr-x root/root 0 2009-02-23 03:26 ./usr/
drwxr-xr-x root/root 0 2009-02-23 03:26 ./usr/share/
drwxr-xr-x root/root 0 2009-02-23 03:26 ./usr/share/doc/
drwxr-xr-x root/root 0 2009-02-23 01:14 ./usr/share/doc/xrdp/
-rw-r--r-- root/root 19327 2006-11-14 13:25 ./usr/share/doc/xrdp/COPYING
drwxr-xr-x root/root 0 2008-05-31 10:15 ./usr/share/doc/xrdp/docs/
drwxr-xr-x root/root 0 2008-05-31 10:15 ./usr/share/doc/xrdp/docs/man/
-rw-r--r-- root/root 5729 2007-03-26 05:20 ./usr/share/doc/xrdp/docs/man/sesman.ini.5
...


debian/dirs:

usr/lib/xrdp
etc/xrdp


Makefile:

DESTDIR = /usr/local/xrdp
CFGDIR = /etc/xrdp
PIDDIR = /var/run
MANDIR = /usr/local/man
DOCDIR = /usr/doc/xrdp
...


以上,我覺得dpkg --contents列出來的檔案路徑都是「./」好像怪怪的

2009/2/23 10:32
I′m UGP
應用擴展 工具箱
回覆: 有關自己打包deb
版主
註冊日期:
2006/12/24 16:54
所屬群組:
網站管理員
已註冊使用者
等級: 33
HP : 0 / 816
MP : 524 / 30408
EXP: 67
離線
那有可能debian/rules裡要稍微修改一下路徑
因為'./'的確是不該出現的
我也只試過土法煉鋼法

2009/2/23 11:15
就算你百分之一百認定某人是渣滓中的渣滓,請仍然展示你的冷靜、體諒、尊重。

* My Blog
* My Twitter <- follow me!
* My Plurk
FoolproofProject:
* KomiX latest stable: v0.1.0 (Comics Viewer)
* Khopper latest stable: v0.4.2 (Audio Converter with CUE Sheet Support)
* PicKing latest stable: v0.2.3 (File Picking)
應用擴展 工具箱
回覆: 有關自己打包deb
會員五級
註冊日期:
2008/10/7 21:19
所屬群組:
已註冊使用者
等級: 36
HP : 0 / 896
MP : 661 / 28685
EXP: 85
離線
看了老半天,我看不出個所以然 囧...

debian/rules:

#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1




CFLAGS = -Wall -g

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
else
CFLAGS += -O2
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
INSTALL_PROGRAM += -s
endif

configure: configure-stamp
configure-stamp:
dh_testdir
# Add here commands to configure the package.

touch configure-stamp


build: build-stamp

build-stamp: configure-stamp
dh_testdir

# Add here commands to compile the package.
$(MAKE)
#/usr/bin/docbook-to-man debian/xrdp.sgml > xrdp.1

touch build-stamp

clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp

# Add here commands to clean up after the build process.
-$(MAKE) clean

dh_clean

install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs

# Add here commands to install the package into debian/xrdp.
$(MAKE) installdeb DESTDIRDEB=$(CURDIR)/debian/xrdp


# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
# dh_install
# dh_installmenu
# dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_installinit
# dh_installcron
# dh_installinfo
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_perl
# dh_python
# dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

2009/2/23 11:55
I′m UGP
應用擴展 工具箱
回覆: 有關自己打包deb
版主
註冊日期:
2006/12/24 16:54
所屬群組:
網站管理員
已註冊使用者
等級: 33
HP : 0 / 816
MP : 524 / 30408
EXP: 67
離線
我看起來也很正常...
不然就要研究一下checkinstall有沒有其他的參數吧

2009/2/23 12:05
就算你百分之一百認定某人是渣滓中的渣滓,請仍然展示你的冷靜、體諒、尊重。

* My Blog
* My Twitter <- follow me!
* My Plurk
FoolproofProject:
* KomiX latest stable: v0.1.0 (Comics Viewer)
* Khopper latest stable: v0.4.2 (Audio Converter with CUE Sheet Support)
* PicKing latest stable: v0.2.3 (File Picking)
應用擴展 工具箱
回覆: 有關自己打包deb
會員五級
註冊日期:
2008/10/7 21:19
所屬群組:
已註冊使用者
等級: 36
HP : 0 / 896
MP : 661 / 28685
EXP: 85
離線
checkinstall --help看不出有什麼有關的參數...

或是如果可以把編譯的時候需要的套件帶著走的話也是可以
xrdp這個套件編譯的時候需要build-essential、libpam0g-dev、libssl-dev
有什麼方法可以直接取得這三組套件安裝的deb檔嗎?

2009/2/23 13:07
I′m UGP
應用擴展 工具箱
回覆: 有關自己打包deb
會員五級
註冊日期:
2008/4/9 14:04
所屬群組:
已註冊使用者
等級: 31
HP : 0 / 765
MP : 447 / 25594
EXP: 60
離線
看到您的回應,在下好奇的就把這個xrdp下載回來試試看。
這個source檔案沒有configure與autogen.sh這類型的執行檔,看說明只需要make就可以了。
按照他所說的,直接make,並且用sudo checkinstall來測試。
checkinstall最後也是出現
http://img12.imageshack.us/img12/6734/20090223debpack.png
這個錯誤訊息。
so ..... 以前碰過的經驗告訴我,這可能是權限問題或者是檔案路徑問題。
檢查/etc目錄下面,並沒有xrdp目錄,因此xrdp.ini檔案無法建立。
所以

sudo mkdir /etc/xrdp

然後再次的用checkinstall
就看到了可以正常安裝使用的訊息了

**********************************************************************

Done. The new package has been installed and saved to

/home/liu/temp/xrdp-0.4.1/xrdp_0.4.1-1_i386.deb

You can remove it from your system anytime using:

dpkg -r xrdp

**********************************************************************

我只有執行到這個部份,並沒有實際的用dpkg -i去安裝。
因為checkinstall會模擬dpkg -i的參數進行安裝測試,有問題的時候就是會有問題,測試通過就可以正常安裝。這個軟體我沒用過而且也沒機會用,所以就沒有實際安裝測試了。我用過的source程式,只有這個xrdp程式的deb包有這個問題,因此我會認為這應該是source的小小bug,並不是checkinstall的問題。
給您個參考,請過目。

^____^


對了,補充一下,如果您真的需要編譯用的那幾個套件,請到下列這個網址搜尋套件的名稱,並且針對您使用的ubuntu版本,就可以下載了。
http://packages.ubuntu.com/

很方便使用的。
如果是Debian,可以到另外一個地方

http://www.debian.org/distrib/packages

有中文的介面喔!
針對某些套件的版本,Debian有而Ubuntu沒有的時候,利用Debian套件庫就顯的很方便了。

不過話說回來,只要安裝apt-build這個套件,那幾個套件就會自動安裝了。您可以試著用用看吧,這是apt-get的另外一種型式的套件管理程式,主要是將套件以source的方式下載下來之後,在自己的電腦上以適合自己電腦的核心來進行最佳化的編譯,編譯好之後打包成為deb檔案進行安裝。缺點是不在apt套件庫裏面的軟體無法使用就是了(應該吧...我沒有仔細的去看他的使用說明)。以我自己來說,在套件庫裏面的我都用apt-build,不在套件庫裏面的,我就會用checkinstall。

2009/2/23 13:19
應用擴展 工具箱

(1) 2 »

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.