【问题标题】:Your requirements could not be resolved to an installable set of packages您的要求无法解决为一组可安装的软件包
【发布时间】:2014-08-27 22:19:13
【问题描述】:

抱歉,这个问题与另一个问题重复。我无法解决我的问题。

我正在开发一个基于Ratchet 的项目。我正在尝试运行 Push Integration 示例。所以,为了运行,我应该使用 composer 来获取一些依赖项。我制作了一个 composer.json 文件,如下所示:

{
    "autoload": {
        "psr-0": {
            "MyApp": "src"
        }
    },
    "require": {
        "cboden/ratchet": "0.3.*",
        "react/zmq": "0.2.*|0.3.*"
    }
}

当我对其执行 composer 时,会出现以下错误:

Loading composer repositories with package information
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - react/zmq v0.3.0 requires ext-zmq * -> the requested PHP extension zmq is missing from your system.
    - react/zmq v0.2.0 requires ext-zmq * -> the requested PHP extension zmq is missing from your system.
    - Installation request for react/zmq 0.2.*|0.3.* -> satisfiable by react/zmq[v0.2.0, v0.3.0].

你可以在下面找到Ratchet和ZMQ的composer.json:

ZMQ:

{
    "name": "react/zmq",
    "description": "ZeroMQ bindings for React.",
    "keywords": ["zmq", "zeromq"],
    "license": "MIT",
    "require": {
        "php": ">=5.4.0",
        "ext-zmq": "*",
        "evenement/evenement": "~2.0",
        "react/event-loop": "0.4.*"
    },
    "require-dev": {
        "ext-pcntl": "*"
    },
    "autoload": {
        "psr-0": { "React\\ZMQ": "src" }
    },
    "extra": {
        "branch-alias": {
            "dev-master": "0.4-dev"
        }
    }
}

棘轮:

{
    "name": "cboden/ratchet"
  , "type": "library"
  , "description": "PHP WebSocket library"
  , "keywords": ["WebSockets", "Server", "Ratchet", "Sockets"]
  , "homepage": "http://socketo.me"
  , "license": "MIT"
  , "authors": [
        {
            "name": "Chris Boden"
          , "email": "cboden@gmail.com"
          , "role": "Developer"
        }
    ]
  , "support": {
        "forum": "https://groups.google.com/forum/#!forum/ratchet-php"
      , "issues": "https://github.com/ratchetphp/Ratchet/issues"
      , "irc": "irc://irc.freenode.org/reactphp"
    }
  , "autoload": {
        "psr-0": {
            "Ratchet": "src"
        }
    }
  , "require": {
        "php": ">=5.3.9"
      , "react/socket": "0.3.*|0.4.*"
      , "guzzle/http": "~3.6"
      , "symfony/http-foundation": "~2.2"
      , "symfony/routing": "~2.2"
    }
}

怎么了?请给我一个解决方案。 在此先感谢:)

【问题讨论】:

    标签: php composer-php zeromq php-extension


    【解决方案1】:

    如果您在 Windows 上使用 Xampp,请按照以下步骤操作

    1. 在此处http://pecl.php.net/package/zmq 下载所有 dll 到您匹配的操作系统。 确保你得到了正确的(x86 或 x64),并且它是线程安全的或非线程安全的。你怎么知道的?是时候玩 DLL 轮盘赌了。
    2. 将libzmq.dll 复制到您的xampp/php/
    3. 复制php_zmq.dll到你的php扩展目录(例如xampp/php/ext/)
    4. 然后将其添加到您的 php.ini extension=php_zmq.dll

    【讨论】:

      【解决方案2】:

      好的,我们开始...

      您必须事先在操作系统中安装 ZMQ 和 ZMQ 绑定。 以下示例基于 Debian Linux,但它应该可以在其他操作系统中运行。

      首先: 安装 0MQ: 转到http://zeromq.org/area:download 并根据您的操作系统选择一个包,在我的情况下,我选择了 POSIX tarball 稳定版 4.0.4。

      ~$ tar -xvf zeromq-4.0.4.tar
      ~$ cd zeromq-4.0.4
      ~$ ./configure
      ~$ make
      ~$ sudo make install
      

      好的,我们刚刚安装了 ZMQ 现在需要安装 zmq php binding... 确保安装了 php-dev 和 php pear。如果没有:

      ~$ sudo apt-get install php5-dev php-pear
      ~$ sudo pecl install zmq-beta
      

      好的,我们现在已经安装了 ZMQ 和 php 绑定(ext-php),但是我们应该在 php.ini 中添加“extension=zmq.so”(或 windows 上的 extension=php_zmq.dll): 就我而言:

      ~$ sudo nano /etc/php5/apache2/php.ini
      

      注意:如果 PHP 版本是 5.4.x(或 5.4+,但我还没有测试...)你需要在 /etc/php5 中添加一个 zmq.ini 文件/conf.d 并输入“extension=zmq.so”:

      ~$ sudo nano /etc/php5/conf.d/20-zmq.ini
      

      重新加载 HTTP 服务器(在我的例子中是 apache):

      ~$  sudo service apache2 reload
      

      哇!!!现在我们要更新作曲家要求:

      ~$ composer --verbose update
      Loading composer repositories with package information
      Updating dependencies (including require-dev)
        - Installing react/zmq (v0.3.0)
          Downloading: 100%         
          Extracting archive
      
      Writing lock file
      Generating autoload files
      

      【讨论】:

        【解决方案3】:

        如果您在遵循上述答案后仍然遇到相同的错误,则可能是因为composer 通常使用的php.ini 不正确。
        您还必须更新CLI PHP 的ini。

        如果您在终端内运行命令php --ini,那么您应该会看到如下内容:

        这个.ini 的用途与/etc/php5/apache2/php.ini 不同。因此,如果您认为您已经按照正确的工作流程安装了扩展程序,请更新 /etc/php5/cli/php.ini 并在其中添加 extension=zmq.so。

        希望您在使用 composer 安装时摆脱 the requested PHP extension zmq is missing 错误。

        【讨论】:

        • 你是神中的神!!!这就是我在半小时后试图弄清楚到底出了什么问题后所需要的。非常感谢。
        • 很高兴听到这个消息:)
        • 是的!最后一切正常。感谢您的额外提示!
        • 我没有得到php ini文件的cli列表。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-24
        • 2016-03-22
        • 2018-10-22
        • 2019-06-28
        • 1970-01-01
        • 2016-06-13
        相关资源
        最近更新 更多