Can';在尝试为php pecl扩展模块(geoip)构建rpm时,找不到.so

Can';在尝试为php pecl扩展模块(geoip)构建rpm时,找不到.so,php,pear,pecl,geoip,Php,Pear,Pecl,Geoip,我正在尝试制作一个RPM,以便在AWS机器上轻松部署GeoipPHP模块。RPM和其他RPM将托管在只有这些机器才能访问的私有回购上。这是我正在使用的软件的一个要求,所以让我们把它留在我需要它的时候 我的第一次尝试是 $ pecl makerpm geoip WARNING: "pear makerpm" is no longer available; an improved version is available via "pear make-rpm-spec", which is avai

我正在尝试制作一个RPM,以便在AWS机器上轻松部署GeoipPHP模块。RPM和其他RPM将托管在只有这些机器才能访问的私有回购上。这是我正在使用的软件的一个要求,所以让我们把它留在我需要它的时候

我的第一次尝试是

$ pecl makerpm geoip
WARNING: "pear makerpm" is no longer available; an improved version is available via "pear make-rpm-spec", which is available by installing PEAR_Command_Packaging
公平地说,让我们安装这个
PEAR\u命令\u包装
deal并继续

$ pecl install PEAR_Command_Packaging
No releases available for package "pecl.php.net/PEAR_Command_Packaging"
install failed
好的,我可以发誓我被告知要安装这个,但是让我们试试
pear

$ pear install PEAR_Command_Packaging
Failed to download pear/PEAR_Command_Packaging within preferred state "stable", latest release is version 0.3.0, stability "alpha", use "channel://pear.php.net/PEAR_Command_Packaging-0.3.0" to install
install failed
稳定性阿尔法-嗯。。。好的,让我们看看他们有多活跃! 据了解,该项目尚未启动,最后一次启动是在2012年4月。。。那不行

关闭这条通道后,我看了看
pecl
命令本身,它似乎提供下载、构建和安装。我不想要
安装
,因为我只是在这里制作RPM,但是
下载
构建
看起来很方便:

$ pecl download geoip-1.0.8
downloading geoip-1.0.8.tgz ...
Starting to download geoip-1.0.8.tgz (10,061 bytes)
.....done: 10,061 bytes
File /home/user/workspace/geoip-rpm-spec/geoip-1.0.8.tgz downloaded
为建筑做准备

$ pecl bundle geoip
downloading geoip-1.0.8.tgz ...
Starting to download geoip-1.0.8.tgz (10,061 bytes)
.....done: 10,061 bytes
Package ready at '/home/user/workspace/geoip-rpm-spec/geoip'
现在,我们建造

$ pecl build geoip/package.xml 
running: phpize
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
building in /var/tmp/pear-build-userttUJNa/geoip-1.0.8
... <snip/>
running: find "/var/tmp/pear-build-userttUJNa/install-geoip-1.0.8" | xargs ls -dils
264791  4 drwxrwxr-x 3 user user  4096 Oct  1 18:33 /var/tmp/pear-build-userttUJNa/install-geoip-1.0.8
265361  4 drwxrwxr-x 3 user user  4096 Oct  1 18:33 /var/tmp/pear-build-userttUJNa/install-geoip-1.0.8/usr
265362  4 drwxrwxr-x 3 user user  4096 Oct  1 18:33 /var/tmp/pear-build-userttUJNa/install-geoip-1.0.8/usr/lib64
265363  4 drwxrwxr-x 3 user user  4096 Oct  1 18:33 /var/tmp/pear-build-userttUJNa/install-geoip-1.0.8/usr/lib64/php
265409  4 drwxrwxr-x 3 user user  4096 Oct  1 18:33 /var/tmp/pear-build-userttUJNa/install-geoip-1.0.8/usr/lib64/php/5.6
265444  4 drwxrwxr-x 2 user user  4096 Oct  1 18:33 /var/tmp/pear-build-userttUJNa/install-geoip-1.0.8/usr/lib64/php/5.6/modules
265358 68 -rwxr-xr-x 1 user user 67772 Oct  1 18:33 /var/tmp/pear-build-userttUJNa/install-geoip-1.0.8/usr/lib64/php/5.6/modules/geoip.so
错了

.so的位置在哪里,
build
步骤声称要创建?该文件在此计算机上不在任何位置。 我能得到这个该死的东西的唯一方法就是运行
install
命令,但这不是需要这个模块的机器

我做错什么了吗?

更新: 谷歌搜索了一下答案。我在这里使用
geoip
作为一个例子,因为这正是我正在使用的,但您几乎可以将其用于任何扩展,而几乎不需要修改

  • pecl下载geoip-1.0.8
    下载源代码(或其他扩展,或其他版本)
  • pecl bundle geoip
    提取扩展源
  • cd geoip&&phpize
    切换到源目录并创建autoconf脚本
  • /configure--prefix=/home/user/rpmbuild/blah--exec prefix=/home/user/rpmbuild/bleh
    进行配置
  • make
    the
    。因此
    现在位于
    模块
    目录中
  • 利润 这是一种老掉牙的方法:

    目前看来有效的方法是运行构建步骤,以便下载的模块填充
    configure
    脚本,切换到模块目录并运行
    configure--prefix=some\u local\u dir
    ,然后运行
    make
    。 现在我可以看到
    geoip.so
    文件了,但它感觉像是一个技巧/解决方案,而不是实际的解决方案

    $ ls -al /var/tmp/pear-build-userttUJNa/install-geoip-1.0.8
    ls: cannot access /var/tmp/pear-build-userttUJNa/install-geoip-1.0.8: No such file or directory
    $ ls -al /var/tmp/pear-build-userttUJNa
    ls: cannot access /var/tmp/pear-build-userttUJNa: No such file or directory