9
votes

Phpunit, erreurs de mise à niveau de poirier

Remarque: j'ai lu toutes les questions sur ce problème strong>

poire est installée et configurée sur mon système (Ubuntu 11.10 + Apache / 2.2.20). Parce que p> xxx pré>

renvoie ceci: p> xxx pré>

( Manuel de poire: Vérification de la poire Fonctionne Étape 4 ) P>

Quand j'ai essayé d'utiliser phpunit, je reçois cette erreur. p> xxx pré>

Après cette erreur, j'ai décidé de l'installer p> xxx pré>

mais je reçois p> XXX PRE>

Je reçois cette erreur lors de la mise à niveau de la poire avec Sudo Pear Upgrade CODE> P>

PHP Fatal error:  Call to undefined method PEAR_Registry::packageinfo() in /usr/share/php/PEAR/Dependency2.php on line 687


4 commentaires

Quelle est votre version de poire actuelle? Avez-vous également installé php-poire avec apt-get ou avez-vous fait une installation manuelle?


Version de poire: 1.9.2. J'ai installé php-poire


@cweiske, Erreur fatale PHP: appel à la méthode non définie Pear_registry :: packageInfo () dans /usr/share/php/pear/dependency2.php à la ligne 687


@Eray: J'ai publié un article sur la manière d'installer Phpunit sans poire. Jetez un coup d'œil et voyez si vous vous aiderez à faire de nouveau phpunit, de toute façon, pouvez-vous me laisser savoir ce que vous pensiez? Si cela a fonctionné, j'aimerais poster comme réponse à votre question. Melikedev.com/2012/01/25/PHP -Punit-user-phpunit-sans-pois r


4 Réponses :


9
votes

poire 1.9.2 est obsolète et cassé au-delà de tout espoir de réparation avec une infrastructure de serveur de poire plus récente.

Je n'ai aucune idée de la raison pour laquelle les distributions insistent toujours sur quelque chose qui est juste brisé :) p>

Installez une nouvelle poire via go-Pear.Phar code> et assurez-vous que vous avez PEAR version 1.9.4 CODE> puis forcer la poire pour ignorer les anciens fichiers de cache en utilisant P>

which pear


8 commentaires

Je reçois Classe de rôle inconnu: "Pear_installer_role_pear_installer_role_php Erreur lors de l'installation de poire. Vous pouvez vérifier ici: Pastebin .COM / JKH4AAKJ Comme vous pouvez le voir Version Toujours 1.9.2


Vous frappez Stackoverflow.com/a/6596669/282601 - Supprimer PHP-Pear d'abord.


@cweiske, ça ne résout pas mon problème. Parce que, dpkg -l php-poire et poire config-get php_dir est identique, pointant vers / usr / share / php


@cweiske non I a exécuté cette commande: apt-get supprimer php-poire . Puis installé une nouvelle poire via go-Pear.Phar mais ceci est installé pour / home / eary / poire / bac / poire . Je suis vraiment confus, totalement.


@Eray s'est étendu un peu sur la réponse


@edorian j'ai enlevé ma vieille installation de poire ( php5-poire ), hier. J'enregistre un petit screencast. Pouvez-vous regarder ceci: scénar.com/ebas AVIS Cette erreur sur le dernier écran: ** AVERTISSEMENT! Version ancienne trouvée à / usr / bin, veuillez le supprimer ou veillez à utiliser la commande nouvelle / usr / bin / poire


@Eray Ce message d'erreur se plaint de qu'il existe déjà une poire exécutable dans votre chemin. Faites simplement un rm / usr / bin / poire pour zaper l'ancien exécutable, puis effectuez les mêmes étapes de réinstalgie et vous ne recevrez pas l'avertissement.


@Eray Vous pourriez essayer la réponse que je viens de poster dans son intégralité et laissez-moi savoir si vous avez toujours des problèmes de là ...



3
votes

Il peut être difficile de dépanner pour un environnement spécifique ... mais voilà ...

