如何在ubuntu14.04下制作openyoudao的ppa安裝包

? ? Openyoudao發(fā)布Alpha版本后寥假,又集成了愛詞霸的在線翻譯功能市框。最初只有我跟呂大,還有少許的同學(xué)幫忙測試昧旨,多數(shù)情況下運行還算穩(wěn)定拾给。直到發(fā)布了AUR和PPA安裝包,用戶才逐漸多起來兔沃,大家反饋也越來越多:一方面蒋得,用戶很認(rèn)可這款軟件,因為取詞功能強大乒疏、翻譯準(zhǔn)確额衙,也沒有廣告;另一方面怕吴,程序會時不時異常中斷窍侧,這個bug后續(xù)越來越明顯。當(dāng)時很想能解決這個bug再發(fā)布Alpha转绷,但是花了很長時間伟件,還是沒能解決。

? ??其實议经,在給軟件打包之前斧账,自己對linux很不熟悉谴返,甚至都算不上一個初級菜鳥,之所以還要硬著頭皮寫這款軟件就是想挑戰(zhàn)一下自己咧织,看到底能不能寫好程序嗓袱,能不能吃的了程序員這碗飯。由于當(dāng)時沒有特別稱手的博客习绢,所以前前后后做了幾次發(fā)布都沒能把過程記錄下來渠抹,直到最近,終于解決了程序異常中斷這個大bug闪萄,在打包方面也有了一定經(jīng)驗梧却,所以寫下這篇博客,方便大家用作參考败去。

1 安裝打包需要的軟件環(huán)境

(Ubuntu 11.10之前)

sudo apt-get install gnupg pbuilder ubuntu-dev-tools bzr-builddeb apt-file

Ubuntu 11.10之后篮幢,可以通過如下命令安裝:

(Ubuntu 11.10之后)

sudo apt-get install packaging-dev

2 創(chuàng)建自己的GPG key

pub 2048R/AA08D2A8 2014-03-25

密鑰指紋 = 5EAC 8E2F 5507 E388 E316 3AD9 F894 2D76 AA08 D2A8

uid zhangxin (openyoudao) <justzx2011@gmail.com>

sub 2048R/8A54FE05 2014-03-25

其中AA08D2A8是生成的key

將key的公共部分上傳到key server,這樣全世界的開發(fā)者就可以根據(jù)你的key來識別你的信息和文件:

gpg --send-keys --keyserver keyserver.ubuntu.com <KEY ID>

3 創(chuàng)建你的ssh key


(ssh 代表安全的shell ,這里用來安全的把文件上傳到PPA發(fā)布平臺)

ssh-keygen -t rsa

4 創(chuàng)建pbuilder

(允許開發(fā)者在本地創(chuàng)建PPA包)

pbuilder-dist <release> create where <release> is for example raring, saucy, trusty or in the case of Debian maybe sid.This will take a while as it will download all the necessary packages for a “minimal installation”.These will be cached though.

5 創(chuàng)建Launchpad賬戶

官網(wǎng)注冊

上傳GPG key到Launchpad为迈,通過如下指令查看自己的GPG key:

gpg --fingerprint <email@address.com>

會得到如下結(jié)果:

pub 4096R/43CDE61D 2010-12-06

Key fingerprint = 5C28 0144 FB08 91C0 2CF3 37AC 6F0B F90F 43CD E61D

uid Daniel Holbach <dh@mailempfang.de>

sub 4096R/51FBE68C 2010-12-06

運行如下指令提交你的key到Ubuntu keyserver:

gpg --keyserver keyserver.ubuntu.com --send-keys 43CDE61D

登陸個人key管理面板

將Key fingerprint拷貝到文本框,點擊 “Import Key”.

如果導(dǎo)入成功缺菌,系統(tǒng)會發(fā)送一封郵件到你的郵箱葫辐,用來對導(dǎo)入的key進(jìn)行驗證

