ivanshumakov
@ivanshumakov
Делаю свои первые шаги в мире IT

Composer: как добавить приватный репозиторий в зависимости?

При выполнении composer install получаю ошибку:
Your requirements could not be resolved to an installable set of packages.

Problem 1 - Installation request for my/package dev-master -> satisfiable by my/package[dev-master]. - my/package dev-master requires my/library dev-master -> no matching package found.

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://getcomposer.org/doc/04-schema.md#minimum-s... for more details.
It's a private package and you forgot to add a custom repository to find it


composer.json
общий:
{
  "require": {
    "my/package": "dev-master"
  },
  "repositories": [
    {
      "type": "vcs",
      "url": "git@github.com:my/package.git"
    }
  ]
}


Для my/package:
{
  "name": "my/package",
  "description": "package",
  "license": "MIT",
  "authors": [
    {
      "name": "my",
      "email": "my@gmail.com",
      "homepage": "https://github.com/my/"
    }
  ],
  "require": {
    "php": ">=7.4.2",
    "my/library": "dev-master"
  },
  "repositories": [
    {
      "type": "vcs",
      "url": "git@github.com:my/library.git"
    }
  ],
  "autoload": {
    "psr-4": {
      "my\\package\\": "src/"
    }
  }
}


для my/library:

{
  "name": "my/library",
  "description": "a library",
  "license": "MIT",
  "authors": [
    {
      "name": "my",
      "email": "my@gmail.com",
      "homepage": "https://github.com/my/"
    }
  ],
  "require": {
    "php": ">=7.4.2",
    "ext-json": "*",
    "mesilov/bitrix24-php-sdk": ">=0.7.0",
    "guzzlehttp/guzzle": "~6.0"

  },
  "autoload": {
    "psr-4": {
      "my\\": "src/"
    }
  }
}


Что примечательно, если прописываю my/library как зависимость в общем файле composer.json, то все собирается как положено
  • Вопрос задан
  • 497 просмотров
Решения вопроса 2
BoShurik
@BoShurik
Symfony developer
repositories в зависимостях игнорируется
root-only - значит он работает только для основного composer.json
Ответ написан
dmitriylanets
@dmitriylanets
веб-разработчик
вам необходимо развернуть satis, это что то вроде packagist.org
satis на вашем сервере на основе конф.файла satis.json формирует дистрибутивы ваших приватных библиотек, и их заависимостей, так создает карту зависимостей.

и больше вам нет смысла указывать "repositories": [
{
"type": "vcs",
"url": "git@github.com:my/library.git"
}
],

просто указываете "my/library":"ver"

ну и новый источник
"repositories": [
{
"type": "composer",
"url": "https://mysatis.ru"
}
]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы