我正在使用Jenkins构建RPM(在现有项目中-我只是对源代码进行了窥视,而自己没有创建此代码)。在“解决依赖关系”期间,确定必须安装php74-syspaths。
---> Package php-mysqlnd.x86_64 0:5.4.45-17.el7.remi will be installed
--> Processing Dependency: php-pdo(x86-64) = 5.4.45-17.el7.remi for package: php-mysqlnd-5.4.45-17.el7.remi.x86_64
---> Package php-xml.x86_64 0:5.4.45-17.el7.remi will be installed
---> Package php74-syspaths.x86_64 0:1.0-1.el7.remi will be installed
--> Processing Dependency: php74-runtime(x86-64) = 1.0-1.el7.remi for package: php74-syspaths-1.0-1.el7.remi.x86_64
--> Processing Dependency: php74-php-common(x86-64) for package: php74-syspaths-1.0-1.el7.remi.x86_64
--> Processing Dependency: php74-php-cli(x86-64) for package: php74-syspaths-1.0-1.el7.remi.x86_64
---> Package pkgconfig.x86_64 1:0.27.1-4.el7 will be installed
1)我不清楚我为什么要安装php74-syspaths。它未在我的rpmlist.txt中列出,也未在我的.spec文件中指定。此外,日志记录没有明确指出对php74-syspaths有依赖性。
2)php74-syspaths的实际用途是什么。据我所知,在使用“软件集合”时会使用* -syspaths。但据我所知,我们没有使用
scl
。3)为什么是php74?最新的稳定PHP是7.3。请参见https://www.php.net/downloads.php。
4)此
php74-syspaths
表示已安装php74-php-common
。稍后与php-common-7.3.10-1.el7.remi.x86_64
所需的php-mysqlnd
冲突。一些更多的细节:php74-syspaths
取决于:php74-php-common
1285 ---> Package php74-syspaths.x86_64 0:1.0-1.el7.remi will be installed
1286 --> Processing Dependency: php74-runtime(x86-64) = 1.0-1.el7.remi for package: php74-syspaths-1.0-1.el7.remi.x86_64
1287 --> Processing Dependency: php74-php-common(x86-64) for package: php74-syspaths-1.0-1.el7.remi.x86_64
1288 --> Processing Dependency: php74-php-cli(x86-64) for package: php74-syspaths-1.0-1.el7.remi.x86_64
php-pdo
取决于php-common.x86_64 0:7.3.10-1.el7.remi
:1466 ---> Package php-pdo.x86_64 0:7.3.10-1.el7.remi will be installed
1467 --> Processing Dependency: php-common(x86-64) = 7.3.10-1.el7.remi for package: php-pdo-7.3.10-1.el7.remi.x86_64
1468 ---> Package php74-php-cli.x86_64 0:7.4.0~rc3-24.el7.remi will be installed
1469 ---> Package php74-php-common.x86_64 0:7.4.0~rc3-24.el7.remi will be installed
1470 --> Processing Dependency: php74-php-json(x86-64) = 7.4.0~rc3-24.el7.remi for package: php74-php-common-7.4.0~rc3-24.el7.remi.x86_64
因此,它将安装:
php-common.x86_64 0:7.3.10-1.el7.remi
,而php74-php-common.x86_64 0:7.4.0~rc3-24.el7.remi
早已安装。这会引起冲突吗?1550 ---> Package php-common.x86_64 0:7.3.10-1.el7.remi will be installed
1551 --> Processing Dependency: php-json(x86-64) = 7.3.10-1.el7.remi for package: php-common-7.3.10-1.el7.remi.x86_64
冲突显示在最后:
1608 --> Running transaction check
1609 ---> Package dejavu-fonts-common.noarch 0:2.33-6.el7 will be installed
1610 --> Processing Conflict: php74-syspaths-1.0-1.el7.remi.x86_64 conflicts php-common
1611 --> Finished Dependency Resolution
1612 Error: php74-syspaths conflicts with php-common-7.3.10-1.el7.remi.x86_64
为了解决这些问题/问题,我想我必须做很多研究。
最佳答案
存在syspaths软件包,以便能够安装SCL并将其用作默认系统版本。它适用于各种收藏,包括官方收藏。
我唯一可以看到此程序包被拉到哪里的情况是,某些程序包需要/usr/bin/php
,它是此文件的一部分。这样的软件包应该需要php-cli
代替。
我将尝试看看是否可以改进此方法,但并没有真正看到如何做。