Wie kann ich Composer ohne Benutzerinteraktion ausführen?

Lesezeit: 2 Minuten

Benutzeravatar von John Hunt
John Jagd

Ich versuche, Composer Install auf einer Cakephp-Installation auszuführen, aber es fragt den Benutzer, ob er Ordnerberechtigungen festlegen möchte:

Beachten Sie, dass dies ein Beispiel ist. In der Produktion die composer install Der Befehl wird automatisch über CI oder was auch immer ausgeführt:

John:$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
> Cake\Composer\Installer\PluginInstaller::postAutoloadDump
> App\Console\Installer::postInstall
Set Folder Permissions ? (Default to Y) [Y,n]?

Das ist großartig, aber manchmal möchte ich „Ja“ von der Befehlszeile aus angeben, damit meine Docker-Installation keine Interaktion erfordert und damit unser Bereitstellungsprozess funktionieren kann (es ist kein Benutzer beteiligt!). habe einiges ausprobiert, den Code inspiziert und wie verrückt gegoogelt, ohne Erfolg.

Ich vermute, es gibt eine Umgebungsvariable, die ich einstellen kann, um sie standardmäßig auf yes / quiet zu setzen, aber ich kann einfach nicht finden, was es ist.

  • Tut composer install --no-interaction arbeiten? Sonst könntest du das immer konfigurieren Installer::postInstall Befehl, keine Fragen mehr zu stellen 😉

    – Schau

    13. April 2018 um 9:01 Uhr

  • Das hat funktioniert, bitte antworten Sie als Antwort und ich werde es als richtig markieren – danke! 🙂

    – Johannes Hunt

    13. April 2018 um 9:03 Uhr

  • Erledigt. Froh, dass ich Helfen kann!

    – Schau

    13. April 2018 um 9:05 Uhr

Benutzeravatar von Loek
Schau

Versuchen composer install --no-interaction oder composer install -n

Entsprechend der Dokumentation Dies veranlasst Composer, die Standardoption auszuwählen, wenn eine interaktive Aktion erforderlich ist:

--no-interaction (-n): Do not ask any interactive question.

  • In meinem Fall ist die Standardeinstellung “nein” und der Vorgang schlägt fehl? Gibt es eine Möglichkeit, automatisch “Ja” auszuwählen?

    – MilanG

    11. März 2019 um 13:35 Uhr

  • composer install --no-scripts kommt in den Sinn. Es wird jedoch wahrscheinlich Schritte überspringen, die für Sie wichtig sind. Nicht composer install -y arbeiten?

    – Schau

    12. März 2019 um 7:57 Uhr

  • Wenn der Standardwert Ja ist, wie kann ich Nein als Antwort einstellen?

    – famas23

    5. Dezember 2021 um 16:25 Uhr


Wie in den vorherigen Antworten angegeben --no-interaction oder -n -Parameter ist die offizielle Möglichkeit, die reguläre Benutzerinteraktion bei allen Composer-Befehlen zu deaktivieren. Weitere Informationen finden Sie in den verfügbaren globalen Optionen: https://getcomposer.org/doc/03-cli.md#global-options

Composer stellt jedoch manchmal Fragen, die beantwortet werden müssen. Zum Beispiel:

composer update

...

In GitDownloader.php line 112:
                                                                                                                                   
The .git directory is missing from ..., see https://getcomposer.org/commit-deps for more information

In diesen Fällen, wenn die --no-interaction -Parameter angegeben ist, schlägt Composer mit einem Fehler fehl.

Um das zu vermeiden --no-interaction Fehler, der yes Befehl zur Rettung:

yes | composer update

1444830cookie-checkWie kann ich Composer ohne Benutzerinteraktion ausführen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy