2014-01-25 31 views
1

我有一個Debian軟件包,它是由i386和amd64編譯(由我自己手動),因爲它是一個封閉的源應用程序。如何在PPA中發佈i386和amd64中的封閉源代碼應用程序?

爲了避免與dput上傳到我的launchpad.net PPA時發生衝突,我在版本的最後添加了架構名稱,但是失敗了,因爲我有錯誤,說我上傳的版本是不大於上一個(上傳i386包首先工作,但然後amd64失敗)。

例如,如果包名是你好我有以下名字:

hello-1.0.0ubuntu1~precise1~i386 
hello-1.0.0ubuntu1~precise1~amd64 

移動包名架構名解決這個問題......但隨後用戶可以通過選擇合適的包名字真的不好。

例如,如果包名是你好我有以下名字:

hello-i386-1.0.0ubuntu1~precise1 
hello-amd64-1.0.0ubuntu1~precise1 

所以用戶必須做sudo apt-get install hello-i386sudo apt-get install hello-amd64

所以,問題是如何應我的名字我的包,使用戶可以執行相同的apt-get命令並安裝正確的版本?

+0

據我所知閉源應用程序不允許,除非你有商業訂閱 – Tachyons

+0

OK謝謝,但仍。即使我有商業訂閱,我仍然有問題上傳我的軟件包。那麼你有想法嗎? – ZedTuX

+0

將其更改爲ubuntu1〜precise2〜AMD64 – Tachyons

回答

1

在包名(或版本字符串)中擁有體系結構並不是一個很好的解決方案,除非您有充分的理由這麼做。

您收到版本錯誤,因爲Launchpad將源包視爲hello,並嘗試更新PPA中的hello包。但是,您的PPA中的軟件包的版本字符串比您上傳的版本字符串更大('i'大於'a')。我認爲Launchpad也會檢查主版本的版本,因此您不能在主版本庫中上傳新版軟件包的較舊版本。

據我所知,Launchpad不允許你上傳二進制文件(甚至對於閉源應用程序)。您只需上傳源代碼壓縮包和debian文件夾tarball,Launchpad將爲所有適用的體系結構構建它。這取決於debian/control文件中的內容。對於每個包

  • 如果有一行說Architecture: any,那麼Launchpad將爲(至少)amd64和i386構建包。這通常適用於任何庫和可執行文件。
  • 如果有說Architecture: all一條線,然後啓動板將建立對建設所有硬件架構這只是一個,在i386的chroot環境,與大家共享。這通常適用於任何計算機(甚至OS)中都相同的數據文件。

其他值是允許的,但這些都是常見的。

+0

謝謝你的迴應。有人告訴我,我不能將LP用於封閉源應用程序。我已經構建了我的私人APT存儲庫,所以現在我要檢查如何使其工作(我想用你描述的相同方式)。 – ZedTuX

+0

正如@Aboobacker MK所說,如果您有商業訂閱,則可以將LP用於閉源應用程序。看[這個](https://launchpad.net/+tour/join-launchpad)頁面。 – saiarcot895

+0

是的,我知道,謝謝。 – ZedTuX

相關問題