Ошибка получения «Не найден драйвер для обработки репозитория VCS» для Composer и SVN

#php #svn #composer-php

#php #svn #composer-php

Вопрос:

Я новичок в Composer, я уже следил https://getcomposer.org/doc/05-repositories.md#subversion-options структура для создания примера с использованием Composer.

Однако я получаю следующее сообщение об ошибке с Composer и SVN при использовании команды composer install:

[InvalidArgumentException]
Не найден драйвер для обработки репозитория VCS http://myexamplesvn/MyCommon-1.0 /…..

Вот моя настройка:

 "repositories": [
    {
        "type": "vcs",
        "url": "http://myexamplesvn/MyCommon-1.0/"
    }
],
"require": {
    "my-common/my-common":"*"
}
 

Не могли бы вы предоставить мне какую-либо идею или предложение?

Ответ №1:

У меня была аналогичная проблема с репозиторием github при использовании адреса HTTPS:

 {
    "type": "vcs",
    "url": "https://github.com:<user>/<repo>"
}
 

но использование .git пути SSH сработало для меня:

 {
    "type": "vcs",
    "url": "git@github.com:<user>/<repo>.git"
}
 

Если в используемом вами репозитории нет a composer.json , то a composer.json с таким кодом может работать:

 "require": {
    "<user>/<repo>": "dev-<branch>"
},
"repositories": [
    {
        "type": "package",
        "package": {
            "name": "<user>/<repo>",
            "version": "dev-<branch>",
            "dist": {
                "url": "https://github.com/<user>/<repo>/archive/<branch>.zip",
                "type": "zip"
            }
        }
    }
]
 

Ответ №2:

Если вы извлекаете пакет локально, убедитесь, что

 git init 
 

и зафиксируйте

Ответ №3:

У этого может быть много разных возможностей, но это также случается, когда ваш репозиторий связан с закрытыми / открытыми ключами ssh, а ваш закрытый ключ не защищен. Решение состоит в том, чтобы установить его на 600, пример ниже:

 sudo chmod 600 ~/.ssh/id_rsa
 

Ответ №4:

Как я только что узнал, другим источником этой проблемы могут быть просто права доступа к целевому репозиторию SVN.

У меня была следующая настройка в composer.json для подключения к репозиторию:

 "repositories": [
    {
        "type": "vcs",
        "url": "https://host.com/RepositoryName/",
        "trunk-path": "trunk",
        "branches-path": "branches",
        "tags-path": "tags"
    }
],
"http-basic": {
    "host.com": {
        "username": "(username)",
        "password": "(password)"
    }
},
"require": {
    "company/project": "dev-branchname"
},    
 

Проблема заключалась в том, что пользователь, определенный в разделе http-basic, не был авторизован для просмотра всего репозитория. Администратор SVN ограничил доступ только к целевой ветке.

Это, безусловно, крайний случай, но я считаю, что все же неплохо проверить права доступа к репозиторию, прежде чем пытаться искать более экзотические причины.