2012-09-21 15 views
40

He tenido que desinstalar y volver a instalar una versión más reciente de PHPUnit siguiente these directions. Ahora cuando estoy lanzando esta línea¿Cómo instalo correctamente PHPUnit con PEAR?

sudo pear install --alldeps phpunit/PHPUnit 

Veo un mensaje de error, que se ve así.

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

Si instalo solo Yaml lanzando

sudo pear install symfony/YAML 

una versión anterior (1.0.6) será instalado que no cumple con la dependencia de PHPUnit. ¿Cómo puedo resolver esto?

+0

pera me está dando problemas. Esto lo resolvió para mí: https://askubuntu.com/questions/451953/php-pear-is-not-working-after-upgrading-to-ubuntu-14-04/451975#451975 – eddy147

Respuesta

85

que tenían el mismo problema al actualizar mi PHPUnit.

Esto resolvió el problema:

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

A continuación, ejecute:

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

OBS: Creo que el pear install pear.symfony.com/Yaml no es necesario. Solo lo estoy publicando porque es exactamente la forma en que resolví mi problema.

+1

Esto realmente funcionó y ahora entiendo por qué no lo hizo de antemano. El proyecto Symfony opera dos canales de pera diferentes. [http://pear.symfony-project.com/](http://pear.symfony-project.com/) es para la versión 1 y [http://pear.symfony.com/](http:// pear.symfony.com/) para la versión 2. Solo el último contiene YAML2, que PHPUnit necesita. Gracias, PutzKipa! – twigmac

+1

Y sí, el comando 'pear install pear.symfony.com/Yaml' no ha sido necesario para instalar PHPUnit. – twigmac

+0

También tuve que descargar el CodeCoverage de Github repo https://github.com/sebastianbergmann/php-code-coverage y vincularlo en el directorio 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; # "Estoy en Ubuntu 12.04" – knb

2

Primero: locate pear es posible que tenga varias versiones instaladas y esto podría ser un problema.

En el trabajo tenemos algo como esto en nuestra 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 

Sé theres una manera más automatizada para instalarlo usando: go-pera (http://pear.php.net/manual/en/installation.getting.php)

Sin embargo, si ya tiene alguna otra instalación de pera destruirá todo y pasarás bastante tiempo intentando arreglarlo. Creo que el mayor obstáculo es poder decirles a todas las bibliotecas dónde se encuentran.

+0

No ayudó a restablecer PEAR para este [problema] (http://stackoverflow.com/questions/13797778/installing-doctrine2-with-pear?lq=1). Esperando tu respuesta allí. :) – Lenin

10

Utilice esta, como se describe in the PHPUnit docs: (i No lo sudo medios, así es como lo hago en un PC con Windows):

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

Esto funcionó para mí con la adición de sudo. Gracias. –

+0

¡Brillante! Siempre tuve problemas para encontrar los canales PHPUnit necesarios y lo instalo con frecuencia – siimsoni

+0

Impresionante. Me salvaste de tres días de dolor de cabeza. Tuve que ir y votar todas sus respuestas :) – samayo

5

también tuve este mensaje de error:

Desconocido canal remoto: pear.symfony.com

Resuelto crear un alias:

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

y luego

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

Este proceso tampoco ayudó a resolver el mío. Pero lo resolví de una manera diferente [aquí] (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 

Tuve un problema similar que se quejaba de "canal remoto desconocido: pear.symfony.com". tenía que ver (sin sudo, que ha obtenido un error extraño sobre no se puede abrir algún archivo)

sudo pear channel-discover pear.symfony.com 

continuación

sudo pear install phpunit/PHPUnit 

Ahora puedo ver PHPUnit en mi/usr/bin

0

proceso mencionado por PutzKipa funciona sin embargo puede necesitar privilegios de superusuario. Para ubuntu agrega sudo antes de cada comando.

0

Siguiendo Plínio César, que lo resolvió por último, pero con una ligera variación:

Primero hice un "sudo apt-get remove PHPUnit" para eliminar la instalación defectuosa. Luego, utilizando la pera para hacer la instalación PHPUnit:

sudo pear install pear.symfony.com/Yaml

sudo pear channel-descubrir pear.phpunit.de

sudo pear config-set auto_discover 1

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

Gracias Plinio Cesar !!!

0

La forma más fácil de obtener PHPUnit en Ubuntu, Debian, Fedora o OpenSUSE es descargar un archivo PHP (PHAR) que tiene todas las dependencias requeridas (así como algunas opcionales) de PHPUnit incluidas en un único archivo.

abrir el terminal y escriba:

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 

Hay muchas versiones diferentes de phpunit.phar en https://phar.phpunit.de/. Si usa el primer comando, seleccionará y descargará la última versión.

Nota: La ruta /usr/local/bin/ en el último comando es correcta para las distribuciones de Ubuntu, Debian, Fedora y OpenSUSE y también para otras distribuciones de Linux que tienen un directorio /usr/local/bin/.

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