首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从packagist安装Satis依赖项

如何从packagist安装Satis依赖项
EN

Stack Overflow用户
提问于 2015-03-25 10:04:37
回答 1查看 1.9K关注 0票数 3

我已经成功地在我自己的服务器上建立了Satis,并且能够从它中提取包。

但是,这些私有包中所需的依赖项正在不断地被克隆到它们的边缘版本,而不是指定的版本约束中。我认为萨提斯正在创建最新开发版本的本地镜像。然而,我不想有一个本地镜像,我只是需要他们直接安装从Packagist。

那么,我需要如何设置项目/包/ Satis,以便从Packagist安装那些私有包中的依赖项?

谢谢。

这是我的文件:

代码语言:javascript
复制
{
  "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
}

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

代码语言:javascript
复制
{
    "name": "Test Project",
    "description": "",
    "require": {
        "php": ">=5.4.0",
        "USERNAME/REPO": "*"
    },
    "repositories": [
        {
            "type": "composer",
            "url": "http://packages.URL"
        }
    ],
    "minimum-stability": "dev"
}

这是私有包的composer.json:

代码语言:javascript
复制
{
    "name": "USERNAME/RPO",
    "description": "",
    "require": {
        "php": ">=5.4.0",
        "illuminate/support": "5.0.*",
        "vinkla/hashids": "~1.0"
    },

    "minimum-stability": "dev"
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-25 10:24:56

在Satis中,您定义了"require-all": true。这是默认的,并选择您定义的存储库中所有包的所有版本。

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

代码语言:javascript
复制
"require": {
    "company/packageA": "*",
    "company/packageB": "1.2.3",
    "company/packageC": "2.0.0"
}

这是在撒提丝上摘樱桃的包装

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

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

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

是否有可能让多个包驻留在一个定义的存储库中,还是每个包都需要自己的存储库url条目?

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

使用"type": "composer"和克隆的打包器,您可以存储多个repos。想想http://drupal-composer.orghttp://packagist.drupal-composer.org/

代码语言:javascript
复制
{
    "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
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29252623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档