【问题标题】:MAMP PEAR configuration is pointing to local directoriesMAMP PEAR 配置指向本地目录
【发布时间】:2011-12-12 23:08:55
【问题描述】:

我正在使用 MAMP 2.0.5,但升级 PEAR 时遇到问题

问题是 PEAR 总是安装在“本地”PEAR 目录而不是 MAMP PEAR 目录中。

我的 MAMP PEAR 配置如下:

sudo /Applications/MAMP/bin/php/php5.3.6/bin/pear config-show

Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels     auto_discover    1
Default Channel                default_channel  pear.php.net
HTTP Proxy Server Address      http_proxy       <not set>
PEAR server [DEPRECATED]       master_server    pear.php.net
Default Channel Mirror         preferred_mirror pear.php.net
Remote Configuration File      remote_config    <not set>
PEAR executables directory     bin_dir          /usr/local/bin
PEAR documentation directory   doc_dir          /usr/local/docs
PHP extension directory        ext_dir          /Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20060613
PEAR directory                 php_dir          /usr/local/share/pear
PEAR Installer cache directory cache_dir        /tmp/pear/cache
PEAR configuration file        cfg_dir          /usr/local/cfg
directory
PEAR data directory            data_dir         /usr/local/data
PEAR Installer download        download_dir     /tmp/pear/install
directory
PHP CLI/CGI binary             php_bin          /Applications/MAMP/bin/php/php5.3.6/bin/php
php.ini location               php_ini          <not set>
--program-prefix passed to     php_prefix       <not set>
PHP's ./configure
--program-suffix passed to     php_suffix       <not set>
PHP's ./configure
PEAR Installer temp directory  temp_dir         /tmp/pear/install
PEAR test directory            test_dir         /usr/local/tests
PEAR www files directory       www_dir          /usr/local/www
Cache TimeToLive               cache_ttl        3600
Preferred Package State        preferred_state  stable
Unix file mask                 umask            22
Debug Log Level                verbose          1
PEAR password (for             password         <not set>
maintainers)
Signature Handling Program     sig_bin          /usr/local/bin/gpg
Signature Key Directory        sig_keydir       /Applications/MAMP/conf/php/php5.3.6/pearkeys
Signature Key Id               sig_keyid        <not set>
Package Signature Type         sig_type         gpg
PEAR username (for             username         <not set>
maintainers)
User Configuration File        Filename         /Users/udos/.pearrc
System Configuration File      Filename         /Applications/MAMP/bin/php/php5.3.6/conf/pear.conf

我的问题:

  • MAMP 使用“本地”目录安装 PEAR 是否正确?
  • 有人能指出“正确”的 MAMP PEAR 配置应该是什么样子吗?

一些建议如何解决?

更新(1):

首先我切换到 MAMP bin 目录

cd /Applications/MAMP/bin/php/php5.3.6/bin/

检查目录的内容

ls -al
total 56080
drwxr-xr-x  10 udos  admin       340 Dec 26 11:40 .
drwxr-xr-x   7 udos  admin       238 Dec 10 14:09 ..
-rwxr-xr-x   1 udos  admin       924 Dec 26 11:40 pear
-rwxr-xr-x   1 udos  admin       945 Dec 26 11:40 peardev
-rwxr-xr-x   1 udos  admin       861 Dec 26 11:40 pecl
-rwxr-xr-x   1 udos  admin     14821 Dec 26 11:40 phar
-rwxr-xr-x   1 udos  admin     14821 Dec 26 11:40 phar.phar
-rwxr-xr-x   1 udos  admin  28652364 Dec 26 11:40 php
-rwxr-xr-x   1 udos  admin      3892 Dec 26 11:40 php-config
-rwxr-xr-x   1 udos  admin      4582 Dec 26 11:40 phpize

根据 willems answer 应用更改后,我的配置如下所示

