MacOs 10.12.6:安装 Xapian 时出错:不允许操作

MacOs 10.12.6 : Error while installing Xapian : Operation Not permitted

我正在尝试在 MACOS 10.12.6 上从源代码安装 xapian。 我能够构建源代码但无法安装它,

错误是:

/bin/sh ../libtool   --mode=install /usr/bin/install -c   xapian.la 
'/usr/lib/php/extensions/no-debug-non-zts-20131226'
libtool: install: /usr/bin/install -c .libs/xapian.so 
/usr/lib/php/extensions/no-debug-non-zts-20131226/xapian.so
install: /usr/lib/php/extensions/no-debug-non-zts-20131226/xapian.so: 
Operation not permitted
make[5]: *** [install-phpextLTLIBRARIES] Error 71
make[4]: *** [install-am] Error 2

我在 xapian 目录中遵循了这些步骤:

./bootstrap
./configure --without-perl --without-tcl --prefix='/usr/local'
make
sudo make install

如果有人可以建议如何解决此错误,那就太好了。

最近的 macOS 版本附带了一个叫做 "System Integrity Protection"(或 SIP)的东西,它可以防止你(即使是 root)在操作系统的某些地方安装文件。您有三个主要选择:

  1. Turn off SIP(这太极端了,大多数人都不想那样做)。

  2. 将 PHP 扩展安装到自定义位置:sudo make install PHP_EXTENSION_DIR=$HOME/php-local。然后你需要设置 PHP 的 extension_dir 来找到它,比如 php -d extension_dir=$HOME/php-local -r 'require_once("xapian.php");'。在这种情况下,您可能希望将 PHP_EXTENSION_DIR 设置为 /usr/local/lib/php/extensions.

  3. homebrew 安装 PHP:brew tap homebrew/homebrew-php 并针对它构建 Xapian 绑定(这可能需要更多工作)。

当然,如果您不需要 PHP 绑定,您可以像禁用 Perl 和 TCL 绑定(在 macOS 上有同样的问题)一样禁用构建它们:./configure --without-perl --without-tcl --without-php --prefix=/usr/local.