其中郵件的內(nèi)容為不可讀的,需要編譯,內(nèi)容類似于:

-----BEGIN PGP MESSAGE-----

Version: GnuPG v1.4.3 (GNU/Linux)

hQIOA0THhKozD+K5EAf9F3PcOL2iU6onH2YsvB6IKDXNxbK0NBVy6ppxcNq8hoTe

cuHvzWLFfh1ehhSNe1V6xpuFnt5sJoeA4qEEOxez3HmY80tKIKMPLyhC/8JiSIW9

fwuxj4C0F6pdyrpvGbQAzfPEFk/P1AtIHXm4WLXduhBT7YEpmUk/I4A/KlSrKoiP

J5vBtbroUyp2jvIhDUmY7ToU+ifrDe3+VP1ZzSEJzOOXec9oPbcbvf5NptXA7Hbp

S0ElBAcLjKpAu7VKotCwFZIsVXDHT/mxf2qm88bGIrlXS5uTzvmyhQps1KmyNiCz

I0i5kSVvHZWyVZ+8FrROLqYAqqnEIMg9hUnbFAervgf/YiYs0xxWLYf9e14eoMZA

ranGT72q/JHmBNBYenOijaquFNi1TH5J8Udtt2RfdyRUlmGilxRvtIYL8gpnuNpS

+GHOoBWUN2f4nawaDeqgrf6Nt3qQWWLO4iJPgieejFP2FP6zkLme1t7dXo+z1ary

EZuxSLtKIWkOFEZ8Gcn02hBgOhJZucnkF6BmVW9dr1C4QEAmGM631uqfsp5PapAn

yjHbEU1L2R9i7vPtJNRr6ubFLWg1Yhfv63ByxSx/WQHMMqlrbL+moXBGED3L2hM8

7FP9eapBRgmS+Bda9ArcGMUElTOkWoUYIOPyLOYmo15LvbxHOVaXjn7+fDgr2S1J

R9LArwHycmdKKelRww+ZvylHIfq8xy10atRQIYawchh9A1myXD1TlWbrrIkodQJF

iEpO2i1LKvqwZHOx3szT4hF+44tNFzQIL1j+zF5Hrt2WOTnS5WXGgGRtfEd8F7fN

khQZOAdhwrnlY+yknruC8Y8Jm8vM57+KnPgBfvxuxzLX1XFTfTZCHXeUmwwu3mga

m+6WzckeBGBDHKK6GqwFoOAykTwjyqOZaty7DPHeoINc0tLMVr9Ks64DScf8bgh4

MkNonA0YhMQbkmwRc33APw441+/iLw5gqndQdX44kKqC71dG6LqanAOjD29Xj3JV

ZBsjg95Jrx7Sx+i/V0PUeaU9QjCT0Q1jEy1Bcs8NYtTJnpG+4oHYJ0pyiGxIquQH

V9E+hW6Qehx5DbsIXEvfeaBBHOfAHHOhUH14WK4bsJWm8wZ50XiYBZrNFOqzsm13

2STcY4VIoJp3Uw2qNyvZXQUhpndlfgQGO14CMSadzDn6Vts==hTe6

END PGP MESSAGE-----

將郵件中這些內(nèi)容拷貝到一個文件中,例如:file.txt伴郁,然后執(zhí)行如下命令:

gpg --decrypt file.txt

此時會提示你輸入之前設(shè)置的key密碼耿战,驗證成功后,會有如下提示:

Please go here to finish adding the key to your Launchpad account:

