2015-12-23 14 views
5

Próbuję dokonać aktualizacji z wersji 2.7 do 3.0 Symfony. Zrobiłem mój kod bez zgody i zaktualizowałem composer.json z nowymi wersjami pakietów zgodnie z tym one. Kiedy zacznę uaktualnić poleceniem: composer update --with-dependencies symfony/symfony daje mi błąd następująco:Aktualizacja symfony do wersji 3.0 - zła wersja dystrybucji dystrybucyjnej

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. 

nie mam pojęcia, skąd pochodzą te dziwne wersje tego dwóch pakietów. Moja composer.json wygląda następująco:

{ 
    "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" 
    } 
} 

nie mogę zobaczyć, gdzie popełniłem błąd, wszelkie sugestie?

Edit:

Wykonywanie tylko composer update zamiast composer update --with-dependencies symfony/symfony wydaje się rozwiązać problem, aktualizuje wszystkie pakiety z powodzeniem, przez po tym, to pokazuje:

[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

Użyj^zamiast ~ do biblioteki sensio. Zbyt leniwi, aby sprawdzić różnicę, ale instalują się dla mnie czysto i to właśnie używa S3 composer.json. Przygotuj się na wiele problemów związanych z formą. Może lepiej najpierw przejść do 2.8. – Cerad

+0

@Cerad - zmiana ~ na^nie powoduje żadnych różnic, ten sam błąd. – WombaT

Odpowiedz

2

Oto composer.json że prawie pasuje do Ciebie, co działa dla mnie.

{ 
    "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

W celu ustalenia tych rodzaju problemy z kompozytorem, polecam ci, aby usunąć bibliotekę z composer.json a następnie użyć kompozytora wymagają.

  1. usunąć zależność "sensio/distribution-bundle": "~5.0"
  2. aktualizacji Run kompozytor
  3. Wciąż błąd? Powtórz 1 i 2 z innymi bibliotekami powodującymi błędy.
  4. Brak błędów? Teraz już kompozytor wymaga bibliotek, które zostały usunięte:

    kompozytor wymagają Sensio/Dystrybucja wiązkę

ten sposób kompozytor znajdzie najlepsze garnitury dla Ciebie. Dobrze jest też zachować bardziej stabilny json kompozytor!

Nie zapomnij zatwierdzić pliku composer.lock po tym, jak wszystkie aktualizacje przebiegną poprawnie, w ten sposób inni deweloperzy będą używać tych samych wersji, co Ty.

Mam nadzieję, że pomoże!

+0

Usunięcie zależności 'dystrybucja-pakiet 'spowodowało jeszcze więcej błędów przy prawie wszystkich zainstalowanych bibliotekach. Usunięto cały katalog dostawców, plik 'composer.lock', aby wszystko zainstalować ponownie i wciąż tylko jeden wielki worek błędów. Ta sprawa z kompozytorem to bzdura ... – WombaT

+0

Jaki był błąd podczas usuwania pakietu dystrybucyjnego? –

+0

To była bardzo długa lista '- nie instaluj symfony/process v2.6.8 | nie instaluj symfony/symfony v3.0.0' z różnymi wersjami' symfony/process' i '- sensio/distribution-bundle v4 .0.4 wymaga symfony/process ~ 2.2 -> z inną długą listą różnych wersji. – WombaT

Powiązane problemy