./pear config-show

Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels     auto_discover    1
Default Channel                default_channel  pear.php.net
HTTP Proxy Server Address      http_proxy       <not set>
PEAR server [DEPRECATED]       master_server    pear.php.net
Default Channel Mirror         preferred_mirror pear.php.net
Remote Configuration File      remote_config    <not set>
PEAR executables directory     bin_dir          /usr/local/bin
PEAR documentation directory   doc_dir          /Applications/MAMP/bin/php/php5.3.6/lib/php/doc/
PHP extension directory        ext_dir          /Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20060613
PEAR directory                 php_dir          /Applications/MAMP/bin/php/php5.3.6/lib/php/
PEAR Installer cache directory cache_dir        /tmp/pear/cache
PEAR configuration file        cfg_dir          /Applications/MAMP/bin/php/php5.3.6/lib/php/cfg
directory
PEAR data directory            data_dir         /Applications/MAMP/bin/php/php5.3.6/lib/php/data/
PEAR Installer download        download_dir     /tmp/pear/install
directory
PHP CLI/CGI binary             php_bin          /Applications/MAMP/bin/php/php5.3.6/bin/php
php.ini location               php_ini          <not set>
--program-prefix passed to     php_prefix       <not set>
PHP's ./configure
--program-suffix passed to     php_suffix       <not set>
PHP's ./configure
PEAR Installer temp directory  temp_dir         /tmp/pear/install
PEAR test directory            test_dir         /Applications/MAMP/bin/php/php5.3.6/lib/php/test/
PEAR www files directory       www_dir          /Applications/MAMP/bin/php/php5.3.6/lib/php/www
Cache TimeToLive               cache_ttl        3600
Preferred Package State        preferred_state  stable
Unix file mask                 umask            22
Debug Log Level                verbose          1
PEAR password (for             password         <not set>
maintainers)
Signature Handling Program     sig_bin          /usr/local/bin/gpg
Signature Key Directory        sig_keydir       /Applications/MAMP/conf/php/php5.3.6/pearkeys
Signature Key Id               sig_keyid        <not set>
Package Signature Type         sig_type         gpg
PEAR username (for             username         <not set>
maintainers)
User Configuration File        Filename         /Users/udos/.pearrc
System Configuration File      Filename         /Applications/MAMP/bin/php/php5.3.6/conf/pear.conf

运行

./pear upgrade --force

更新 PEAR 显示以下内容:

downloading Archive_Tar-1.3.8.tgz ...
Starting to download Archive_Tar-1.3.8.tgz (17,995 bytes)
......done: 17,995 bytes
downloading Console_Getopt-1.3.1.tgz ...
Starting to download Console_Getopt-1.3.1.tgz (4,471 bytes)
...done: 4,471 bytes
downloading PEAR-1.9.4.tgz ...
Starting to download PEAR-1.9.4.tgz (296,332 bytes)
...done: 296,332 bytes
downloading Structures_Graph-1.0.4.tgz ...
Starting to download Structures_Graph-1.0.4.tgz (30,318 bytes)
...done: 30,318 bytes
downloading XML_Util-1.2.1.tgz ...
Starting to download XML_Util-1.2.1.tgz (17,729 bytes)
...done: 17,729 bytes
upgrade ok: channel://pear.php.net/Archive_Tar-1.3.8
upgrade ok: channel://pear.php.net/Console_Getopt-1.3.1
upgrade ok: channel://pear.php.net/Structures_Graph-1.0.4
upgrade ok: channel://pear.php.net/XML_Util-1.2.1
upgrade ok: channel://pear.php.net/PEAR-1.9.4
PEAR: Optional feature webinstaller available (PEAR's web-based installer)
PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer)
PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer)
PEAR: To install optional features use "pear install pear/PEAR#featurename"

检查PEAR版本产生如下错误

AirTime:bin udos$ ./pear version
-bash: ./pear: No such file or directory

这看起来很奇怪,所以我检查了 bin dir 的内容

AirTime:bin udos$ ls -al
total 56056
drwxr-xr-x  7 udos  admin       238 Dec 26 11:48 .
drwxr-xr-x  7 udos  admin       238 Dec 10 14:09 ..
-rwxr-xr-x  1 udos  admin     14821 Dec 26 11:40 phar
-rwxr-xr-x  1 udos  admin     14821 Dec 26 11:40 phar.phar
-rwxr-xr-x  1 udos  admin  28652364 Dec 26 11:40 php
-rwxr-xr-x  1 udos  admin      3892 Dec 26 11:40 php-config
-rwxr-xr-x  1 udos  admin      4582 Dec 26 11:40 phpize

一些文件丢失:

  • 梨
  • peardev
  • 佩尔

