2016-11-08 31 views
4

我可以在應用程序附帶的Cloud Foundry buildpack或.profile腳本中使用apt-get或其他包管理器;如果可以的話,該怎麼做?我希望按照與dockerfile相同的方式執行此操作,但在我的情況下,無論是否帶有sudo都不起作用。在Cloud Foundry實例中使用包管理器

回答

3

我可以在應用程序隨附的Cloud Foundry buildpacks或.profile腳本中使用apt-get或其他包管理器;如果可以的話,該怎麼做?

號運行apt-get或包管理器通常會需要root權限,你不獲得root權限時生成包運行或當你的應用程序運行(這是有區別的W /泊塢)。這就是說,你可以做任何不需要root權限的東西,所以如果你發現一個安裝在vcap用戶主目錄下的包管理器,並且不需要root權限,那麼你可以使用它。

這取決於您要安裝的內容,但在某些情況下,您可以通過下載.deb或.rpm文件並手動提取二進制文件來解決此問題。這通常適用於像共享庫這樣的東西。只需下載與您的堆棧相匹配的預編譯二進制文件(cflinuxfs2 == Ubuntu Trusty)。對於其他事情,您可以從源代碼構建自己的二進制文件。這是構建包的作用,請參閱binary-builder

希望有幫助!

+0

因此,例如,如果我想爲php buildpack添加一個擴展(如php-apc或pwgen),而不是從apt-get安裝它,只需將.so文件複製到其正確目錄? –

+0

要擴展Daniel的答案,您可能不希望在構建包內發生非確定性操作。例如,當您使用「apt-get」時,您可能會獲得不同版本的依賴項,具體取決於應用程序的演示內容。 –

+0

@QuanTranGia - 看看上面提到的二元構建器。這就是我們如何構建PHP和所有擴展。如果您需要一個不是開箱即用的擴展程序,請提交問題(或者更好的是PR),並且很可能會添加。 –