2014-01-10 63 views
2

我正在嘗試爲支持不同體系結構的一些機器人控制器代碼創建包,例如i386和armhf(用於Raspberry Pi)。我不知道Debian是如何打算這樣做的。有沒有辦法創建一個包含二進制文件的.deb包?或者我必須爲每個架構創建一個獨立的.deb包,我知道該怎麼做?如何爲幾種體系結構創建二進制Debian軟件包?

在後一種情況下,如果我給這兩個包使用相同的包名稱,我不能將它們都放在同一個存儲庫中,但如果它們具有不同的名稱,用戶將必須指定他們想要安裝的包使用apt-get。有沒有解決這個問題的方法?

回答

1

對於不同的體系結構,您需要有不同的二進制包,除非您打包的內容被解釋並且未編譯。

如果您製作的軟件包與所有體系結構兼容,則debian/control文件的Architecture:字段必須爲any。這是告訴你,該軟件包可以在任何Debian支持的體系結構中構建。然後,你只需編譯它並交叉編譯到i386和armhf。

關於你的第二個問題,你可以。事實上,這是在官方Debian倉庫中完成的。二進制包在包含體系結構的文件名中有一個後綴。看到這個example。當用戶安裝你的軟件包時,他們不需要指定自動檢測到的架構。

+1

這工作。請注意下一步:要成功創建存儲庫的Packages.gz索引文件,必須使用dpkg-scanpackages的-m選項。否則,它只列出其中一個軟件包。 – user2469832