2012-11-15 145 views
0

我想在嵌入式Linux設備上使用setcap作爲libcap-bin的一部分。我使用buildroot,看到它具有可用的libcap和libcap-ng包,但不包含libcap-bin。libcap-bin for ARM

我搜索了一下,但無法找到libcap-bin的源代碼來生成ARM目標板的setcap二進制文件。

在Ubuntu我只是安裝:

sudo apt-get install libcap-bin 

我在哪裏可以得到的來源和如何建立的libcap斌爲我的ARM板?

+0

buildroot的「libcap」包不包含setcap嗎? libcap-bin只是一個將組件的二進制代碼,開發支持和文檔部分拆分爲單獨的「-bin」,「-dev」和「-doc」包的程序包管理工具。 – unixsmurf

+0

我檢查了構建目錄,似乎setcap.c在那裏。但是,Makefile需要聲明LIBATTR來構建它。在Buildroot中沒有Libattr,我沒有爲Google找到很多信息。 – PhilBot

回答

2

正如其他人所解釋的那樣:在Ubuntu/Debian發行版中看到的軟件包與您在Buildroot中看到的軟件包之間不會有1:1的匹配。

Ubuntu/Debian軟件包採用源碼包(本例中爲libcap)並從它們創建多個二進制包,以便僅安裝庫,庫+開發文件或庫+程序等。例如,查看http://packages.ubuntu.com/source/quantal/libcap2,它是libcap2源代碼包的參考頁面:它提供了從源代碼包在Ubuntu中生成的二進制包列表。

另一方面,在Buildroot中,只有源碼包的概念。 Buildroot中的一個包==來自給定軟件組件的一個tar包。因此,只有package/libcap。目前,package/libcap/libcap.mk被寫入僅安裝庫,因爲沒有人需要setcapgetcap程序。但是,您可以擴展package/libcap/libcap.mk(也可能是package/libcap/Config.in)以啓用編譯程序。正如另一位評論者指出的那樣,您需要添加attr作爲依賴關係(儘管評論者錯誤地說Buildroot沒有attr:它確實有,見package/attr)。

+0

感謝您的回答 - 我瞭解這些差異,現在可以使用Buildroot來構建它。 – PhilBot