2013-04-03 10 views
8

Ho creato un nuovo progetto Symfony 2.1 e aggiunto un pacchetto personalizzato scaricato da un repository SVN. Ora sto tryng di aggiornare il progetto a Symfony 2.2, ma in qualsiasi momento cerco di eseguire il comando php ~/bin/composer.phar update viene visualizzato il seguente messaggio di errore:php compositore.phar aggiornamento non riuscito - Un errore nel nome del pacchetto

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 custom/utils could not be found in any version, there may be a typo in the package name. 

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. 

Si tratta di Symfony 2.2 composer.json:

{ 
    "name": "symfony/framework-standard-edition", 
    "description": "The \"Symfony Standard Edition\" distribution", 
    "autoload": { 
     "psr-0": { "": "src/" } 
    }, 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "svn+ssh://sources.de.ext/usr/local/svnroot/utils" 
     } 
    ], 
    "require": { 
     "php": ">=5.3.3", 
     "symfony/symfony": "2.2.*", 
     "doctrine/orm": "~2.2,>=2.2.3", 
     "doctrine/doctrine-bundle": "1.2.*", 
     "twig/extensions": "1.0.*", 
     "symfony/assetic-bundle": "2.1.*", 
     "symfony/swiftmailer-bundle": "2.2.*", 
     "symfony/monolog-bundle": "2.2.*", 
     "sensio/distribution-bundle": "2.2.*", 
     "sensio/framework-extra-bundle": "2.2.*", 
     "sensio/generator-bundle": "2.2.*", 
     "jms/security-extra-bundle": "1.4.*", 
     "jms/di-extra-bundle": "1.3.*", 
     "custom/utils": "*" 
    }, 
    "scripts": { 
     "post-install-cmd": [ 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
     ], 
     "post-update-cmd": [ 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
     ] 
    }, 
    "config": { 
     "bin-dir": "bin" 
    }, 
    "minimum-stability": "alpha", 
    "extra": { 
     "symfony-app-dir": "app", 
     "symfony-web-dir": "web", 
     "branch-alias": { 
      "dev-master": "2.2-dev" 
     } 
    } 
} 

personalizzato utils hanno seguito composer.json:

{ 
    "name": "custom/utils", 
    "version": "1.0.0", 
    "description": "The Custom Libraries", 
    "autoload": { 
     "psr-0": { 
      "Blogo": "src/", 
      "WideImage": "lib/" 
     } 
    }, 
    "require": { 
     "symfony/console": "2.*", 
     "symfony/yaml": "2.*" 
    } 
} 

qualcuno potrebbe aiutarmi a capire cosa c'è di sbagliato in nuovo 2.2 Symfony? Perché questo messaggio di errore appare solo l'aggiornamento di Symfony 2.2.

+0

Provare a sostituire il '*' nel '" custom/utils ":" * "linea con' dev-master' –

+0

Grazie, ho provato con '" custom/utils ":" 1.0.0 "', e ha ricevuto un messaggio di errore: 'Impossibile trovare il pacchetto richiesto custom/utils 1.0.0'. – freedev

+0

1.0.0 potrebbe non essere una versione valida. La maggior parte dei bundle usa 'dev-master' per quanto ne so (sono abbastanza nuovo per Symfony). –

risposta

8

Provare a eseguire composer update --verbose o composer show custom/utils --verbose. Entrambi ti mostreranno alcuni risultati sul caricamento del tuo repository SVN. Dovrebbe indicare quali versioni sono caricate o meno.

La mia ipotesi è che si disponga di una versione dev-trunk disponibile e, se lo si richiede, molto probabilmente funzionerà. Non devi specificare version: 1.0.0 nel tuo compositore.json, perché il compositore legge le informazioni sulla versione da tag/rami nel tuo VCS.

+0

Ho provato a seguire il tuo suggerimento, quindi ho rimosso la versione in '" custom/utils "' 'composer.json'. Niente è cambiato. Dopo aver provato a specificare '' trunk ''come versione in Symfony 2.2' composer.json'. È apparso un nuovo messaggio di errore: "Impossibile risolvere i requisiti su un set di pacchetti installabile Problema 1 - Richiesta di installazione per trunk blogo/utils -> soddisfacibile da blogo/utils dev-trunk - Richiesta di rimozione per blogo/utils == 9999999-dev' – freedev

+2

La versione è 'dev-trunk' non' trunk'. Composer prefissa i nomi dei rami con 'dev-' per identificarli chiaramente come target instabili (rispetto ai tag che non cambiano nel tempo) . – Seldaek