[[https://launchpad.net/token/bP56TDKg8HXQbBs6LsN0]]

點擊該鏈接焊傅,選擇continue , 完成GPG key 上傳

6 上傳 ssh key


打開~/.ssh/id_rsa.pub文件,將其中的內(nèi)容拷貝到帳號的add ssh key文本框中剂陡,選擇導(dǎo)入后完成上傳?

7 配置 Bazzar


(一個版本控制軟件,可以儲存代碼)

首先告訴Bazzar你是誰:

bzr whoami "xin zhang <justzx2011@gmail.com>"

bzr launchpad-login justzx2011(我的Launchpad賬戶id)

Bazaar in five minutes

官方教程

開源許可證

8 配置你的shell環(huán)境變量


打開~/.bashrc 文件,在文件開頭加上如下內(nèi)容

export DEBFULLNAME="xin zhang"

export DEBEMAIL="justzx2011@gmail.com"

然后執(zhí)行:$source ~/.bashrc

9 安裝編譯工具

sudo apt-get install build-essential dh-make

10 下載Openyoudao源碼包


Openyoudao代碼托管在Github上,下載源碼包狐胎,首先感謝林納斯·托瓦茲發(fā)明了Git鸭栖,為世界創(chuàng)造了一個知識傳遞平臺.

wget https://github.com/justzx2011/openyoudao/archive/beta0.2.tar.gz

11 開始打包

a 根據(jù)模板生成配置文件

bzr-builddeb includes a plugin to create a new package from a template. The plugin is a wrapper around the dh_make command, You should already have these if you installed packaging-dev. Run the command providing the package name, version number, and path to the upstream tarball:

$bzr dh-make openyoudao 0.2 beta0.2.tar.gz

Fetching tarball

Looking for a way to retrieve the upstream tarball

Upstream tarball already exists in build directory, using that

Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch?

[s/i/m/l/k/n] s

Maintainer name : xin zhang

Email-Address : justzx2011@gmail.com

Date : Mon, 31 Mar 2014 22:06:24 +0800

Package Name : openyoudao

Version : 0.2

License : blank

Type of Package : Single

Hit <enter> to confirm:

Skipping creating ../openyoudao_0.2.orig.tar.gz because it already exists Currently there is no top level Makefile. This may require additional tuning.Done. Please edit the files in the debian/ subdirectory now. You should also check that the openyoudao Makefiles install into $DESTDIR and not in / . Package prepared in /home/justzx/workspace/package/openyoudao

b 修改配置文件

參照打好的包: https://github.com/justzx2011/openyoudao/tree/beta

c 將修改提交到打包分支

bzr commit -m "Initial commit of Debian packaging."

d 在當(dāng)前環(huán)境中編譯軟件包

bzr builddeb -- -us -uc

e 檢測軟件包是否存在bug

lintian openyoudao_0.2-1ubuntu1.dsc

f 給軟件包簽名(需要輸入之前設(shè)置的密碼)

debuild -S -kAA08D2A8

12 上傳軟件包

a 編輯~/.dput.cf

通過上面的一系列流程握巢,我們生成了一組經(jīng)過數(shù)字簽名的文件晕鹊,最后需要做的是將這些文件上傳到ppa官方的ftp,此時會用到一個叫dput的軟件暴浦,要使用dput溅话,首先要編輯文件~/.dput.cf,沒有就創(chuàng)建.在這個文件里面定義要上傳的Launchpad賬號歌焦。我的~/.dput.cf文件內(nèi)容如下:

[youdao-beta0.2]

fqdn = ppa.launchpad.net

method = ftp

incoming = ~justzx2011/openyoudao-v0.2/ubuntu/

login = anonymous

allow_unsigned_uploads = 0

b 執(zhí)行上傳

dput my-ppa openyoudao_0.2-1ubuntu1_source.changes

上傳成功后會收到一封ppa發(fā)來的郵件飞几,內(nèi)容如下:

Accepted:

OK: openyoudao_0.2.orig.tar.gz

OK: openyoudao_0.2-1ubuntu1.debian.tar.gz

OK: openyoudao_0.2-1ubuntu1.dsc

-> Component: main Section: net

openyoudao (0.2-1ubuntu1) trusty; urgency=low

* fix issue#8, exception interrupt

https://launchpad.net/~justzx2011/+archive/openyoudao-v0.2

You are receiving this email because you are the uploader of the above

PPA package.

接下來就靜待官方編譯吧~

編譯完成后,就可以通過ppa源進(jìn)行安裝了

13 感謝

最后感謝師弟xdlailai独撇,在第一次發(fā)布PPA時屑墨,咬緊壓根啃了N多文檔躁锁,終于為PPA軟件包發(fā)布摸清了路子,完成了Alpha版本的發(fā)布绪钥,現(xiàn)在大家都已經(jīng)工作了灿里,開始為生活奔波,很懷念學(xué)校那段日子程腹,雖然只是個菜鳥匣吊,但是仍然不分晝夜的支持開源,希望大家可以找到新的奮斗方向寸潦,堅持自己想做的.

初次嘗試制作ppa軟件包色鸳,如有不足之處還請大家指正.

mailto:justzx2011@gmail.com

主頁:http://openyoudao.org

最新鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市见转,隨后出現(xiàn)的幾起案子命雀,更是在濱河造成了極大的恐慌,老刑警劉巖斩箫,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吏砂,死亡現(xiàn)場離奇詭異,居然都是意外死亡乘客,警方通過查閱死者的電腦和手機狐血,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來易核,“玉大人匈织,你說我怎么就攤上這事∧抵保” “怎么了缀匕?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長碰逸。 經(jīng)常有香客問我乡小,道長,這世上最難降的妖魔是什么饵史? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任劲件,我火速辦了婚禮,結(jié)果婚禮上约急,老公的妹妹穿的比我還像新娘零远。我一直安慰自己,他們只是感情好厌蔽,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布牵辣。 她就那樣靜靜地躺著,像睡著了一般奴饮。 火紅的嫁衣襯著肌膚如雪纬向。 梳的紋絲不亂的頭發(fā)上择浊,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機與錄音逾条,去河邊找鬼琢岩。 笑死,一個胖子當(dāng)著我的面吹牛师脂,可吹牛的內(nèi)容都是我干的担孔。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼吃警,長吁一口氣:“原來是場噩夢啊……” “哼糕篇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起酌心,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤拌消,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后安券,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體墩崩,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年侯勉,在試婚紗的時候發(fā)現(xiàn)自己被綠了泰鸡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡壳鹤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出饰迹,到底是詐尸還是另有隱情芳誓,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布啊鸭,位于F島的核電站锹淌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赠制。R本人自食惡果不足惜赂摆,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望钟些。 院中可真熱鬧烟号,春花似錦、人聲如沸政恍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽篙耗。三九已至迫筑,卻和暖如春宪赶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脯燃。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工搂妻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辕棚。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓欲主,卻偏偏與公主長得像,于是被迫代替她去往敵國和親坟募。 傳聞我的和親對象是個殘疾皇子岛蚤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容

  • RPM/DPKG 兩大陣營簡介在 GNU/Linux( 以下簡稱 Linux) 操作系統(tǒng)中,RPM 和 DPKG ...
    空語閱讀 1,418評論 0 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理懈糯,服務(wù)發(fā)現(xiàn)涤妒,斷路器,智...
    卡卡羅2017閱讀 134,637評論 18 139
  • 各大Linux發(fā)行版軟件包管理參考(http://www.freeoa.net/osuport/botinstal...
    IRONYT閱讀 7,268評論 0 12
  • 借我一個暮年赚哗, 借我碎片她紫, 借我瞻前與顧后, 借我執(zhí)拗如少年屿储。 借我后天長成的先天贿讹, 借我變?nèi)绮辉?..
    詩語遠(yuǎn)方的溫度閱讀 295評論 3 1
  • 記憶里的黑窟窿總是不斷的冒著冰涼的泉水,不慌不忙够掠,就那樣默默的涌出民褂。 初次來到這里,好奇的眼眸必將投向不遠(yuǎn)處的...
    噠顏閱讀 660評論 13 11