J'ai eu des problèmes lorsqu'ils n'ayaient pas l'aide de la section poire.phpunit.de canal pour installer phpunit, surtout lorsque vous essayez d'utiliser un gestionnaire de packages comme apt-get ou Miam. Premièrement, vous devez être sûr que votre installation de poire est à jour. Tuez l'installation existante à partir de votre gestionnaire de packages:

  • sudo apt-obtenir purge php5-poire

    Assurez-vous de supprimer le fichier binaire exécutable s'il existe toujours. Ceci est probablement / usr / bin / poire , mais vous devrez peut-être modifier le chemin en fonction de votre environnement:

    • RM / USR / BIN / PEAR

      Suivant Installez la nouvelle poire en téléchargeant Go-Pear.Pharn et l'exécutant. Assurez-vous que vous l'installez avec des droits sudo (ou en tant que root) afin qu'il soit installé dans le bon emplacement :

      • wget http://pear.php.net/go-pear.phar
      • sudo php go-Pear.PHAR

        Vous pouvez ensuite vérifier que la poire fonctionne en exécutant la commande suivante. Si tel est le cas, vous obtiendrez une liste de commandes:

        • Aide de poire

          Enfin, Mise à niveau de poire (juste au cas où - vous avez obtenu la dernière version utilisant GO-Pear.Phar, après tout). Après cela, assurez-vous que vous utilisez le canal de poire.phpunit.de réel pour installer phpunit:

          • SUDO PEART Mise à niveau PEAR
          • Sudo Pear Config-Set auto_Discover 1
          • Sudo Pear Installer --alldeps PEAR.PHPUNIT.DE/HPUNIT

            Cela a bien fonctionné pour moi ... J'espère que cela aide.

            mise à jour

            Pour obtenir toutes les fonctionnalités de PHPUnit Travailler, vous aurez probablement besoin de suivre les éléments suivants:

            • sudo poire installer poire.phpunit.de/phpunit_mockObject

              Vous penseriez - Alldeps couvrirait cela mais ...

              mise à jour 2

              Cette méthode ne fonctionnera pas avec l'ubuntu 11.10 actuel parce qu'il Installe l'installateur de poirier cassé 1.9.2 ...

              Voici une méthode alternative compte tenu de vos problèmes suivants à l'aide de la méthode d'installation GO-Pear.Phar ...

              • sudo apt-get install php-poire

                Ensuite, dites à la poire de mettre à jour sa propre chaîne.

                • SUDO PEAR CANAL-UPDATE PEAR.PHP.NET

                  Ensuite, dites à la poire de se moderniser la version la plus récente.

                  • SUDO PEART NOWADE-TOUT

                    Enfin, installez phpunit comme proscrit ci-dessus ...

                    • Sudo Pear Config-Set auto_Discover 1
                    • Sudo Pear Installer --alldeps PEAR.PHPUNIT.DE/HPUNIT

24 commentaires

Récemment, je n'ai pas d'installation de poire (je pense). Parce que lorsque j'ai essayé d'exécuter poire ou / usr / bin / poire commande. J'ai une erreur comme la poire n'est pas installée . Et toutes les autres commandes, vous avez dit de retourner une erreur. Je les ai dit auparavant, dans ma question.


Je viens d'essayer d'installer à nouveau. Lors de l'installation de I définir / usr / bin comme mon binaires . Après l'installation, j'ai obtenu ** La commande 'PEARTE' n'est pas actuellement dans votre chemin, vous devez donc ** utiliser '/ usr / bin / poire' jusqu'à ce que vous ayez ajouté ** '/ USR / bin' à votre Variable d'environnement de chemin. cette notification. Et ensuite j'exécute aide de poire et / USR / bin / poire Aide MAIS Obtenir Pear IIS non installé et là n'est pas un fichier comme USR / bin / poire erreurs.


@Eray Vous avez juste besoin de référencer la poire dans votre chemin d'environnement quelque part. Vous pouvez suivre les instructions de cette annonce pour que cela se produise: UBUNTU: Comment relier un binaire


Il n'y a pas de fichier de poirier sur / usr / bin


Oh, ok j'ai mal compris. Mais qu'est-ce qu'il devrait être contenu de ce fichier? Pourquoi il est automatiquement créé lorsque nous installons de la poire avec Phar?


