Composer kann nicht selbst aktualisiert werden

Lesezeit: 6 Minuten

Benutzer-Avatar
Waqleh

Ich versuche, Composer ohne Erfolg zu aktualisieren!

Was ich probiert habe:

$ composer self-update

[InvalidArgumentException]

Befehl “self-update” ist nicht definiert.

$ sudo -H composer self-update

[InvalidArgumentException]

Befehl “self-update” ist nicht definiert.

$ sudo apt-get install composer

Paketlisten lesen… Fertig Abhängigkeitsbaum erstellen Zustandsinformationen lesen… Fertig Composer ist bereits die neuste Version. Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt: libntdb1 linux-headers-4.2.0-30 linux-headers-4.2.0-30-generic linux-image-4.2.0-30-generic linux-image-extra- 4.2.0-30-generic python-ntdb Verwenden Sie „apt-get autoremove“, um sie zu entfernen. 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 10 nicht aktualisiert.

Ich versuche, Composer selbst zu aktualisieren, weil ich bei jedem Versuch mit Folgendem konfrontiert werde:

$ composer update

Laden von Composer-Repositories mit Paketinformationen Aktualisieren von Abhängigkeiten (einschließlich require-dev)
[RuntimeException]
Paket rmrevin/yii2-fontawesome konnte nicht geladen werden
http://packagist.org: [UnexpectedValueException] Versionseinschränkung v4.1 konnte nicht geparst werden.: Ungültiger Versionsstring „v4.1.
[UnexpectedValueException]
Versionseinschränkung v4.1 konnte nicht geparst werden.: Ungültiger Versionsstring „v4.1.

Wie kann ich dieses Problem beheben?

Meine PHP-Version ist:

php --version

PHP 5.6.11-1ubuntu3.4 (cli) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies mit Zend OPcache v7.0.6-dev, Copyright (c) 1999 -2015, von Zend Technologies

Meine Composer-Version ist:

composer --version

Composer-Version @[email protected] (@[email protected]) @[email protected]

  • Ich würde vorschlagen, es einfach zu deinstallieren und zu installieren nach den offiziellen dokumenten (dh ohne apt oder einen Paketmanager)

    – JimL

    12. Juni 2016 um 9:49 Uhr

  • Was hast du versucht um das Problem zu debuggen? Wie hast du Composer überhaupt installiert?

    – Nico Haase

    6. April 2020 um 10:20 Uhr

  • sudo -H composer self-update Dieser Befehl funktioniert perfekt in Ubuntu, um die neueste Version von Composer zu aktualisieren.

    – Rakesch

    21. Januar um 16:49 Uhr

Benutzer-Avatar
Manno

Wie Waqleh sagte, müssen Sie PHP Composer deinstallieren und erneut installieren. Führen Sie zuerst Folgendes aus:

sudo apt-get remove composer

Führen Sie dann diese Befehle aus. Die Prüfsumme hier ist für Composer 1.10.13, aber Sie erhalten den neuesten Composer (2.0.4 zum Zeitpunkt der Bearbeitung dieser Antwort), wenn Sie die erste Zeile ausführen, also checken Sie unbedingt ein https://getcomposer.org/download/:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '8a6138e2a05a8c28539c9f0fb361159823655d7ad2deecb371b04a83966c61223adc522b0189079e3e9e277cd72b8897') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Jetzt Datei verschieben Komponist.phar in ein Verzeichnis, das sich in Ihrem Pfad befindet (from Installation – Linux / Unix / macOS):

sudo mv composer.phar /usr/local/bin/composer

Und ausführen composer aus jedem Verzeichnis. Das ist alles!

PS: Wenn Sie verwenden PhpSturm (oder vielleicht andere IDEs), müssen Sie es schließen und erneut öffnen.

  • Nach diesem letzten Schritt zum Aufheben der Verknüpfung habe ich Folgendes getan: sudo php composer-setup.php –install-dir=/usr/bin –filename=composer

    – Jasonflaherty

    22. November 2019 um 2:03 Uhr

  • Die Prüfsumme ist für die neueste Version von Composer falsch.

    – Pmagunie

    21. Dezember 2019 um 22:27 Uhr

  • Der zweite Befehl löscht composer-setup.php und der dritte schlägt daher fehl

    – Handwerker

    18. Februar 2021 um 10:41 Uhr

  • Sie müssen wirklich die Befehle aus der Dokumentation befolgen, da jede neue Version einen anderen Hash hat (Zeile zwei der Befehle) und die Befehle aus dieser Antwort fehlschlagen

    – wranvaud

    18. Februar 2021 um 12:49 Uhr

  • An Redakteure und Gutachter: PHP-Composer (Großbuchstabe „C“) ist ein Eigenname, kein Gattungsname (in diesem Zusammenhang).

    – Peter Mortensen

    21. April 2021 um 15:17 Uhr


