星期五, 9月 24, 2010

上傳 debian package 到 PPA

去年就試著想放東西到 PPA 上,可是受限於公司網路環境與個人鬼混的因素,導致今天才真正把東西放上去。這部份中文的資訊很少,可能大家看PPA說明就都搞定了吧。

你比較會遇到的幾個問題:一個是 PGP、一個是如何打包 debian package,這邊假設你都會了。(PGP 可以去 Jedi 那邊找介紹文)

以下,就開始。你必須要先有 PGP key,然後到 launchpad 註冊,成為會員。

這篇:Personal Package Archives來做,我整理重點如下:
  1. profile頁,把 ppa 打開。
  2. 填 OpenPGP public key。
  3. Sign conduct:其實就下載文字檔,然後打指令,用gpg sign過(文章裡有指令),產生 .asc 檔案,再把檔案內容貼上去,送出即可。


上傳可參考這篇:Uploading a package to a PPA,package 有些要注意的事項,例如 changelog,在上面那一篇有說明,就是一般 debian changelog 裡是寫 unstable、experiment,在這裡要改為 lucid、hardy 等。

大致摘要如下:
  1. 準備好你要上傳的 package,用 dpkg-buildpage -S -k<your_gpg_private_key>,做出 source package。
  2. 到上一層目錄,找到 P_V-0_source.changes (P 表示你的 project name,V 表示版本)
  3. 上傳:輸入 dput ppa:your_ip-id/ppa P_V-0_source.changes
  4. 上傳順利的話,接下來就等回信了~


dput 預設是用 ftp 上傳,如果不行,可以試試 sftp:
  1. profile 填 ssh key
  2. 新增 ~/.dput.cf ,裏面放:
    [my-ppa-lucid]
    fqdn = ppa.launchpad.net
    method = sftp
    incoming = ~<your_launchpad_id>/<ppa_name>/ubuntu/<ubuntu_code_name>
    login = <your_launchpad_id>
    allow_unsigned_uploads = 0
    ,your_launchpad_id、ppa_name、ubuntu_code_name 不要忘了替換掉,ubuntu_code_name 就看你裝的 ubuntu 版本,填 lucid、hardy...等等的
  3. 上傳指令改用 dput my-ppa-lucid P_V-0_source.changes


回信不會那麼快,要稍微等一下,如果有問題,裏面會有錯誤訊息,不知道怎麼辦的話,很簡單,到 Questions for Soyuz 找答案。

最後成功的話,會有回信說 Accept,這時候再到你的 ppa 頁面,就會看到 package 了,不過這時候還在 building,需要等一陣子。

到這裡,應該就大功告成了。之後就可以很方便的用 add-apt-repository 來把自己 ppa 加進去,然後安裝、升級 package 啦~

沒有留言: