web-dev-qa-db-fra.com

Comment utiliser Composer pour installer un package sans version (uniquement maître)

Je suis nouveau au compositeur et j'essaye d'installer ceci suivant la lib via la mise à jour du compositeur

https://github.com/neitanod/forceutf8

donc, comme je comprends mon composer.json ressemble à ceci

{
    "config": {
        "vendor-dir": "libs/vendor"
    },
    "require": {
        "raven/raven": "0.7.1",
        "monolog/monolog": "1.7.*",
        "smarty/smarty": "3.1.16",
        "forceutf8/forceutf8": "master"
    }
}

Bt pour une raison quelconque (car je pense que forceutf8 n’a pas de version) son arrête avec erreur, tout le reste est installé correctement, erreur que j’obtiens est 

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package forceutf8/forceutf8 could not be found in any version, there may be a typo in the package na
me.

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://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems. 

j'ai essayé de suivre la version aussi mais pas de chance 

{
    "config": {
        "vendor-dir": "libs/vendor"
    },
    "name": "career/skillquest",
    "repositories": [
      {
        "type": "vcs",
        "url": "https://github.com/neitanod/forceutf8"
      }
    ],
    "require": 
      {
        "forceutf8/forceutf8": "dev-master",
        "raven/raven": "0.7.1",
        "monolog/monolog": "1.7.*",
        "smarty/smarty": "3.1.16"
      }
}

Le problème était-il besoin d'être 

"neitanod/forceutf8": "dev-master"

NE PAS 

"forceutf8/forceutf8": "dev-master"
14
mahen3d

Dans composer.json :

{
    "name": "example/example-app",
    "repositories": [
      {
        "type": "vcs",
        "url": "https://github.com/neitanod/forceutf8"
      }
    ],
    "require": 
      {
        "neitanod/forceutf8": "dev-master",
        "raven/raven": "0.7.1",
        "monolog/monolog": "1.7.*",
        "smarty/smarty": "3.1.16"
      }
}
19
Alexandr T

Tout d'abord, vous avez le mauvais nom: forceutf8/forceutf8 Le nom correct est: neitanod/forceutf8

Composer ajoute un préfixe "dev-" à chaque nom de branche qui ne ressemble pas à un numéro de version, et un suffixe "-dev" aux noms de branche qui ressemblent à des numéros de version.

Exemple: la branche "maître" est appelée "dev-master", la branche "fonctionnalité" est appelée "dev-feature". La branche "1.0.x" s'appelle "1.0.x-dev".

Donc, cette partie est fausse:

"require": {
    "raven/raven": "0.7.1",
    "monolog/monolog": "1.7.*",
    "smarty/smarty": "3.1.16",
    "forceutf8/forceutf8": "master"
}

La version correcte serait:

"require": {
    "raven/raven": "0.7.1",
    "monolog/monolog": "1.7.*",
    "smarty/smarty": "3.1.16",
    "neitanod/forceutf8": "dev-master"
}

Demander des branches sans versions étiquetées n’est pas la meilleure chose à faire, car ces informations sont assez instables - tout nouveau commit peut casser des choses et il n’est pas si facile de pointer exactement sur le commit que vous voulez utiliser. Pour vous protéger contre cela, Composer par défaut ne charge pas ces branches de développement, mais ne charge que les versions stables. Vous devez activer le chargement des versions de développement:

"require": {
    "raven/raven": "0.7.1",
    "monolog/monolog": "1.7.*",
    "smarty/smarty": "3.1.16",
    "neitanod/forceutf8": "dev-master@dev"
}

L’indicateur "@dev" permet de charger les versions de développement de la version mentionnée (qui dans ce cas est une branche, mais "1.0.0@dev" fonctionnerait de la même manière, autorisant toutes les versions (y compris dev) de 1.0.0, comme "1.0.0-alpha", mais aussi la version stable "1.0.0").

Notez que vous pouvez également autoriser la version de développement pour TOUTES vos dépendances en utilisant "stabilité minimale", mais cela n'est pas recommandé car cela chargera les versions de développement pour TOUT conformément à la configuration requise. Dans votre cas, vous ne récupèreriez que la dernière version dev de la branche 1.7 de monolog, mais cela pourrait suffire à amener un logiciel jadis stable dans un état défaillant.

19
Sven

C'est simple! Vous devriez taper sur la console:

composer require blablabla@thepackage dev-master
2
Rafael Xavier

Vous devez spécifier le nom de la version dans le fichier composer.json . Il vous suffit de rechercher les paquetages installables avec Composer à l’adresse: https://packagist.org/

Cherchez le nom du paquet là-bas, vous trouverez le nom de la version . Et voici le lien vers le paquet que vous vouliez: https://packagist.org/packages/neitanod/forceutf8

1
jayeshsolanki93