Cloud foundry 在Cloud Foundry实例中使用package manager

Cloud foundry 在Cloud Foundry实例中使用package manager,cloud-foundry,Cloud Foundry,我可以在Cloud Foundry BuildPack或应用程序附带的profile脚本中使用apt get或其他包管理器吗;如果我能,怎么做?我希望以与dockerfile相同的方式进行操作,但在我的情况下,无论是否使用sudo,它都不起作用 我可以在Cloud Foundry BuildPack或应用程序附带的.profile脚本中使用apt get或其他包管理器吗;如果我能,怎么做 不可以。运行apt get或包管理器通常需要根访问权限,而当构建包运行或应用程序运行时,您无法获得根访问权限

我可以在Cloud Foundry BuildPack或应用程序附带的
profile
脚本中使用
apt get
或其他包管理器吗;如果我能,怎么做?我希望以与dockerfile相同的方式进行操作,但在我的情况下,无论是否使用
sudo
,它都不起作用

我可以在Cloud Foundry BuildPack或应用程序附带的.profile脚本中使用apt get或其他包管理器吗;如果我能,怎么做

不可以。运行
apt get
或包管理器通常需要根访问权限,而当构建包运行或应用程序运行时,您无法获得根访问权限(这与Docker不同)

也就是说,您可以做任何不需要root访问的事情,因此,如果您发现安装在vcap用户主目录中的包管理器不需要root,那么您可以使用它

这取决于您试图安装的内容,但在某些情况下,您可以通过下载.deb或.rpm文件并手动提取二进制文件来解决此问题。这通常适用于共享库之类的东西。只需下载与堆栈匹配的预编译二进制文件(
cflinuxfs2
==ubuntutrusty)。对于其他方面,您可以从源代码构建自己的二进制文件。这就是构建包的功能,请参阅


希望有帮助

因此,例如,如果我想向php buildpack(如php apc或pwgen)添加一个扩展,而不是从apt get安装它,只需将.So文件复制到其正确的目录就可以了?要扩展Daniel的答案,您可能不希望在buildpack中发生非确定性操作。例如,当您
apt get
时,您可能会获得不同版本的依赖项,具体取决于应用程序的暂存内容。@QuanTranGia-请看上面提到的二进制生成器。这就是我们构建PHP的方式&所有的扩展。如果你需要一个不是开箱即用的扩展,提交一个问题(或者更好的是一个PR),它很可能会被添加。