我正在使用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代替。

我将尝试看看是否可以改进此方法,但并没有真正看到如何做。

10-04 23:28