如何从packagist安装Satis包依赖项

Pro*_*tas 3 composer-php satis packagist

我已经在我自己的服务器上成功设置了Satis,并且可以从中提取包.

但是,这些私有包中所需的依赖关系不断被克隆到它们的前沿版本而不是指定的版本约束.我认为Satis正在创建最新开发版本的本地镜像.但是我不想拥有本地镜像,我只需要它们直接从Packagist安装.

那么我如何设置项目/包/ Satis以在从Packagist安装的那些私有包中具有依赖性?

谢谢.


这是我的Satis构建文件:

{
  "name": "Package Server",
  "homepage": "http://packages.URL",
  "repositories": [
    {
      "type": "vcs",
      "url": "git@bitbucket.org:USERNAME/REPO.git",
      "options": {
          "ssh2": {
              "username": "USERNAME",
              "pubkey_file": "PUBFILE",
              "privkey_file": "PRIVATEFILE"
          }
      }
    }
  ],
  "require-all": true
}
Run Code Online (Sandbox Code Playgroud)

这是需要私有包的项目的composer.json文件(包没有标记版本):

{
    "name": "Test Project",
    "description": "",
    "require": {
        "php": ">=5.4.0",
        "USERNAME/REPO": "*"
    },
    "repositories": [
        {
            "type": "composer",
            "url": "http://packages.URL"
        }
    ],
    "minimum-stability": "dev"
}
Run Code Online (Sandbox Code Playgroud)

这是私有包的composer.json:

{
    "name": "USERNAME/RPO",
    "description": "",
    "require": {
        "php": ">=5.4.0",
        "illuminate/support": "5.0.*",
        "vinkla/hashids": "~1.0"
    },

    "minimum-stability": "dev"
}
Run Code Online (Sandbox Code Playgroud)

Jen*_*och 5

在您定义的Satis配置中"require-all": true.这是默认设置,并选择您定义的存储库中所有软件包的所有版本.

您可以尝试删除"require-all": true支持require部分.这意味着Satis将只包含这些特定包及其版本,如下所示:

"require": {
    "company/packageA": "*",
    "company/packageB": "1.2.3",
    "company/packageC": "2.0.0"
}
Run Code Online (Sandbox Code Playgroud)

这是Satis的樱桃采摘包


因此,如果我理解正确,我需要在require键中添加指定私有存储库中可用的私有包,然后他们自己的依赖项将从Packagist安装?

添加require-dependencies- 这告诉Satis不仅镜像"require"部分中指定的包,还反映其所有依赖项.

请参阅https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md#resolving-dependencies

是否可以将多个软件包放在一个定义的存储库中,或者每个软件包是否需要在Satis中拥有自己的存储库URL条目?

我认为在一个"type": "vcs"存储库中不可能有多个包.

有了"type": "composer"克隆包装,您可以存储多个回购.想想http://drupal-composer.orghttp://packagist.drupal-composer.org/.

{
    "repositories": [
        { "type": "vcs", "url": "https://github.com/somewhere/packageA" },
        { "type": "composer", "url": "https://packagist.org" }
    ], 
    "require": {
        "package/packageA": "somewhere-dev",
        "phpunit/phpunit": "*"
    },
    "require-dependencies": true
}
Run Code Online (Sandbox Code Playgroud)