检查

AirTime:bin udos$ which pear
/usr/local/bin/pear

显示 PEAR 已安装在本地(再次)...

一些想法如何解决?

更新(2):

我必须在本地安装 PEAR。这解决了问题。

【问题讨论】:

    标签: macos pear mamp


    【解决方案1】:

    我做了一些挖掘,这似乎解决了 php 版本问题:

    sudo /Applications/MAMP/bin/php/php5.3.6/bin/pear config-set php_dir /Applications/MAMP/bin/php/php5.3.6/lib/php/
    sudo /Applications/MAMP/bin/php/php5.3.6/bin/pear config-set doc_dir /Applications/MAMP/bin/php/php5.3.6/lib/php/doc/
    sudo /Applications/MAMP/bin/php/php5.3.6/bin/pear config-set data_dir /Applications/MAMP/bin/php/php5.3.6/lib/php/data/
    sudo /Applications/MAMP/bin/php/php5.3.6/bin/pear config-set test_dir /Applications/MAMP/bin/php/php5.3.6/lib/php/test/
    sudo /Applications/MAMP/bin/php/php5.3.6/bin/pear config-set www_dir /Applications/MAMP/bin/php/php5.3.6/lib/php/www
    sudo mkdir /Applications/MAMP/bin/php/php5.3.6/lib/php/www
    sudo /Applications/MAMP/bin/php/php5.3.6/bin/pear config-show
    sudo /Applications/MAMP/bin/php/php5.3.6/bin/pear config-set cfg_dir /Applications/MAMP/bin/php/php5.3.6/lib/php/cfg
    sudo mkdir /Applications/MAMP/bin/php/php5.3.6/lib/php/cfg
    

    然后只需 cd 到 /Applications/MAMP/bin/php/php5.3.6/bin 并运行 ./pear upgrade --force

    这会将所有配置文件设置在主目录的 .pearrc 中,尚未考虑将它们集成到 MAMP 中的 pear.conf 中..

    > cd /Applications/MAMP/bin/php/php5.3.6/bin
    > ./pear version
    PEAR Version: 1.9.4
    PHP Version: 5.3.6
    Zend Engine Version: 2.3.0
    Running on: Darwin willem.local 11.2.0 Darwin Kernel Version 11.2.0: Tue Aug  9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64
    

    【讨论】:

    • 感谢您对此进行深入研究。不幸的是,它还没有在我这边工作......如果你能看看我的问题的更新(2),我将不胜感激。
    • 安装本地 PEAR 版本(不仅是 MAMP 版本)后,该问题已得到修复。你指出了正确的方向。谢谢。
    【解决方案2】:

    如果有人遇到这个问题,在遇到确切问题后,我的解决方案是:

    cd /usr

    并在该目录中创建本地安装

    $ wget http://pear.php.net/go-pear.phar
    $ <MAMP PHP PATH> -d detect_unicode=0 go-pear.phar
    

    【讨论】:

      【解决方案3】:

      您可以使用 PEAR 捆绑器:

      http://github.com/c9s/Onion

      你可以运行:

       $ onion.phar -d bundle 
      

      将 pear 包安装到本地目录。 (无root权限)

      【讨论】:

      • 感谢您指出这个替代方案。目前我想弄清楚这个问题的原因(理解)......
      【解决方案4】:

      对于 MAMP 2.0.5 和 PEAR 1.9.2

      我遇到了同样的问题,经过一番挖掘和挫折后,我认为我找到了一个更简单或至少更明显的解决方案。

      使用 PEAR 的 config-set 命令更改安装目录,如下所示:

      pear config-set bin_dir /Applications/MAMP/bin/php/php5.3.6/bin

      pear config-set docs_dir /Applications/MAMP/bin/php/php5.3.6/lib

      然后继续将路径从本地目录重新分配到 MAMP 安装。

      现在:

      pear 升级 --force PEAR

      这应该让您将 MAMP PEAR 升级到 1.9.4。

      我采取了更复杂的方法,试图让 PHPUnit 与 MAMP 一起工作,这涉及手动移植安装,然后重新分配配置路径,但我认为这个解决方案应该足够了。

      【讨论】:

        猜你喜欢
        • 2012-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-19
        • 1970-01-01
        • 2012-01-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多