PHPUnit wordt geïnstalleerd in de verkeerde map

Ik heb onlangs PHPUnit geïnstalleerd met behulp van het peer-pakketinstallatieprogramma zoals aangegeven in de documentatie. Pear is momenteel geïnstalleerd in /usr/local/lib/php/pear . PHPUnit lijkt zichzelf echter te installeren in /usr/share/pear en daarom krijg ik include-fouten wanneer ik probeer phpunit --version of phpunit uit te voeren. -help .

Ik zie drie mogelijke oplossingen, maar ik ben bang later problemen tegen te komen als ik de verkeerde kies. Hier zijn de mogelijke oplossingen: (A) verplaats de PHPUnit-map van /usr/share/pear/PHPUnit naar /usr/local/lib/php/pear/PHPUnit , (B) verplaats de PHPUnit-map naar /usr/local/lib/php/peer/share/pear/PHPUnit , of (C) installeer phpunit opnieuw met een extra commando of switch, om het te installeren naar de juiste locatie?

Alvast bedankt voor uw hulp.

UPDATE: Here is the output of pear config-show when run under my username:

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       
PEAR server [DEPRECATED]       master_server    pear.php.net
Default Channel Mirror         preferred_mirror pear.php.net
Remote Configuration File      remote_config    
PEAR executables directory     bin_dir          /usr/bin
PEAR documentation directory   doc_dir          /usr/local/lib/php/pear/docs
PHP extension directory        ext_dir          /usr/lib64/php/modules
PEAR directory                 php_dir          /usr/local/lib/php
PEAR Installer cache directory cache_dir        /tmp/pear/cache
PEAR configuration file        cfg_dir          /usr/share/pear/cfg
directory
PEAR data directory            data_dir         /usr/local/lib/php/pear/data
PEAR Installer download        download_dir     /tmp/pear/download
directory
PHP CLI/CGI binary             php_bin          /usr/bin/php
php.ini location               php_ini          
--program-prefix passed to     php_prefix       
PHP's ./configure
--program-suffix passed to     php_suffix       
PHP's ./configure
PEAR Installer temp directory  temp_dir         /tmp/pear/temp
PEAR test directory            test_dir         /usr/local/lib/php/pear/tests
PEAR www files directory       www_dir          /usr/share/pear/www
Cache TimeToLive               cache_ttl        3600
Preferred Package State        preferred_state  stable
Unix file mask                 umask            27
Debug Log Level                verbose          1
PEAR password (for             password         
maintainers)
Signature Handling Program     sig_bin          /usr/bin/gpg
Signature Key Directory        sig_keydir       /etc/pearkeys
Signature Key Id               sig_keyid        
Package Signature Type         sig_type         gpg
PEAR username (for             username         
maintainers)
User Configuration File        Filename         /home/webdeveloper/.pearrc
System Configuration File      Filename         /etc/pear.conf

En hier is de uitvoer van peer config-show wanneer het als root wordt uitgevoerd:

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       
PEAR server [DEPRECATED]       master_server    pear.php.net
Default Channel Mirror         preferred_mirror pear.php.net
Remote Configuration File      remote_config    
PEAR executables directory     bin_dir          /usr/bin
PEAR documentation directory   doc_dir          /usr/share/pear/docs
PHP extension directory        ext_dir          /usr/lib64/php/modules
PEAR directory                 php_dir          /usr/share/pear
PEAR Installer cache directory cache_dir        /tmp/pear/cache
PEAR configuration file        cfg_dir          /usr/share/pear/cfg
directory
PEAR data directory            data_dir         /usr/share/pear/data
PEAR Installer download        download_dir     /tmp/pear/download
directory
PHP CLI/CGI binary             php_bin          /usr/bin/php
php.ini location               php_ini          
--program-prefix passed to     php_prefix       
PHP's ./configure
--program-suffix passed to     php_suffix       
PHP's ./configure
PEAR Installer temp directory  temp_dir         /tmp/pear/temp
PEAR test directory            test_dir         /usr/share/pear/tests
PEAR www files directory       www_dir          /usr/share/pear/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         
maintainers)
Signature Handling Program     sig_bin          /usr/bin/gpg
Signature Key Directory        sig_keydir       /etc/pearkeys
Signature Key Id               sig_keyid        
Package Signature Type         sig_type         gpg
PEAR username (for             username         
maintainers)
User Configuration File        Filename         /root/.pearrc
System Configuration File      Filename         /etc/pear.conf
1
@edorian toegevoegd.
toegevoegd de auteur fronzee, de bron
@DavidHarkness Onze oude sysadmin heeft PHP geïnstalleerd, oorspronkelijk - zonder peer geconfigureerd. Ik werkte met het nieuwe sysadmin om peer te installeren (volgens de instructies in de peerhandleiding) in /usr/local/lib/php/pear en het zou me niet verbazen als we een optie misten die vervolgens standaard /usr/share/pear . We gebruiken Red Hat Enterprise Linux AS release 4 (Nahant Update 9).
toegevoegd de auteur fronzee, de bron
@edorian Whoops, dat is de uitvoer van config-show mijn account in plaats van root. Het is als root geïnstalleerd. Ik zal het updaten zodra ik onze sysadmin kan krijgen om het uit te voeren en me de resultaten te sturen.
toegevoegd de auteur fronzee, de bron
@edorian Ok, ik heb mijn vraag bijgewerkt met beide versies van pear config-show .
toegevoegd de auteur fronzee, de bron
Het lijkt vreemd dat PEAR wordt geconfigureerd om zijn configuratiebestanden en www-bestanden in /usr/share/pear te plaatsen, terwijl al het andere onder /usr/local/lib/php valt . Voor mij (Ubuntu 11.04) gaat alles onder /usr/share/php . Hoe heb je PHP en PEAR geïnstalleerd? Welke distro gebruik je?
toegevoegd de auteur David Harkness, de bron
Lijken een probleem met je peer. Kun je de uitvoer van peer config-show misschien toevoegen?
toegevoegd de auteur edorian, de bron
Hm, config lijkt prima tot nu toe. Gebruikt u het perenpakket als root en is de uitvoer van de config-show ook afkomstig van het root-account?
toegevoegd de auteur edorian, de bron

1 antwoord

OK, het lijkt erop dat we het probleem hebben gevonden (zie de opmerkingen).

Ik veronderstel dat PHPUnit als root is geïnstalleerd of dat peer om wat voor reden dan ook de "roots" -configuratie oppikt.

Het pad waar de code wordt geplaatst, is gedefinieerd in:

 PEAR directory  php_dir /usr/share/pear

Dus iets in de peer-configuratie lijkt het probleem te zijn.

Indien mogelijk zou ik peer config-set php_dir $ yourLocation zien en kijken of het dan lukt.


It is possible to install multiple versions of PHPUnit using pear install --installroot /some/path/ like described in the post. So that should work out no matter what.

2
toegevoegd