7

我对 Satis 真的很陌生,我发现了这个教程:https ://getcomposer.org/doc/articles/handling-private-packages-with-satis.md 。

但我仍然无法让自己开始。Satis 是基于项目安装的吗?如果是这样,这是否意味着我必须在每个新项目上安装 Satis?

我试图composer.phar create-project composer/satis --stability=dev从一个文件夹运行,但我收到错误消息,提示找不到 composer.phar。因此,我尝试使用composer create-project composer/satis --stability=dev它在我运行 composer 的文件夹中创建一个名为 satis 的新文件夹。

那么,我该如何安装 Satis 并使用它呢?你知道有什么视频教程可以教我们吗?我在 Youtube 上找不到任何东西。

谢谢你。

4

2 回答 2

9

但我仍然无法让自己开始。Satis 是基于项目安装的吗?如果是这样,这是否意味着我必须在每个新项目上安装 Satis?

不,satis 是您个人的类似打包专家的存储库。在其中,您保留了一组定义,用于获取您想要自己托管的包的位置,而不是从 packagegist 获取它们。

我试图从一个文件夹运行 composer.phar create-project composer/satis --stability=dev 并且我收到错误消息,提示找不到 composer.phar。

如果 composer 不在您的路径中,该命令将是 php 'composer.phar' ( https://getcomposer.org/doc/00-intro.md#globally )

因此,我尝试使用 composer create-project composer/satis --stability=dev 并在我运行 composer 的文件夹中创建一个名为 satis 的新文件夹。

很好,这意味着您已将 composer.phar 移动到 /usr/local/bin/composer 并且您可以通过运行“composer”来全局运行它(这意味着您可以从系统中的每个目录运行它)

关于如何运行 satis 的“合乎逻辑”的分步说明应该澄清我认为让您感到困惑的事情:

背景

您想要满足,因为您想从自己的存储库(git 或其他,我将用 git 制作我的示例)中提供一些项目,而不是从作曲家默认使用的服务中定义的存储库中提取它,即包装师。可能您想对原始包进行更改,并且不希望在包有更新时覆盖它们。因此,您需要一个中间步骤,您可以将您的更改与上游更改合并。

简要作曲家工作流程

Packagist 不保存包的源代码,它保存每个包的一组定义(composer.json 文件),并且在这组定义中,包的 repo 是可用的。

当你运行作曲家时,

  • 它读取 packagegist 中的定义
  • 它从定义的公共仓库(github、git、svn 等)下载包
  • 它按照包本身中的其他定义对其进行编译

简要 Composer/Satis 工作流程

使用 satis 的流程是: - Composer 被指示使用 satis 中的定义 - 它读取在 satis 中找到的定义 - 它从 satis 中定义的公共 repo 下载包 - 它按照包本身中的其他定义对其进行编译

逐步创建有用的 Composer/Satis/Git 设置

根据上述,一步一步的说明是:

  1. 全局安装作曲家(为了简单起见,你已经有了)
  2. 在一个可以从网络上获得的文件夹中,安装 satis
  3. 在系统中的某个位置(最容易在专用 git 用户的家庭位置,它可能是 'satis' 用户),克隆一个 git repo 以获得您想要修改并从您自己的 git repo 提供的包
  4. 在您的 satis 存储库中添加一个 satis.json 文件,其中包含项目的定义
  5. 从同一位置运行 'php bin/satis build satis.json root/(我更喜欢 'root/' 而不是标准的 'web/')并将 web 服务器的 documentRoot 设置为 'path/to/root/'

对于上面的第 4 步,例如:

{
"name": "My Repo",
"homepage": "http://satis.mydomain.com",
"repositories": [
    {
        "type": "git",
        "url": "satis@satis.mydomain.com:<packagename>"
    }
],

"require-all": true
}

现在你有了:composer、一个 git repo 和一个 satis repo(你自己的打包师)。所有这些都位于不同且独立的位置。

逐步使用 Composer 中的 Satis 和 Git

创建一个要安装包的目录按照 composer 的说明,在这个目录中添加一个 composer.json 文件。这一次,虽然包是您修改后的版本,但 composer.json 文件将如下所示:

{
    "name": "<yourname>/<packagename>",
    "repositories": [
        {
            "type": "composer",
            "url": "http://satis.yourdomain.com"
        },
        {"packagist": true},
        { "type": "composer", "url": "https://packagist.org" }
    ],
    "version": "dev-master",
    "require": {
        "<originalvendorname>/<packagename>": "dev-master"
    },
    "minimum-stability": "dev"
   }

用任何你想要的替换,而 originalvendorname/packagename 是包的全名。在这种情况下,您正在创建自己的包版本,该包是从您的 satis 存储库中定义的 git 存储库中提取的。在那里找不到的(可能的依赖项)将从每个依赖项的原始 git 存储库中提取,该存储库在 packagist.org 存储库中定义。

当您对自己的软件包版本进行更多修改并进行更多提交时,您需要更新您的 satis 存储库。按照上面的步骤 #5 重新构建它。

通过这种方式,它将链接到您的主分支的最后一次提交(以 'dev-' 为前缀)

希望这可以帮助。分步命令是在您在帖子开头提到的页面中找到的命令。

于 2014-05-25T20:38:01.280 回答
3

下载 satis 后,您需要创建一个配置 json 文件,其中包含指向您的存储库的位置。随便取个名字就行。之后,执行 bin/satis 命令来创建您的 Web 查看器。就像是

php bin/satis build mi-config.json web/

如果后一个命令有效,则您已正确配置您的 satis 服务器。然后,您需要做的就是将您的存储库源包含在主 composer.json 文件中:

"repositories": [
    {
        "type": "composer",
        "url": "http://localhost/satis/web"
    }
],
"require": {
    "my/package: "*"
},

我在你的问题中注意到的一点:

我试图运行 composer.phar create-project ...

我收到错误消息,提示找不到 composer.phar。所以,我尝试使用 composer create-project ...

您不需要在服务器上的每个项目上安装 composer,因为它适用于每个项目,只要您将其移动到共享路线(如文档所述,又名 /usr/local/bin/composer - 没有 phar 扩展名)。请记住,第一个示例是如果您的项目根目录中有作曲家(带有全名和扩展名),而第二个示例尝试使用位于您的用户/本地路径中的作曲家。

这不是视频,但希望对您有所帮助

于 2014-03-11T01:28:05.770 回答