【问题标题】:Composer can't find a satisfiable package versionComposer 找不到满意的包版本
【发布时间】:2015-04-09 13:34:12
【问题描述】:

我使用 Toran 作为打包代理和我的主要私有存储库列表。我添加了一个私有组件,托管在 bitbucket 上。以下是组件的composer.json

{
    "name": "naroga/metronic-bundle",
    "authors": [
        {
            "name": "Pedro Cordeiro",
            "email": "<my email>"
        }
    ],
    "require": {},
    "autoload": {
        "psr-0" : {
            "Naroga\\MetronicBundle" : "src"
        }
    }
}

我没有在这个naroga/metronic-bundle 组件中标记单个提交,因为它仍处于开发阶段的早期阶段。然后我在另一个项目中使用以下composer.json 要求它:

{
    "repositories": [
        {"type": "composer", "url": "http://<my toran host>/repo/private/"},
        {"type": "composer", "url": "http://<my toran host>/repo/packagist/"},
        {"packagist": false}
    ],
    "name": "naroga/sample-project",
    "type": "project",
    "autoload": {
        "psr-0": { "": "src/", "SymfonyStandard": "app/" }
    },
    "require": {
        ...
        "naroga/metronic-bundle": "dev-master"
    },
}

我不想降低最低稳定性,因为我需要许多其他应该保持稳定的组件。

当我在我的项目中运行一个简单的composer update -vvv 时,composer 会正确下载我的项目的composer.json,如下所述:

Downloading http://<my toran host>/repo/packagist/p/naroga/metronic-bundle.json

但是,最后总是抛出这个错误:

Problem 1
 - The requested package naroga/metronic-bundle could not be found in any version, there may be a typo in the package name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

我不想添加任何标签,也不想降低项目的minimum-stability。如何继续安装此软件包?


composer show naroga/metronic-bundle -vvv 显示以下输出:

C:\Apache24\htdocs\naroga>composer show naroga/metronic-bundle -vvv
Reading ./composer.json
Loading config file C:/Users/pedro.cordeiro/AppData/Roaming/Composer/auth.json
Loading config file ./composer.json
Executing command (CWD): git describe --exact-match --tags
Executing command (CWD): git branch --no-color --no-abbrev -v
Executing command (CWD): git rev-list master..outer-blog-view
Failed to initialize global composer: Composer could not find the config file: C:/Users/pedro.cordeiro/AppData/Roaming/Composer/composer.json
To initialize a project, please create a composer.json file as described in the http://getcomposer.org/ "Getting Started" section
Downloading http://<my toran host>/repo/private/packages.json
Writing C:/Users/pedro.cordeiro/AppData/Local/Composer/repo/http---<my toran host>-repo-private/packages.json into cache
Downloading http://<my toran host>/repo/packagist/packages.json
Writing C:/Users/pedro.cordeiro/AppData/Local/Composer/repo/http---<my toran host>-repo-packagist/packages.json into cache
Downloading http://<my toran host>/repo/private/p/naroga/metronic-bundle.json
Writing C:/Users/pedro.cordeiro/AppData/Local/Composer/repo/http---<my toran host>-repo-private/provider-naroga$metronic-bundle.json into cache
Downloading http://<my toran host>/repo/packagist/p/naroga/metronic-bundle.json
Downloading http://<my toran host>/repo/packagist/p/naroga/metronic-bundle.json
name     : naroga/metronic-bundle
descrip. :
keywords :
versions : dev-master
type     : library
license  :
source   : [git] https://naroga@bitbucket.org/naroga/metronic-bundle.git c8cc1d66cae1e24b7f4039b690c999a083dd5775
dist     : [zip] http://<my toran host>/repo/private/dists/naroga/metronic-bundle/9999999-dev/c8cc1d66cae1e24b7f4039b690c999a083dd5775.zip c8cc1d66cae1e24b7f4039b690c999a083dd5775
names    : naroga/metronic-bundle

autoload
psr-0
Naroga\MetronicBundle => src

【问题讨论】:

    标签: git composer-php bitbucket toran-proxy


    【解决方案1】:

    首先,您可以使用以下方法确定包是否可见:

    composer show naroga/sample-project
    

    如果它没有列出任何内容,则意味着它在您的 Toran 存储库中根本不存在,这可能表明您在那里错误地配置了它,或者只是忘记将它添加到 Toran。

    以下行本身并没有多大意义,它只是表示作曲家正在 toran repo 中寻找该包,但不能保证它存在:Downloading http://&lt;my toran host&gt;/repo/packagist/p/naroga/metronic-bundle.json

    【讨论】:

    【解决方案2】:

    事实证明,toran-proxy 不会像处理 packagegist 存储库那样以惰性方式处理私有存储库。

    因此,在添加新的私有存储库后,必须运行 php bin/cronphp app/console toran:cron

    我已经重新同步了运行这个简单命令的存储库,我的包现在可见了。

    【讨论】:

    • 啊,我明白了,是的,这确实是必要的,除非你在 git repo 中设置了一个钩子,以便它告诉 toran 在你每次推送更改时更新。
    猜你喜欢
    • 2022-01-08
    • 2019-06-28
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2012-12-30
    相关资源
    最近更新 更多