簡體   English   中英

PHPUnit,PEAR升級錯誤

[英]PHPUnit , PEAR upgrading Errors

注意:我已閱讀有關此問題的所有問題

PEAR在我的系統上安裝和配置(Ubuntu 11.10 + Apache / 2.2.20)。 因為

<?php
require_once 'System.php';
var_dump(class_exists('System', false));
?> 

回來這個:

bool(true)

PEAR手冊:檢查PEAR是否正常工作步驟4

當我試圖使用phpunit我收到此錯誤。

PHP Warning:  require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/bin/phpunit on line 38
PHP Fatal error:  require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php' (include_path='.:/usr/share/php:/usr/share/pear') in /usr/bin/phpunit on line 38

在此錯誤之后我決定安裝它

sudo /usr/bin/pear install phpunit/PHP_CodeCoverage

但我得到了

phpunit/PHP_CodeCoverage requires PEAR Installer (version >= 1.9.4), installed version is 1.9.2

使用sudo pear upgrade升級PEAR時出現此錯誤

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

我不確定是什么問題?

額外

commandresult

/usr/bin/pear config-get php_dir/usr/share/php

Configuration File (php.ini) Path (on phpinfo();)/etc/php5/apache2

php -c /etc/php5/apache2/php.ini -r 'echo get_include_path()."\\n";' .:/usr/share/php

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

PEAR版本:安裝了1.9.2和php-pear軟件包。

PEAR 1.9.2已經過時,並且破壞了新的梨形服務器基礎設施修復的希望。

我不知道為什么發行版仍然堅持一些剛剛破壞的東西:)

Install a new pear via go-pear.phar ,並確保你有pear version 1.9.4然后強制梨忽略它的舊緩存文件使用

sudo pear install --force --alldeps phpunit/phpunit

擺脫舊梨:

sudo apt-get purge php5-pear

現在

which pear

應導致命令未被找到。 如果它仍然存在刪除/ usr / share / php中的二進制文件和相關的php類。

從您的控制台歷史記錄中我會說您沒有安裝具有sudo權限的新梨,因此它位於/ home /或/ usr / local /而不是默認系統位置。

只要你這應該沒關系

  • 擺脫老梨
  • 將php.ini include_path更改為新的pear安裝位置

對特定環境進行故障排除可能很困難......但是,這里......

我沒有使用實際的pear.phpunit.de通道安裝PHPUnit時遇到問題, 特別是在嘗試使用像apt-get或yum這樣的包管理器時。 首先,您需要確保您的梨裝置是最新的。 從包管理器中殺死現有安裝:

  • sudo apt-get purge php5-pear

然后確保刪除可執行二進制文件(如果它仍然存在)。 這可能是/ usr / bin / pear ,但您可能需要根據您的環境修改路徑:

  • rm / usr / bin / pear

接下來通過下載go-pear.phar並執行它來安裝新的pear。 確保使用sudo權限(或以root身份)安裝它,以便將其安裝在正確的位置

然后,您可以通過執行下一個命令來驗證pear的工作原理。 如果是這樣,您將獲得一個命令列表:

  • 梨幫助

最后,升級梨(以防萬一 - 你畢竟使用go-pear.phar獲得最新版本)。 在此之后,請確保使用實際的pear.phpunit.de通道來安裝PHPUnit:

  • sudo梨升級梨
  • sudo pear config-set auto_discover 1
  • sudo pear install --alldeps pear.phpunit.de/PHPUnit

這對我來說效果很好......希望它有所幫助。

UPDATE

要獲得PHPUnit的所有功能,您可能還需要執行以下操作:

  • sudo pear install pear.phpunit.de/PHPUnit_MockObject

你認為--alldeps會涵蓋這個,但......

更新2

此方法不適用於當前的Ubuntu 11.10,因為它安裝了破碎的梨安裝程序1.9.2 ...

在使用go-pear.phar安裝方法繼續出現問題的情況下,這是另一種方法...

  • sudo apt-get install php-pear

接下來,告訴PEAR更新自己的頻道。

  • sudo pear channel-update pear.php.net

然后,告訴PEAR將自己升級到最新版本。

  • sudo梨升級全部

最后,安裝上面禁止的PHPUnit ...

  • sudo pear config-set auto_discover 1
  • sudo pear install --alldeps pear.phpunit.de/PHPUnit

我通過手動安裝讓我的工作。

我剛剛升級了我的Ubuntu系統,我的PEAR 1.9.4穩定了。

sudo apt-get update
sudo apt-get upgrade

讓你的Ubuntu同步和最新。

如果您仍在努力使用上述版本,我的建議是安裝與您的phpunit兼容的PHP_CodeCoverage的早期版本。 在我升級系統之前,我使用PEAR 1.9.2安裝了phpunit-3.5.15(穩定版),PHP_CodeCoverage 1.0.5(穩定版)。 如果這是你的phpunit版本

sudo pear install PHP_CodeCoverage-1.0.5

應該使用PEAR 1.9.2安裝PHP_CodeCoverage。

我希望這會有所幫助,讓你的單元測試運行起來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM