Centos 根据操作系统安装软件包

Centos 根据操作系统安装软件包,centos,debian,composer-php,Centos,Debian,Composer Php,本周末我们一直在使用Platform.sh进行测试,它使用debian作为其操作系统。应用程序的部署很容易,直到我们开始测试一些核心功能,比如创建PDF PDF是使用wkhtmltopdf生成的,根据操作系统的不同,它有不同的二进制文件。我们自己的平台由CentOS7机器组成,因此我们让composer安装CentOS7特定的软件包:对于Debian,需要此软件包: 因此,基本上问题在于格式的不一致性。看到composer允许您为PHP和扩展定义特定的版本,但不幸的是无法解决这个问题 不幸的是,

本周末我们一直在使用Platform.sh进行测试,它使用
debian
作为其操作系统。应用程序的部署很容易,直到我们开始测试一些核心功能,比如创建PDF

PDF是使用
wkhtmltopdf
生成的,根据操作系统的不同,它有不同的二进制文件。我们自己的平台由CentOS7机器组成,因此我们让composer安装CentOS7特定的软件包:对于Debian,需要此软件包:

因此,基本上问题在于格式的不一致性。看到composer允许您为PHP和扩展定义特定的版本,但不幸的是无法解决这个问题

不幸的是,以下挂钩也解决了部署错误:

composer remove rvanlaak/wkhtmltopdf-amd64-centos7 --no-update
composer require h4cc/wkhtmltopdf-amd64:~0.12 --no-update
composer update

由于我们不能在platform.sh上选择操作系统,我们如何让composer检查特定的操作系统

您的手动步骤在部署过程中导致了什么错误?由于只读文件系统,在platform.sh上调试有点困难。日志输出仅在
编写器更新之后显示
返回的非零退出状态1
编写器删除
编写器要求
将更新您的
编写器.json
文件,该文件将在只读文件系统上失败。看起来,在将文件部署到platform.sh之前,您必须修改该文件。这些命令发生在构建挂钩期间,在包被传送到其最终位置之前,因此此时它应该仍然是可写的。但要继续使用composer,据我所知,不可能通过composer对操作系统进行检查?这应该是捆绑包在对二进制文件进行符号链接时应该做的事情?另一个更新:从钩子中删除
--no update
参数,以及composer.json
post update cmd
中的
clearCache
installAssets
命令解决了这个问题。Platform.sh builder与数据库还没有关系,这两个命令需要数据库,因此我们只能在
deploy
钩子中执行这两个命令。