在 Packagist 上进行身份验证的 Composer 更新

7

我在使用laravel 5制作的项目中遇到了composer更新的问题。 每次我想要通过Packagist更新composer与其他的包时,都会弹出一个认证框(本不应该有),即使我输入我的github/packagist账号或者不输入,最终的结果都是这样:

Loading composer repositories with package information
Updating dependencies (including require-dev)
    Authentication required (packagist.org):
      Username:
      Password:



  [Composer\Downloader\TransportException]
  Invalid credentials for 'http://packagist.org/p/doctrine/inflector$caf0d38e
  3001eb2cbabe4192f701affcc10254307a3c01fa6b41a5579b2b648e.json', aborting.

我尝试删除vendor文件夹和composer.lock,重新安装composer,但出现了认证问题。我创建了另一个Laravel项目,但是它包含了很多vendor文件夹(例如doctrine inflector),它们需要认证。我还在composer.json中尝试了GitHub令牌。有人知道问题出在哪里吗?谢谢您的帮助。
D:\Code\pricer>composer diagnose
Checking composer.json: OK
Checking platform settings: FAIL
The xdebug extension is loaded, this can slow down Composer a little.
 Disabling it when using Composer is recommended.
Checking git settings: OK
Checking http connectivity: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking composer version: OK

我的身份验证和平台设置因xdebug而失败时,并没有遇到速率限制的问题。

当我删除该软件包并重新安装composer时

  Problem 1
    - laravel/framework v5.0.14 requires doctrine/inflector ~1.0 -> no matching
package found.
    - laravel/framework v5.0.14 requires doctrine/inflector ~1.0 -> no matching
package found.

Composer.json:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "laravel/framework": "5.0.*",
        "illuminate/html": "5.0.*@dev",
        "doctrine/dbal": "2.6.*@dev"
    },
    "require-dev": {
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php -r \"copy('.env.example', '.env');\"",
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

你能给我们展示一下你的 composer.json 文件吗?你尝试过不使用 doctrine/inflector 包吗?如果这样做,输出是什么? - Tomas Votruba
我在主贴中写了所有这些信息。 - Alxp
谢谢。我会尝试逐步安装软件包(到新目录),并观察何时失败。我自己尝试了一下,成功了。通过控制台:composer require "laravel/framework:5.0.*"composer require "illuminate/html:5.0.*@dev"composer require "doctrine/dbal:2.6.*@dev" - Tomas Votruba
我尝试了你的方法,但没有什么好的结果。然后我删除了homestead/vagrant/composer/php 5.4(wamp),并重新安装了它们,使用的是php版本5.5.12,现在我甚至无法使用composer命令。[ErrorException] fopen(): 文件名不能为空 - Alxp
谢谢,剩下的我自己试一下,我想我的电脑有问题,如果修好了,一切都会没问题的。 - Alxp
我已经解决了使用fopen()的部分,但现在它又提示我进行身份验证。composer -vvv错误链接 - Alxp
2个回答

3

我在认证方面遇到了问题,所以我运行了以下代码:

composer config --global repo.packagist composer https://packagist.org

然后我再次运行了更新,它成功了!请自行尝试。

非常感谢您宝贵的评论,您救了我一命。 - undefined

0

这实际上是一个端口问题。由于管理员在您的系统上阻止了端口,因此无法连接到特定端口。这就是为什么它要求进行身份验证的原因。

尝试连接到家庭网络或移动网络并执行composer update。这应该可以顺利进行而不需要请求凭据。

如果这对您有用,请将其标记为答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接