2016-09-13 9 views
0

Просто нажал пакет packagist:Packagist против "мерзавца клон" и композитор установки

composer require rokfor/rokfor-slim:dev-master 

Это возвращение ошибки

Your requirements could not be resolved to an installable set of packages. 

    Problem 1 
    - Installation request for rokfor/rokfor-slim 
    dev-master -> satisfiable by rokfor/rokfor-slim[dev-master]. 
    - rokfor/rokfor-slim dev-master requires 
    jlndk/slim-jade ^1.0 -> no matching package found. 

Если я проверяю, как

$ git clone https://github.com/rokfor/rokfor-slim 
$ cd rokfor-slim 
$ composer install 

Все устанавливается просто отлично.

Я думаю, что здесь отсутствует что-то важное. Не разрешено ли выталкивать пакет в packagist с помощью источника из репозитория vcs?

composer.json выглядит следующим образом:

{ 
"name": "rokfor/rokfor-slim", 
"description": "Rokfor CMS: Headless CMS with JSON api", 
"keywords": ["rokfor", "slim","framework","view","template","jade"], 
"homepage": "http://cloud.rokfor.ch", 
"license": "MIT", 
"type": "project", 
"time": "2016-02-28", 
"authors": [ 
    { 
     "name": "Rokfor", 
     "homepage": "http://www.rokfor.ch" 
    } 
], 
"repositories": [ 
    { 
     "type": "vcs", 
     "url": "https://github.com/urshofer/slim-jade" 
    }, 
    { 
     "type": "vcs", 
     "url": "https://github.com/Rokfor/rokfor-php-db" 
    }, 
    { 
     "type": "vcs", 
     "url": "https://github.com/urshofer/slim-auth" 
    } 
], 
"require": { 
    "php": ">=5.5.0", 
    "slim/slim": "~3.0", 
    "jlndk/slim-jade": "^1.0", 
    "rokfor/db": "dev-versioning", 
    "monolog/monolog": "^1.17", 
    "slim/csrf": "^0.6.0", 
    "jeremykendall/slim-auth": "dev-slim-3.x", 
    "slim/flash": "^0.1.0", 
    "akrabat/rka-ip-address-middleware": "^0.4.0", 
    "palanik/corsslim": "dev-slim3", 
    "erusev/parsedown": "^1.6", 
    "predis/predis": "^1.0", 
    "lcobucci/jwt": "^3.1", 
    "ext-gd": "*" 
}, 
"require-dev": { 
    "phpunit/phpunit": "*" 
}, 
"minimum-stability": "dev", 
"prefer-stable": true 
} 
+0

Вам не хватает Google ... http://stackoverflow.com/questions/20996767/requirements-could-not-be-resolved-to-an-installable-set-of-packages – nerdlyist

+0

Ну, я не вижу точно так же, как полезно использовать другую ссылку: это касается неправильных требований, но «композиторное обновление» работает без проблем после установки самого пакета (через 'git clone' и' comper install'). моя точка зрения заключается в том, что прямой «композитор требует» не работает. – rokfor

+0

Вы можете установить вручную, отредактировав json или git, а затем обновите композитор. Вы должны вручную сделать это, чтобы обойти это. – nerdlyist

ответ

0

В библиотеке, вы не можете ничего, кроме библиотек, которые доступны на packagist.org ссылки. Или вы поручаете своим пользователям ссылаться на дополнительный источник информации о пакете.

Добавление репозиториев vcs и пакетов разрешено только для корня composer.json, что вы не можете влиять как на библиотеку, кроме того, что инструктируете ваших пользователей делать дополнительные вещи за пределами composer require your/lib. Какой вид раздражает, а также может быть подвержен соображениям безопасности, потому что это не только откроет дверь для вашей отдельной библиотеки, но и для ЛЮБОЙ библиотеки.

И как вы это делали с «jlndk/slim-jade» (который автор опубликовал из своего репозитория как 0.0.1, а другой автор повторно опубликовал его, не добавляя его в упаковку или изменяя имя библиотеки, добавляя тег версии 1.0), любой дополнительный источник информации о пакете может потенциально добавить дополнительную информацию о пакете, то есть добавить новую, вредоносную версию, например пакет symfony.

 Смежные вопросы

  • Нет связанных вопросов^_^