使用具有已删除依赖项的composer包

时间:2014-05-21 14:05:45

标签: php composer-php simplesamlphp

我想使用simplesamlphp包来实现我的SSO。 但是,我无法通过composer安装软件包,因为其中一个依赖项不再存在。

"simplesamlphp/simplesamlphp": "dev-master"

运行composer update -o后的输出:

  Problem 1
    - simplesamlphp/saml2 v0.4.1 requires robrichards/xmlseclibs 1.3.* -> no matching package found.
    - simplesamlphp/saml2 v0.4.0 requires robrichards/xmlseclibs 1.3.* -> no matching package found.
    - simplesamlphp/saml2 v0.3.0 requires robrichards/xmlseclibs 1.3.* -> no matching package found.

我知道simplesamlphp有一个包simplesamlphp / xmlseclibs。有没有办法加载该包而不是不存在的robrichards包?

我在Composer文档中搜索了答案,但别名仅用于本地存储库。

2 个答案:

答案 0 :(得分:1)

即将推出的软件包版本有一个更新的composer.json,通过使用软件包维护者创建的只读镜像修复已删除依赖项的问题。

与此同时,这对使用该软件包的任何人都没有帮助,尤其是在您需要稳定版本的情况下。

软件包维护者应该发布一个point release,只修改依赖项,将最新的稳定版本指向重定位的依赖项。

似乎没有办法解决这种手动安装软件包及其依赖性的问题。

答案 1 :(得分:1)

我设法解决了问题。在他们的github源代码中,他们将不存在的包定义为存储库。所以我将该存储库添加到我自己的composer.json中,现在它终于可以工作了! :d

我的composer.json片段供参考:

{
    "require": {
        "simplesamlphp/simplesamlphp": "dev-master"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "robrichards/xmlseclibs",
                "version": "1.3.1",
                "source": {
                    "type": "svn",
                    "url": "http://xmlseclibs.googlecode.com/svn",
                    "reference": "trunk@50"
                },
                "autoload": {
                    "files": ["xmlseclibs.php"]
                }
            }
        }
    ],
    "minimum-stability": "dev",
    "prefer-stable": true
}