2017-06-20 71 views
0

我正在爲我的項目構建一個快照包,我有一個我只想編譯的庫。即只有/configure && make 不是:/configure && make && make installUbuntu快照插件'autotools'默認'make install'在搭建快照時跳過

正如我搜索了在Ubuntu的文檔供其捕捉,我發現:https://snapcraft.io/docs/reference/plugins/autotools

也搜尋這裏:https://github.com/search?o=desc&q=filename%3Asnapcraft.yaml+%22plugin%3A+autotools%22+&s=indexed&type=Code&utf8=%E2%9C%93

但我無法找到任何跳過make install部分。任何人都可以建議我如何做到這一點?一種骯髒的方式可能是在make install之後,我將添加一個shell腳本遞歸地刪除make install生成的文件,然後繼續進行應用程序代碼編譯。但我認爲應該有一個很好的做法。 所以請讓我知道,如果有什麼辦法可以跳過這個make install當我運行snapcraft構建捕捉包。

+0

我對抓拍並不是很熟悉,但是我已經做了很多其他格式的包裝,並且您的建議聽起來很可怕。你期望通過跳過make install來完成什麼?在這種情況下,您認爲包裹中包含什麼?因爲我的第一個猜測是「沒有」。 –

+0

我只想編譯它,我將鏈接編譯的lib與我的代碼,然後我會安裝它。我不想安裝庫二進制文件。這是我想要達到的。安裝lib會將庫二進制文件安裝到一個特定的文件夾中,該文件夾也被打包到該快照中。我不想這樣做。希望我能夠解釋'腥'部分 –

+1

你似乎在與系統工作。將庫(-ies)構建爲* shared *庫是很自然的,儘管它們專用於要打包的應用程序並動態鏈接它們。在這種情況下,您確實需要打包庫二進制文件。這種模式在一般情況下很常見,它似乎是特別針對特定目標的模式。 –

回答

0

我通過試錯法得到了答案。解決方案是:

artifacts: [.] 

at snapcraft.yaml文件。根據文檔,它使默認make install跳過。我保持它爲零,但沒有工作。但是這個工作得很好,並且被拒絕的錯誤消失了(snapcraft想安裝在系統中,因此sudo是那裏的解決方案)。