我使用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:Apache24htdocsnaroga>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
NarogaMetronicBundle => src
首先,您可以使用来判断包是否可见
composer show naroga/sample-project
如果它没有列出任何内容,那么这意味着它根本不存在于您的Toran回购中,这可能表明您在那里配置错误,或者只是忘记将其添加到Toran中。
以下行本身并没有多大意义,它只是意味着composer正在toran repo中寻找该包,但它并不能保证它的存在:Downloading http://<my toran host>/repo/packagist/p/naroga/metronic-bundle.json
事实证明,toran代理不会像处理packagist存储库那样以懒惰的方式处理私有存储库。
因此,在添加新的专用存储库后,必须运行php bin/cron
或php app/console toran:cron
。
我已经重新同步了运行这个简单命令的存储库,现在可以看到我的包了。