2015-12-23 6 views
5

Ich versuche, von Symfony 2.7 auf 3.0 zu aktualisieren. Ich habe meinen Code depreciation-free und aktualisiert composer.json mit neuen Paketen Versionen gemäß dieser . Wenn ich mit dem Befehl starten Upgrade: composer update --with-dependencies symfony/symfony es gibt mir Fehler wie folgt:Symfony auf 3.0 aktualisieren - schlechte Distribution-Bundle-Version

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

    Problem 1 
    - The requested package sensio/distribution-bundle == 4.0.4.0 could not be found. 
    Problem 2 
    - The requested package sensio/generator-bundle == 2.5.3.0 could not be 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://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details. 

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

ich keine Ahnung von, wo diese seltsamen Versionen dieser beiden Pakete kommen. Mein composer.json wie folgt aussieht:

{ 
    "name": "symfony/framework-standard-edition", 
    "license": "MIT", 
    "type": "project", 
    "description": "The \"Symfony Standard Edition\" distribution", 
    "autoload": { 
     "psr-0": { "": "src/", "SymfonyStandard": "app/" } 
    }, 
    "require": { 
     "php": ">=5.5.9", 
     "symfony/symfony": "3.0.*", 
     "twig/extensions": "~1.0", 
     "symfony/assetic-bundle": "~2.3", 
     "symfony/swiftmailer-bundle": "~2.3", 
     "symfony/monolog-bundle": "~2.8", 
     "sensio/distribution-bundle": "~5.0", 
     "sensio/framework-extra-bundle": "~3.0.2", 
     "incenteev/composer-parameter-handler": "~2.0" 
    }, 
    "require-dev": { 
     "sensio/generator-bundle": "~3.0" 
    }, 
    "scripts": { 
     "post-root-package-install": [ 
      "SymfonyStandard\\Composer::hookRootPackageInstall" 
     ], 
     "post-install-cmd": [ 
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles" 
     ], 
     "post-update-cmd": [ 
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::removeSymfonyStandardFiles" 
     ] 
    }, 
    "config": { 
     "bin-dir": "bin" 
    }, 
    "extra": { 
     "symfony-app-dir": "app", 
     "symfony-web-dir": "web", 
     "incenteev-parameters": { 
      "file": "app/config/parameters.yml" 
     }, 
     "branch-alias": { 
      "dev-master": "3.0-dev" 
     }, 
     "symfony-assets-install": "symlink" 
    } 
} 

Ich kann nicht sehen, wo ich einen Fehler gemacht, irgendwelche Vorschläge?

Edit:

Ausführen nur composer update statt composer update --with-dependencies symfony/symfony scheint Problem zu lösen, werden alle Pakete erfolgreich aktualisiert, um danach, es zeigt:

[RuntimeException] 
An error occurred when executing the "'cache:clear --no-warmup'" command: 
Fatal error: Class 'Symfony\Component\Console\Input\ArgvInput' not found in /home/wombat/htdocs/gugupanel/app/console on line 17 
+0

Verwenden Sie^anstelle von ~ für die Sensio-Bibliotheken. Zu faul, um den Unterschied zu sehen, aber sie installieren sauber für mich und es ist, was der S3 composer.json verwendet. Seien Sie bereit, viele und viele Formularprobleme zu haben. Könnte besser sein, zuerst zu 2.8 zu gehen. – Cerad

+0

@Cerad - Ändern ~ zu^macht keinen Unterschied, der gleiche Fehler. – WombaT

Antwort

2

hier ein composer.json ist, dass fast passt zu deinem, was für mich funktioniert.

{ 
    "name": "symfony/framework-standard-edition", 
    "license": "MIT", 
    "type": "project", 
    "description": "The \"Symfony Standard Edition\" distribution", 
    "autoload": { 
     "psr-4": { "": "src/" }, 
     "files": [ "app/AppKernel.php" ] 
    }, 
    "autoload-dev": { 
     "psr-4": { "Tests\\": "tests/" } 
    }, 
    "require": { 
     "php": ">=5.5.9", 
     "symfony/symfony": "3.0.*", 
     "doctrine/orm": "^2.5", 
     "doctrine/doctrine-bundle": "^1.6", 
     "doctrine/doctrine-cache-bundle": "^1.2", 
     "symfony/swiftmailer-bundle": "^2.3", 
     "symfony/monolog-bundle": "^2.8", 
     "sensio/distribution-bundle": "^5.0", 
     "sensio/framework-extra-bundle": "^3.0.2", 
     "incenteev/composer-parameter-handler": "^2.0", 
     "phpunit/phpunit": "^4.8", 
     "sensio/generator-bundle": "^3.0" 
    }, 
    "require-dev": { 
     "symfony/phpunit-bridge": "^2.7" 
    }, 
    "scripts": { 
     "post-install-cmd": [ 
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget" 
     ], 
     "post-update-cmd": [ 
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget" 
     ] 
    }, 
    "extra": { 
     "symfony-app-dir": "app", 
     "symfony-bin-dir": "bin", 
     "symfony-var-dir": "var", 
     "symfony-web-dir": "web", 
     "symfony-tests-dir": "tests", 
     "symfony-assets-install": "relative", 
     "incenteev-parameters": { 
      "file": "app/config/parameters.yml" 
     }, 
     "branch-alias": { 
      "dev-master": "3.0-dev" 
     } 
    } 
} 
1

Um diese Art von Problemen mit dem Komponisten zu beheben, empfehle ich Sie die Bibliothek aus dem composer.json zu entfernen und dann die Komponisten verwenden, erfordern.

  1. Entfernen Sie die "sensio/distribution-bundle": "~5.0" Abhängigkeit
  2. Run Komponist Update
  3. Noch Fehler entdeckt? Wiederholen Sie 1 und 2 mit den anderen Bibliotheken, die Fehler verursachen.
  4. Kein Fehler? Nun benötigen Sie Komponisten die Bibliotheken, die Sie entfernt:

    Komponist erfordern Sensio/Verteilung Bündel

Auf diese Weise Komponist werden die besten für Sie. Es ist auch gut, einen stabileren Komponisten json zu behalten!

Vergessen Sie nicht, Ihre composer.lock Datei nach all den Updates in Ordnung zu machen, auf diese Weise werden die anderen Entwickler die gleichen Versionen verwenden, wie Sie sind.

Hoffe es hilft!

+0

Das Entfernen der 'Distribution-Bundle'-Abhängigkeit führte zu noch mehr Fehlern bei fast allen installierten Bibliotheken. Entfernte das gesamte Herstellerverzeichnis, 'composer.lock' Datei, um alles wieder zu installieren und immer noch nur einen großen Fehler. Diese Komponist Sache ist Mist ... – WombaT

+0

Was war der Fehler, wenn Sie Distribution-Bundle entfernt? –

+0

Es war eine sehr lange Liste von '- nicht installieren symfony/process v2.6.8 | installiere nicht symfony/symfony v3.0.0 'mit verschiedenen Versionen von' symfony/process' und '- sensio/distribution-bundle v4 .0.4 erfordert symfony/process ~ 2.2 -> 'mit einer anderen langen Liste von verschiedenen Versionen. – WombaT

Verwandte Themen