Search code examples
macospearmamp

MAMP PEAR configuration is pointing to local directories


I am using MAMP 2.0.5 and I have an issue upgrading PEAR

The issue is that PEAR is always installed in the "local" PEAR directory instead of the MAMP PEAR directory.

My MAMP PEAR configuration is the following:

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

My question(s):

  • Is it correct that MAMP is using "local" directories to install PEAR?
  • Could someone point out how a "correct" MAMP PEAR configuration should look like?

Some suggestions how to fix?

Update (1):

first I switched to MAMP bin dir

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

checked the content of the directory

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

after applying the changes according willems answer my config looks like this

./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

running

./pear upgrade --force

updates PEAR displaying the following:

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"

check PEAR version generates the following error

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

this looked strange, so I checked the content of 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

some files are missing:

  • pear
  • peardev
  • pecl

checking

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

reveals that PEAR was installed locally (again)...

Some ideas how to fix?

Update (2):

I had to install PEAR locally. That fixed the issue.


Solution

  • I did a bit of digging and this seems to resolve the php version issue:

    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
    

    Then just cd to /Applications/MAMP/bin/php/php5.3.6/bin and run ./pear upgrade --force

    This will set all the config files in the .pearrc of your home directory, haven't looked into integrating them into the pear.conf in MAMP..

    > 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