IT est créé automatiquement lorsque vous installez avec Go-Pear.Phar. Votre problème s'assure que partout où il est installé, on peut accéder à votre chemin. Donc, si elle est installée à / Accueil / Eray / Poire / Bin / Poire Comme vous le mentionnez dans les commentaires à l'autre réponse, vous devez créer un symbole symbolique dans / usr / bin ou ~ / bin dans ce fichier (où qu'il ait été installé). Par exemple: ln -s / home / Eray / poire / bin / ~ / bin ... C'est pourquoi j'ai référencé Ubuntu: Comment relier un binaire dans mon commentaire précédent.


Rien de plus, je peux ajouter de l'éther. Peut-être Supprimer / USR / LIB / PHP5 / TOO TOAIT JUSTE au cas où. Le tout dans tout est vraiment solide une réponse complète. définitivement +1


Je les ai essayés (avec sudo): ln -s / home / evray / poire / bin / ~ / bin , ln -s / home / eary / poire / bin / / usr / bin . Mais toujours obtenir poire n'est pas installé lors de l'essayé: 'Aide de poire' ou Version de poire`


Localiser / Accueil / Eray / Poire / Bac / Poire Sortie Rien :) Je suis vraiment fatigué. Je pense qu'il n'y a pas d'installation de poire sur ma machine. Parce que nécessite_once 'system.php'; var_dump (class_existes ('system', false)) sortie juste une page vierge aussi.


@rdlowrey, SCRENR.COM/385S : D sur le dernier écran J'essayais de dire: * Mais il dit que < Code> La commande 'Pear' est maintenant à votre service à / usr / bin / poire * haha ​​:)


Haha c'est un peu drôle :) Je vais mettre à jour la réponse avec une méthode différente pour installer la poire. Espérons que celui-ci ne vous laissera pas vous tirer vos cheveux ... maintenant mis à jour.


@rdlowrey sudo apt-get Installer php5-poire => php5-poire package n'a pas pu être localisé: D


@rdlowrey Version PEAR: 1.9.2 Version PHP: 5.3.6-13Buntu3.3 Zend Moteur Version: 2.3.0 En cours d'exécution sur: Linux Eray-Ubuntu 3.0.0-15-Generic-Pae # 25-Ubuntu SMP Mon 2 19:40:15 UTC 2012 I686


D'accord, il semble donc que la seule façon de travailler est d'utiliser le programme d'installation de Go-Pear.Phark. Supprimer le apt-get php-poire à nouveau et exécutez les étapes d'installation Go-Pear.Phark. Même si le programme d'installation est sur le point / usr / bin / poire étant à votre service, il doit être sur la machine quelque part. Essayez un localiser la poire après l'installation et la sortie où l'exécutable binaire a été installée. Il semble que la seule option consiste à comprendre où elle est située et crée le symbole symbolique approprié. Une fois que vous avez trouvé l'emplacement réel de l'exécutable, essayez de l'exécuter et de voir si vous pouvez obtenir une sortie attendue de poire


Combien de flux de commentaires peut être nettoyé? Cela ressemble à tout avant que @eray, le commentaire sur la mise à jour 2 serait approprié d'être nettoyé.


@rdlowrey j'ai trouvé ça! C'est / usr / bin / poire ~


@rdlowrey, je l'ai été renommée de poire ~ à poire : D haha ​​je vais l'annuler. Et essayez-le. Et puis je supprimerai des commentaires.


PEART INSTALL --Alldeps Pear.PHPUNIT.DE/PHPUNIT => BASH: / USR / BIN / PEAR Il n'y a pas de fichier et poire ~ installation --alldeps poire.phpunit.de/phpunit => n'a pas pu ouvrir le fichier d'entrée: /usr/share/php/pearcmd.php


Tout d'abord, qu'est-ce que pic -v vous donne? En outre, quelle sortie obtenez-vous pour localiser pearcmd.php ?


(NOM NOM est PEART ~ RÉCOULEMENT). PEAR ~ -V => Impossible d'ouvrir le fichier d'entrée: /USR/Share/php/pearcmd.php et localiser pearcmd.php => rien.


Ok, obtenez-vous quelque chose à partir de poire ~ config-get php_dir ?


Pear ~ Config-get php_dir => Impossible d'ouvrir le fichier d'entrée: /USR/Share/php/pearcmd.php


Parfois, les gens doivent redémarrer la machine entière physiquement, probablement en raison des changements de chemin qui ne se propagent pas correctement. Avant de gaspiller des heures et après avoir essayé tout le reste, vous pourriez donner celui-ci un essai et que Lemme sache si cela le répare ...


Bien peut-être qu'il est possible que les symboles que vous avez créés auparavant soient interceptés la commande de poire avant de ne pas atteindre / usr / bin / poire ??? Vous pouvez vérifier votre annuaire ~ ~ / bin pour vous assurer qu'il n'y ait rien de là pour interférer ainsi que le répertoire / Home / Eray / Eray / I>. En outre, je voudrais rm / usr / bin / poire / usr / bin / poire ~ et essayez à nouveau la poire d'installer une fois que vous savez avec certitude que / usr / bin / poire n'existe pas.



1
votes

J'ai le mien en train de travailler en faisant un Installation manuelle .


5 commentaires

1.9.4 (dit en bas de Q), mais l'installation manuelle ne doit pas nécessiter d'utilisation de poire.


Je reçois PHP Fatal Error: classe 'phpunit_textui_command' introuvable in /usr/share/php/phpunit/phpunit.php sur la ligne 46 Erreur.


@Eray: Est-ce que phpunit sur sa propre course ou obtenez-vous cette erreur lorsque vous essayez d'exécuter vos tests? J'ai découvert que j'ai eu une erreur dans ma classe de test, mais phpunit était bien. En fait, je ne pense pas que votre phpunit.php devrait contenir une référence à cette classe ... Quel est votre phpunit.php?


Je reçois cette erreur lorsque j'ai essayé de lancer une commande phpunit . Je n'essaye aucun fichier PHP.


@Eray: Tu es sûr de ne pas avoir de vieux code PHPUnit allongé? Essayez quel phpunit et assurez-vous qu'il exécute la bonne.



1
votes

Je viens de mettre à niveau mon système Ubuntu et j'ai une poire 1,9,4 stable. Exécuter xxx pré>

pour obtenir votre ubuntu synchronisé et à jour. P>

Si vous avez toujours des luteurs avec les versions comme ci-dessus, ma suggestion consiste à installer une version précédente de php_codécouverage qui est compatible avec votre phpunit. Avant de mettre à niveau mon système, j'ai eu PHPUnit-3.5.15 (Stable), PHP_CODÉCOVERAGE 1.0.5 (Stable) installé avec poire 1.9.2. Si ceci est votre version PHPUNIT P>

sudo pear install PHP_CodeCoverage-1.0.5


0 commentaires