【问题标题】:Installing Doctrine2 with PEAR用 PEAR 安装 Doctrine2
【发布时间】:2012-11-27 16:17:56
【问题描述】:

虽然我尝试了这个: sudo pear install -o pear.doctrine-project.org/DoctrineORM

我收到以下错误:

    Package "pear.doctrine-project.org/DoctrineORM" dependency  "pear.symfony.com/Console" has no releases
    Package "pear.doctrine-project.org/DoctrineDBAL" dependency "pear.symfony.com/Console" has no releases
    doctrine/DoctrineORM requires package "pear.symfony.com/Console" (version >= 2.0.0)
    doctrine/DoctrineORM requires package "pear.symfony.com/Yaml" (version >= 2.0.0), installed version is 1.0.6
    doctrine/DoctrineDBAL requires package "pear.symfony.com/Console" (version >= 2.0.0)
    No valid packages found
    install failed

通过执行以下操作解决了上述问题: sudo apt-get purge php-pear

结果如下:

    Removing php-pear ...
    Purging configuration files for php-pear ...
    dpkg: warning: while removing php-pear, directory '/usr/share/doc/php5-common/PEAR' not empty so not removed
    dpkg: warning: while removing php-pear, directory '/usr/share/php/.channels' not empty so not removed

以下文件夹也是如此:

    /usr/share/php/.registry/
    /usr/share/php/.channels/.alias
    /usr/share/php/data
    /usr/share/doc/php5-common/PEAR/Archive_Tar/docs
    /usr/share/doc/php5-common/PEAR

所以我将它们全部删除,然后彻底清除 php-pear 并重新安装。

现在,sudo pear channel-discover pear.doctrine-project.org 也没有说频道已经在注册表中,后面的步骤也成功了。

虽然我已经在上述步骤中解决了我的问题。虽然我未能使用 cmets 提出的建议和对此post的答案@

但我只是好奇一开始可能出了什么问题。 PEAR 为何无法获取正确版本的 Doctrine2?

即使accepted answer 的流程也没有帮助。

【问题讨论】:

  • 我有posted this as an answer,因为我能够摆脱我遇到的 PEAR 问题。但是当我认为我遵循的过程可以解决某人时,它被删除了。

标签: php doctrine-orm pear failed-installation


【解决方案1】:

您应该已经升级了pear.symfony.com/Yaml 软件包。 PEAR 列出了 2.0.0 版本作为要求,但您只有 1.0.6:

$ pear upgrade symfony/yaml

此外,它没有找到pear.symfony.com/console 的(兼容)版本——这是失败的主要原因。一个解决方案是调用pear clear-cache,然后调用可能的pear channel-update pear.symfony.com。之后,控制台dep应该会自动安装。

【讨论】:

  • 在这种情况下升级的方法是什么(即Yaml)。我做了频道更新,但没有做pear clear-cache。
【解决方案2】:

我遇到了与本主题相同的问题,但安装了 Doctrine pear。

当我尝试这个时: sudo pear install -o pear.doctrine-project.org/DoctrineORM

我收到以下错误:

        Package "pear.doctrine-project.org/DoctrineORM" dependency  "pear.symfony.com/Console" has no releases
        Package "pear.doctrine-project.org/DoctrineDBAL" dependency "pear.symfony.com/Console" has no releases
        doctrine/DoctrineORM requires package "pear.symfony.com/Console" (version >= 2.0.0)
        doctrine/DoctrineORM requires package "pear.symfony.com/Yaml" (version >= 2.0.0), installed version is 1.0.6
        doctrine/DoctrineDBAL requires package "pear.symfony.com/Console" (version >= 2.0.0)
        No valid packages found
        install failed

我已经应用了 @Paulo 和 @Parris 在另一个 SO QA 中提出的建议。但这并没有帮助。在这里发布只是为了记录。

编辑:

通过执行以下操作解决了上述问题: sudo apt-get purge php-pear

结果如下:

        Removing php-pear ...
        Purging configuration files for php-pear ...
        dpkg: warning: while removing php-pear, directory '/usr/share/doc/php5-common/PEAR' not empty so not removed
        dpkg: warning: while removing php-pear, directory '/usr/share/php/.channels' not empty so not removed

以下文件夹也是如此:

        /usr/share/php/.registry/
        /usr/share/php/.channels/.alias
        /usr/share/php/data
        /usr/share/doc/php5-common/PEAR/Archive_Tar/docs
        /usr/share/doc/php5-common/PEAR

所以我将它们全部删除,然后彻底清除 php-pear 并重新安装。

现在,sudo pear channel-discover pear.doctrine-project.org 也没有说频道已经在注册表中,后面的步骤也成功了。

谢谢大家!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 2013-12-29
    • 2013-11-03
    • 2012-01-06
    • 2011-12-09
    • 2011-10-06
    • 1970-01-01
    相关资源
    最近更新 更多