有人在 Ubuntu 12.04 上构建过 php5-xapian 吗?

有人在 Ubuntu 12.04 上构建过 php5-xapian 吗?

由于 Xapian 已从 Ubuntu 存储库中删除,我正尝试按照此处的说明构建自己的 .deb:

http://article.gmane.org/gmane.comp.search.xapian.general/8855

http://beeznest.wordpress.com/2011/07/06/howto-build-your-own-binaries-of-php-xapian-bindings-for-debian/

我只能通过省略“rm debian/control”来使事情在最初几秒钟后继续进行,但如果我这样做,看起来 Python 和 Ruby 绑定正在正确构建和传递其版本的 smoketest。

但是,构建的 PHP 部分失败并出现以下错误:

/home/charlie/xapian-bindings-1.2.8/php/smoketest.php:38: include(xapian.php): failed to open stream: No such file or directory
FAIL: smoketest.php

/home/charlie/xapian-bindings-1.2.8/php/php5/ 中有一个 xapian.php 文件,但是如果我将其复制到 /home/charlie/xapian-bindings-1.2.8/php/ 或在 smoketest.php 中更改它的路径,则构建会在开始时失败:

dpkg-source: error: aborting due to unexpected upstream changes

不幸的是,我脱离了从源代码构建的舒适区。有人有什么想法吗?

编辑詹姆斯的回答:

如果我严格按照说明操作,构建会很顺利。我最初在测试虚拟机上构建了它,但由于 PHP 本身没有安装,因此无法构建 PHP 包。很明显,这是个陷阱,但值得一提。

安装产生以下错误:

Setting up php5-xapian (1.2.8-1) ...
Processing triggers for libapache2-mod-php5 ...
dpkg (subprocess): unable to execute installed post-installation script (/var/lib/dpkg/info/libapache2-mod-php5.postinst): Permission denied                                                               ssion denied
dpkg: error processing libapache2-mod-php5 (--install):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 libapache2-mod-php5

它只是一个用于重新启动 Apache 的脚本。在运行 sudo dpkg -i php5-xapian_*.deb 之前停止 Apache 可避免出现错误。Xapian 现在显示在 phpinfo() 中。工作完成了。谢谢。

答案1

问题在于,Debian 构建系统在与源文件不同的目录中构建,而这种方法目前在运行 PHP 绑定 smoketest 时存在问题。在正确修复此问题之前,您可以通过运行以下命令来使一切正常运行(改编自有关 Debian 和 Ubuntu 的 PHP 绑定的 Xapian 常见问题解答,基于您已经找到的信息):

sudo apt-get build-dep xapian-bindings
sudo apt-get install php5-dev php5-cli devscripts
apt-get source xapian-bindings
cd xapian-bindings-1.2.*
rm -f debian/control debian/*-stamp
env PHP_VERSIONS=5 debian/rules maint
sed -i 's/include_path=php5$/include_path=$(srcdir)\/php5/' php/Makefile.in
dpkg-source --commit

此时,系统会提示您输入补丁名称(使用类似 fix-php-buildtests 的名称),然后将其转储到编辑器中以记录该补丁,但您不必关心这一点,因此只需保存并退出编辑器即可。然后:

debuild -e PHP_VERSIONS=5 -us -uc 
cd ..
sudo dpkg -i php5-xapian_*.deb

您已经完成。

处理此问题的邮件列表主题尚未出现在 GMane 中,但是可以在 Xapian mailman 档案中找到

相关内容