在 OS X 10.11 El Capitan、macOS 10.12 Sierra、macOS 10.13 High Sierra (< 10.13.3) 上安装 pecl 和 pear

2022-08-30 09:48:14

因此,看起来/usr(以及其他目录)的新“系统完整性保护”锁定使pear和pecl成为非启动器。有没有人找到一个解决方法,而不是禁用它?


答案 1

有一种更简单的方法 - 无需禁用SIP或下载自己的副本:

sudo php /usr/lib/php/install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin

答案 2

您不应将二进制文件安装到系统 ,而是使用。/usr/usr/local


通过 Homebrew 安装时,和 命令应随 PHP 一起提供。peclpear

以下是使用最新的 Homebrew 安装 PHP 的示例:

brew install php

或特定版本:

brew install php@7.1
brew install php@5.6

要查找您的 命令,请运行:peclpear

find -L "$(brew --prefix php)" -name pecl -o -name pear

艺术

find -L "$(brew --prefix php@7.1)" -name pecl -o -name pear

如果没有,请考虑卸载以前的 PHP 版本或改为运行。reinstall

您也可以尝试通过以下方式重新链接它:

brew unlink php@7.1 && brew link php@7.1 --dry-run && brew link --overwrite --force php@7.1

否则,请手动链接它:

ln -vs "$(find -L "$(brew --prefix php@7.1)/bin" -name pecl)" /usr/local/bin
ln -vs "$(find -L "$(brew --prefix php@7.1)/bin" -name pear)" /usr/local/bin

或者直接将Pear作为Phar软件包下载:

curl -o /usr/local/bin/pear http://pear.php.net/go-pear.phar
chmod +x /usr/local/bin/pear

或者使用以下单行代码(将在Linux上运行,但不适用于Unix):

curl -sL http://pear.php.net/go-pear.phar | sudo install -v -m755 /dev/stdin /usr/local/bin/pear

推荐