我在詹金斯上运行composer install
时遇到困难。
我有一份要运行composer install
的詹金斯工作。我已经安装了php7.2和composer。运行命令时,出现以下错误:
composer install
Problem 1
- teamtnt/tntsearch v1.3.2 requires ext-pdo_sqlite * -> the requested PHP extension pdo_sqlite is missing from your system.
- teamtnt/tntsearch v1.3.2 requires ext-pdo_sqlite * -> the requested PHP extension pdo_sqlite is missing from your system.
- Installation request for teamtnt/tntsearch v1.3.2 -> satisfiable by teamtnt/tntsearch[v1.3.2].
因此,我使用以下命令安装sqlite:sudo apt-get install php7.2-sqlite3
在此之后,我得到了额外的警告,并且错误仍然存在。
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlite.so'
(tried: /usr/lib/php/20170718/pdo_sqlite.so (/usr/lib/php/20170718/pdo_sqlite.so:
undefined symbol: sqlite3_column_table_name), /usr/lib/php/20170718/pdo_sqlite.so.so
(/usr/lib/php/20170718/pdo_sqlite.so.so: cannot open shared object file:
No such file or directory)) in Unknown on line 0
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.
Problem 1
- teamtnt/tntsearch v1.3.2 requires ext-pdo_sqlite * -> the requested PHP extension pdo_sqlite is missing from your system.
- teamtnt/tntsearch v1.3.2 requires ext-pdo_sqlite * -> the requested PHP extension pdo_sqlite is missing from your system.
- Installation request for teamtnt/tntsearch v1.3.2 -> satisfiable by teamtnt/tntsearch[v1.3.2].
当我进入Jenkins框并从工作区目录运行composer install
时,一切都会按预期运行,并且生成的供应商目录没有错误。
我花了很多时间在StackOverflow上寻找现有问题的答案。
我清除了所有不是php7.2的内容,并删除了我计算机的所有以前版本。
我还安装了php7.2-pdo_sqlite,并确保将其显示在php.ini文件中。
我也尝试过完全删除php(并使用php -v
检查),然后重新安装php7.2。
当我运行php --ini
时,我会看到/etc/php/7.2/cli/conf.d/20-pdo_mysql.ini,并且
/etc/php/7.2/cli/conf.d/20-pdo_sqlite.ini显示在列表中。
我还授予了/usr/lib/php/20170718/pdo_sqlite.so的读取权限,以防它是由于权限错误引起的。
我还能做些什么来解决以上错误? -我的目标是能够运行作曲家安装。
答案 0 :(得分:0)
如果您的构建管道不需要安装sqlite
,则可以使用--ignore-platform-reqs
绕过平台要求检查,如下所示:
composer install --ignore-platform-reqs
-ignore-platform-reqs:忽略php,hhvm,lib- *和ext- *要求,即使本地计算机不满足要求,也强制安装 这些。另请参阅平台配置选项。
不幸的是,如果您有断言sqlite
功能的测试,那么这不是解决方案。