2012-09-21 10 views
40

Ich musste eine neuere Version von PHPUnit nach these directions de- und neu installieren. Jetzt, wenn ich diese Zeile starteWie installiere ich PHPUnit korrekt mit PEAR?

sudo pear install --alldeps phpunit/PHPUnit 

Ich sehe eine Fehlermeldung, die so aussieht.

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

Wenn ich nur Yaml installieren

sudo pear install symfony/YAML 

eine ältere Version (1.0.6) installiert wird gestartet, die nicht die Abhängigkeit von PHPUnit nicht erfüllt. Wie kann ich das möglicherweise lösen?

+0

Birne ist mir Probleme geben. Dies löste es für mich: https://askubuntu.com/questions/451953/php-pear-isnot-working-after-upgrading-to-ubuntu-14-04/451975#451975 – eddy147

Antwort

85

Ich hatte das gleiche Problem, während mein phpunit aktualisieren.

Dies löste das Problem:

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

Dann laufen:

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

OBS: Ich denke, die pear install pear.symfony.com/Yaml nicht notwendig ist. Ich poste es nur, weil es genau so ist, wie ich mein Problem gelöst habe.

+1

Das hat tatsächlich funktioniert und jetzt verstehe ich, warum es nicht vorher getan hat. Das Symfony-Projekt betreibt zwei verschiedene Birnenkanäle. [http://pear.symfony-project.com/](http://pear.symfony-project.com/) ist für Version 1 und [http://pear.symfony.com/](http://de) pear.symfony.com/) für Version 2. Nur letzteres enthält YAML2, welches von PHPUnit benötigt wird. Danke, PutzKipa! – twigmac

+1

Und ja, der Befehl 'pear install pear.symfony.com/Yaml' war nicht notwendig um PHPUnit zu installieren. – twigmac

+0

Ich musste auch die CodeCoverage von Github Repo https://github.com/sebastianbergmann/php-code-coverage herunterladen und im PHPUnit-Verzeichnis verlinken: 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/mein-geklont-github-repo-dir/PHP/CodeCoverage ./PHP/CodeCoverage; # "Ich bin auf ubuntu 12.04" – knb

2

Erstens: locate pear Sie können mehrere Versionen installiert haben und dies könnte ein Schmerz sein.

Bei der Arbeit wir so etwas in unserem Intranet haben:

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 

Ich weiß, Theres eine automatisierte Art und Weise, es zu installieren mit: go-Birne (http://pear.php.net/manual/en/installation.getting.php)

Wenn Sie jedoch bereits Irgendeine andere Installation von Birne wird es völlig zerstören und Sie werden einige Zeit damit verbringen, es zu reparieren. Ich denke, die größte Hürde besteht darin, allen Bibliotheken zu sagen, wo sie sich befinden.

+0

Hat nicht beim Zurücksetzen geholfen PEAR für dieses [Problem] (http://stackoverflow.com/questions/13797778/installing-doctrine2-with-pear?lq=1). Erwarte deine Antwort dort. :) – Lenin

10

verwenden, wie in the PHPUnit docs beschrieben: (i tun nicht, was mittels sudo, das ist, wie ich es auf einem Windows PC):

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

Dies funktionierte für mich mit dem Hinzufügen von Sudo. Vielen Dank. –

+0

Brilliant! Ich hatte immer Probleme, die Kanäle PHPUnit zu finden, und ich installiere es häufig – siimsoni

+0

Awesome. Du hast mir drei Tage Kopfschmerzen erspart. Ich musste gehen und alle Ihre Antworten upvote :) – samayo

5

Ich hatte auch diese Fehlermeldung:

Unknown entfernten Sender: pear.symfony.com

Gelöst einen Alias ​​zu erstellen:

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

und dann

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

Dieser Prozess hat mir auch nicht geholfen. Aber ich habe es auf andere Weise gelöst [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 

Ich hatte ähnliches Problem über "Unbekannter Remote-Kanal: pear.symfony.com". musste (ohne sudo, ich seltsame Fehler bekam etwa nicht einige Datei öffnen kann) tun

sudo pear channel-discover pear.symfony.com 

dann

sudo pear install phpunit/PHPUnit 

Jetzt kann ich phpunit in meinem/usr/bin

0

Prozess siehe erwähnt Bei PutzKipa funktioniert das aber uU mit Super User Privilegien. Für Ubuntu fügen Sie Sudo vor jedem Befehl hinzu.

0

Plínio César Folgen, löste ich es schließlich, aber mit einer leichten Variation:

Zuerst habe ich ein "sudo apt-get remove phpunit" die fehlerhafte Installation zu entfernen. Dann Birne mit der phpunit Installation zu tun:

sudo Birne installieren pear.symfony.com/Yaml

sudo pear channel-discover pear.phpunit.de

sudo Birne config-set auto_discover 1

sudo birne installieren --alldeps pear.phpunit.de/PHPUnit

Danke Plinio Cesar !!!

0

Der einfachste Weg, PHPUnit in Ubuntu, Debian, Fedora oder OpenSUSE zu erhalten, ist das Herunterladen eines PHP-Archivs (PHAR), das alle erforderlichen (sowie einige optionale) Abhängigkeiten von PHPUnit in einer einzigen Datei enthält.

Öffnen Sie das Terminal und geben:

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 

Es gibt viele verschiedene Versionen von phpunit.phar bei https://phar.phpunit.de/. Wenn Sie den ersten Befehl verwenden, wird die neueste Version ausgewählt und heruntergeladen.

Hinweis: Der /usr/local/bin/ Pfad im letzten Befehl richtig ist für Ubuntu, Debian, Fedora und OpenSUSE-Distributionen und auch für andere Linux-Distributionen, die ein /usr/local/bin/ Verzeichnis haben.

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