2012-09-21 24 views
40

Ho dovuto disinstallare e reinstallare una versione più recente di PHPUnit dopo these directions. Ora quando lancio questa lineaCome installo correttamente PHPUnit con PEAR?

sudo pear install --alldeps phpunit/PHPUnit 

Vedo un messaggio di errore, che assomiglia a questo.

Unknown remote channel: pear.symfony.com 
phpunit/PHPUnit requires package "channel://pear.symfony.com/Yaml" (version >= 2.1.0) 
No valid packages found 

Se installo appena Yaml lanciando

sudo pear install symfony/YAML 

una versione precedente (1.0.6) sarà installato che non soddisfa la dipendenza di PHPUnit. Come posso risolvere questo?

+0

Pera mi sta dando problemi. Questo lo ha risolto per me: https://askubuntu.com/questions/451953/php-pear-is-not-working-after-upgrading-to-ubuntu-14-04/451975#451975 – eddy147

risposta

85

Ho avuto lo stesso problema durante l'aggiornamento il mio PHPUnit.

Questo ha risolto il problema:

pear channel-discover pear.symfony.com 
pear install pear.symfony.com/Yaml 

Poi gestita:

pear install --alldeps pear.phpunit.de/PHPUnit 

OBS: Penso che la pear install pear.symfony.com/Yaml non è necessario. Sto solo pubblicandolo perché è esattamente il modo in cui ho risolto il mio problema.

+1

Questo ha funzionato e ora capisco perché non lo ha fatto prima. Il progetto symfony gestisce due diversi canali di pera. [http://pear.symfony-project.com/](http://pear.symfony-project.com/) è per la versione 1 e [http://pear.symfony.com/](http:// pear.symfony.com/) per la versione 2. Solo quest'ultima contiene YAML2, che è richiesta da PHPUnit. Grazie, PutzKipa! – twigmac

+1

E sì, il comando 'pear install pear.symfony.com/Yaml' non è stato necessario per installare PHPUnit. – twigmac

+0

Ho anche dovuto scaricare il CodeCoverage da Github repo https://github.com/sebastianbergmann/php-code-coverage e collegarlo ad esso nella directory PHPUnit: sudo mv ./PHP/CodeCoverage.php ./PHP/CodeCoverage. php.bak; sudo ln -s /home/my-cloned-github-repo-dir/php-code-coverage/PHP/CodeCoverage.php ./PHP/CodeCoverage.php; sudo ln -s/home/my-cloned-github-repo-dir/PHP/CodeCoverage ./PHP/CodeCoverage; # "I'm on ubuntu 12.04" – knb

2

Primo: locate pear potresti avere più versioni installate e questo potrebbe essere un problema.

Al lavoro abbiamo qualcosa di simile nella nostra intranet:

sudo [your pear install] channel-update pear.php.net 
sudo [your pear install] upgrade pear 
sudo [your pear install] channel-discover pear.phpunit.de 
sudo [your pear install] install --alldeps phpunit/PHPUnit 

So theres un modo più automatizzato per installarlo utilizzando: go-pera (http://pear.php.net/manual/en/installation.getting.php)

Tuttavia, se si dispone già di qualche altra installazione di pera distruggerà completamente tutto e passerai un po 'di tempo a cercare di risolverlo. Penso che il più grande ostacolo sia quello di poter dire a tutte le biblioteche dove si trova l'un l'altro.

+0

Non ha aiutato nel ripristino PERA per questo [problema] (http://stackoverflow.com/questions/13797778/installing-doctrine2-with-pear?lq=1). Aspettando la tua risposta lì. :) – Lenin

10

Utilizzare questo, come descritto in the PHPUnit docs: (non quello che sudo mezzi, questo è come lo faccio su un PC Windows):

pear config-set auto_discover 1 
pear install pear.phpunit.de/PHPUnit 
+0

Questo ha funzionato per me con l'aggiunta di sudo. Grazie. –

+0

Brillante! Ho sempre avuto problemi a trovare i canali richiesti da PHPUnit e l'ho installato frequentemente. – siimsoni

+0

Impressionante. Mi hai salvato da tre giorni di mal di testa. Dovevo andare a votare tutte le tue risposte :) – samayo

5

Ho anche avuto questo messaggio di errore:

Unknown remoto canale: pear.symfony.com

Risolto creazione di un alias:

pear channel-alias pear.symfony-project.com pear.symfony.com 

e poi

channel-discover pear.symfony-project.com 

sudo pear channel-discover components.ez.no 

sudo pear update-channels 

sudo pear upgrade-all 

sudo pear install --force --alldeps phpunit/PHPUnit 
+0

Anche questo processo non ha aiutato a risolvere il mio. Ma ho risolto in un modo diverso [qui] (http://stackoverflow.com/questions/13797778/installing-doctrine2-with-pear?lq=1). – Lenin

0
sudo pear install -a phpunit 
sudo pear channel-discover pear.phpunit.de 

Ho avuto un problema simile lamentando "Canale remoto sconosciuto: pear.symfony.com". aveva a che fare (senza sudo, ho ottenuto strano errore circa non può aprire qualche file)

sudo pear channel-discover pear.symfony.com 

poi

sudo pear install phpunit/PHPUnit 

Ora posso vedere phpunit nel mio/usr/bin

0

processo di cui di PutzKipa funziona tuttavia potresti aver bisogno di privilegi di super utente. Per ubuntu aggiungi sudo prima di ogni comando.

0

seguito Plínio César, ho risolto finalmente, ma con leggera variazione:

Prima ho fatto un "sudo apt-get remove phpunit" per rimuovere l'installazione difettosa. Quindi, utilizzando pera per fare l'installazione phpunit:

sudo pear install pear.symfony.com/Yaml

sudo pera canale-scoprire pear.phpunit.de

sudo pera config-set auto_discover 1

sudo pera install --alldeps pear.phpunit.de/PHPUnit

Grazie Plinio Cesar !!!

0

Il modo più semplice per ottenere PHPUnit in Ubuntu, Debian, Fedora o OpenSUSE è scaricare un PHP Archive (PHAR) che abbia tutte le dipendenze richieste (e anche alcune facoltative) di PHPUnit in un unico file.

Aprite il terminale e digitate:

wget https://phar.phpunit.de/phpunit.phar # download the PHP Archive (PHAR) file 
chmod +x phpunit.phar 
sudo mv phpunit.phar /usr/local/bin/phpunit 

Ci sono molte versioni differenti di phpunit.phar a https://phar.phpunit.de/. Se si utilizza il primo comando, selezionerà e scaricherà l'ultima versione.

Nota: il percorso /usr/local/bin/ nell'ultimo comando è corretto per le distribuzioni Ubuntu, Debian, Fedora e OpenSUSE e anche per altre distribuzioni Linux che hanno una directory /usr/local/bin/.

Riferimento: What is /usr/local/bin? Came across it in an script installation for Applescript but would like to know more