Ankündigung

Einklappen
Keine Ankündigung bisher.

composer CI installation aktualisiert unerwünscht Pakete

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • composer CI installation aktualisiert unerwünscht Pakete

    Heyho,

    ich beschäftige mich nur noch selten mit PHP, daher bin ich mit composer ein wenig aus der Übung. Leider läuft die Installation der composer dependencies in der CI schief, da composer versucht, alle Pakte zu aktualisieren.
    Da liegt natürlich auch eine composer.lock herum, die beim Installieren verwendet werden soll. Wenn ich per ssh auf dem CI-Server bin, läuft die Installation der Pakete in der bash mit dem CI-User problemlos durch.

    Code:
    $ composer install  
    Installing dependencies from lock file (including require-dev)
    Verifying lock file contents can be installed on current platform.
    Package operations: 26 installs, 0 updates, 0 removals   - Installing ...
    Generating autoload files
    5 packages you are using are looking for funding.
    Use the `composer fund` command to find out more!
    Soweit fein. Wenn ich die CI `composer install` ausführen lasse, schaut das leider anders aus.

    Code:
    $ composer install --prefer-dist --no-scripts --no-progress --no-interaction --no-dev
    $ composer dump-autoload --optimize --no-dev
    $ composer run-script --no-dev post-install-cmd
    Anstatt die Pakete nur zu installieren, versucht composer jedoch alle Pakete zu aktualisieren. Das sieht dann so aus:

    Code:
    Installing dependencies from lock file
    Verifying lock file contents can be installed on current platform.
    Package operations: 0 installs, 18 updates, 0 removals  
    - Upgrading composer/installers (v1.10.0 => v1.11.0): Extracting archive  
    - Upgrading composer/ca-bundle (1.2.9 => 1.2.10): Extracting archive  
    - Upgrading maxmind-db/reader (v1.10.0 => v1.10.1): Extracting archive   ...
    Das Upgrade geht leider schief. Composer soll aber auch nicht aktualisieren.

    Das hab ich getan:
    - aktuellste composer version eingespielt
    - composer docs gelesen
    - möglichst identisches environment beim Testen auf der shell verwendet
    - die shell in der CI gewechselt (bash -c "",...)
    - globale composer config existiert nicht für den Benutzer
    - repository mit und ohne composer vendor dir aus dem cache ausgecheckt

    Hat jemand ne Idee, was da schief geht? Merci

    I like cooking my family and my pets.
    Use commas. Don't be a psycho.
    [URL="http://jscouch.de"]Blog[/URL] - [URL="http://coverflowjs.github.io/coverflow/"]CoverflowJS[/URL]

  • #2
    Ist jetzt wahrscheinlich keine gute Antwort, weil ich gerade nicht am nem Rechner bin.

    Installierst du vendor immer fresh oder werden schon mal verwendete Dateien ggf wiederverwendet?
    Lock-Datei wird wirklich bereitgestellt?

    Kommentar


    • #3
      ich weiss leider nichts, wo Du mir doch bei JS die ersten schritte geziegt hast
      gleiches composer home bzw .compser oder config.json im Home ?
      https://getcomposer.org/doc/03-cli.md#composer-home
      wobei die command line opitons eh alles überschreiben,

      Kommentar


      • #4
        Danke für eure Tipps.
        Installierst du vendor immer fresh oder werden schon mal verwendete Dateien ggf wiederverwendet?
        Beides probiert, ändert leider nichts.

        Lock-Datei wird wirklich bereitgestellt?
        Ja, liegt im git repository. git clone und composer install funktioniert direkt und aktualisiert nichts.

        gleiches composer home bzw .compser oder config.json im Home ?
        Die Benutzer-Konfiguration für composer existiert nicht. composer liegt frisch aktualisiert unter /usr/local/bin

        Hab mehrere Workarounds im Kopf, also alles nicht tragisch. Mich würd nur interessieren, was da schief geht.

        I like cooking my family and my pets.
        Use commas. Don't be a psycho.
        [URL="http://jscouch.de"]Blog[/URL] - [URL="http://coverflowjs.github.io/coverflow/"]CoverflowJS[/URL]

        Kommentar


        • #5
          Vielleicht Composer-Version? 1 vs 2?

          Kommentar


          • #6
            Beide Versionen- lokal wie auf dem Server - identisch auf Version 2.1.3. Auf dem Server funktioniert auch der install, allerdings nicht, wenn gitlab in der CI per runner verbindet (verbindet per ssh). Dann versucht composer ein update.
            Ist vielleicht irgendwas im environment, das mir bisher noch nicht aufgefallen ist.
            I like cooking my family and my pets.
            Use commas. Don't be a psycho.
            [URL="http://jscouch.de"]Blog[/URL] - [URL="http://coverflowjs.github.io/coverflow/"]CoverflowJS[/URL]

            Kommentar


            • #7
              Ich hab mir einmal das Package angeschaut, welches hier geupdatet werden soll "composer/installers". (GitHub - composer/installers: A Multi-Framework Composer Library Installer)

              Dies scheint ein globales Plugin zu sein, ist daher außerhalb des Scopes deiner composer.lock Datei.

              Plugin packages are automatically loaded as soon as they are installed and will be loaded when Composer starts up if they are found in the current project's list of installed packages. Additionally all plugin packages installed in the COMPOSER_HOME directory using the Composer global command are loaded before local project plugins are loaded.

              You may pass the --no-plugins option to Composer commands to disable all installed plugins. This may be particularly helpful if any of the plugins causes errors and you wish to update or uninstall it.
              Setting up and using plugins - Composer (getcomposer.org)

              Kommentar


              • #8
                Top, danke, das hat mich auf die richtige Spur gebracht.
                Code:
                {"extra": {"plugin-modifies-downloads": true}}
                hat geholfen
                I like cooking my family and my pets.
                Use commas. Don't be a psycho.
                [URL="http://jscouch.de"]Blog[/URL] - [URL="http://coverflowjs.github.io/coverflow/"]CoverflowJS[/URL]

                Kommentar

                Lädt...
                X