[英]How to install a PECL package with composer?
我希望使用 Composer 安裝 PEAR 包(特別是來自 pecl.php.net 的 mongodb)。
我可以使用以下 composer.json 從主“梨”頻道安裝軟件包:
{ "repositories": [{
"type": "pear",
"url": "https://pear.php.net"
}],
"require": { "pear-pear/http": "*" }
}
(注意:來自https://getcomposer.org/doc/05-repositories.md#pear的原始示例不起作用)
但我得到:
在任何版本中都找不到請求的包 pear-pecl/mongodb,包名可能有拼寫錯誤
...當我嘗試設置“pecl”頻道時:
"require": { "pear-pecl/mongodb": "*" }
我可以看到帶有pear list-channels
的 pecl pear list-channels
:
$ pear list-channels
Registered Channels:
====================
Channel Alias Summary
doc.php.net phpdocs PHP Documentation team
pear.php.net pear PHP Extension and Application
Repository
pecl.php.net pecl PHP Extension Community Library
我可以使用pear install pecl/mongodb
安裝相同的包。
pecl/mongodb
是一個二進制驅動程序。 我看不出 composer 如何能夠在本地將它安裝到項目中。 我認為您無法通過 Composer 安裝任何 PECL 擴展。
Composer 可以管理項目的 PHP 依賴項,這些依賴項需要包含有效的composer.json
文件才能被識別為包。
如果您檢查pecl/mongodb repo ,您將看不到這樣的東西。 它是一個 C 語言項目,需要作為運行時擴展進行編譯和安裝。
PECL 擴展並不打算安裝在項目上,這樣做也沒有意義; 但需要為 PHP 運行時安裝和啟用。 當您運行pear install pecl/mongodb
您正在為所有使用相同運行時的項目安裝二進制擴展。
由於 pecl.php.net 存儲庫已損壞(請參閱https://bugs.php.net/bug.php?id=76719和相關票證),因此無法使用 Composer 安裝 PECL 軟件包。
它可以添加到 composer.json 中
{ "repositories": [
{ "type": "pear",
"url": "https://pecl.php.net"
}],
"require": {
"pear-pecl/mongodb": "*"
}}
但由於https://pecl.php.net/rest/c/Authentication/packagesinfo.xml 中的XML 損壞,安裝失敗
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.