Benutzer-Avatar
Waqleh

Seit ich meine Antwort gepostet habe, habe ich eine neue, einfachere Möglichkeit kennengelernt, Composer programmgesteuert zu installieren: Wie installiere ich Composer programmgesteuert?

Alte Antwort:


Laut @JimL-Kommentar konnte ich Composer selbst aktualisieren, indem ich:

Jetzt funktioniert es wie erwartet.

  • Das hat bei mir funktioniert, obwohl die “offizielle Dokumentation” etwas verwirrend ist.

    – Jérôme Wiley Segovia

    10. Oktober 2017 um 16:28 Uhr

  • Wenn Sie Ubuntu 18.04 haben, treten möglicherweise einige Probleme mit der offiziellen Installationsmethode auf. Kasse dieses Problem

    – SaidbakR

    20. Oktober 2018 um 10:46 Uhr

  • Das Problem mit der offiziellen Dokumentation ist, dass der Prozess es Composer nicht erlaubt, automatisch mit regelmäßigen Betriebssystem-Updates aktualisiert zu werden.

    – Kolan

    18. Februar 2019 um 22:56 Uhr

  • alias composer='/usr/local/bin/composer' Dieser Befehl wurde auch am Ende benötigt, um den Komponisten aus einem beliebigen Verzeichnis arbeiten zu lassen.

    – Jay Teli

    5. Januar um 12:49 Uhr

Benutzer-Avatar
A1Gard

Installieren Sie die neueste Version:

Entfernen Sie Ihre aktuelle Composer-Version, zum Beispiel Ubuntu/Debian:

sudo apt-get remove composer

Gehen Sie jetzt zu https://getcomposer.org/download/ und fügen Sie das Skript in Ihre Befehlszeile ein. Dadurch wird sichergestellt, dass Sie die neueste Version von Composer erhalten (zum Zeitpunkt des Schreibens: v2.0.7).

So was:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"

Nach einiger Zeit können Sie aktualisieren und müssen die nicht mehr verwenden sudo Präfix:

composer self-update

  • Was kann ich tun, wenn es zu einer Zeitüberschreitung kommt?

    – Schwarz

    24. September 2020 um 15:08 Uhr

  • @Black Verwenden Sie vpn, um sicherzustellen, dass es nicht Ihr ISP-Problem ist

    – A1Gard

    25. September 2020 um 11:16 Uhr

  • Nicht möglich. Ich bin bereits hinter einem VPN und kann nur über dieses VPN auf den Server zugreifen

    – Schwarz

    25. September 2020 um 11:17 Uhr

  • Würdest du öffnen getcomposer.org ? oder Antivirus oder irgendein Mitarbeiter hat diese Seite blockiert? und sind Sie sicher, dass PHP als Umgebungs-App installiert wird?

    – A1Gard

    27. September 2020 um 11:38 Uhr

  • Den aktuellen Hash finden Sie unter getcomposer.org/download

    – Leukipp

    18. März 2021 um 0:02 Uhr


Benutzer-Avatar
pgrono

Bei mir hat es funktioniert (Linux, Ubuntu 20.04):

sudo apt-get remove composer
sudo apt-get update
sudo apt-get install curl
sudo curl -s https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Benutzer-Avatar
Archana Bahadur

Wenn Sie eine alte Version von Composer haben, müssen Sie diesen Befehlen folgen:

composer -V
sudo apt remove composer
cd /tmp
wget http://getcomposer.org/download/1.10.5/composer.phar

php composer.phar -V
sudo mv composer.phar /usr/bin/composer
sudo chmod 750 /usr/bin/composer
composer -V

  • Meinten Sie chmod 755

    – Billard

    11. Februar um 15:50 Uhr

Benutzer-Avatar
Peter Mortensen

Sie können das Installationsverzeichnis und den Dateinamen beim Einrichten von PHP Composer angeben – php composer-setup.php so:

sudo php composer-setup.php --install-dir=/usr/bin --filename=composer

  • Meinten Sie chmod 755

    – Billard

    11. Februar um 15:50 Uhr

Benutzer-Avatar
Eher Imran Rafiq

Es gibt bereits viele Antworten, möchte meine Erfahrung damit teilen.

ich benutze Ubuntu 20.04und Meine vorherige Composer-Version war Komponist 2.0.11 und meine Projektanforderung war Komponist 2.1.15.

Ich musste nichts entfernen, ich habe einfach den folgenden Befehl verwendet und es hat bei mir gut funktioniert 🙂

Komponisten-Update

1351820cookie-checkComposer kann nicht selbst aktualisiert werden

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

Privacy policy