it-swarm.com.de

erlaubnis für Komponist in/usr/local/bin/verweigert

Ich folgte der Dokumentation unter https://getcomposer.org/doc/00-intro.md#globally , um den Composer global unter Arch Linux zu installieren. Wenn ich composer self-update mache, erhalte ich folgende Nachricht:

  [ErrorException]                                                                                    
  rename(/home/hannes/.composer/cache/composer-temp.phar,/usr/local/bin/composer): Permission denied 

Die Berechtigungen in /usr/local/bin/ (ich habe sie in 777 geändert, aber es hat nicht geholfen):

-rwxrwxrwx  1 hannes users 1104202 30. Mai 18:07 composer

In meinem Heimatverzeichnis habe ich folgendes gemacht:

Sudo chmod -R 777 .composer/

In /etc/php/php.ini sieht der open_basedir so aus:

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/usr/local/bin/

Ich habe auch Sudo composer self-update ausprobiert, aber es hat nicht so gut funktioniert und ist möglicherweise nicht der richtige Weg. (?). Was könnte ich sonst noch versuchen, damit das funktioniert?

11
haheute

In Arch Linux gibt es jetzt ein Paket für Komponisten, das für mich funktioniert:

Sudo pacman -S composer
1
haheute

dies kann der Fall sein, wenn Sie composer.phar direkt heruntergeladen haben. 

aber nicht durch Ausführen von php composer-setup.php

machen Sie composer.phar mit folgendem Befehl ausführbar, bevor Sie es in /usr/local/bin/composer verschieben oder nachdem Sie es verschoben haben 

Sudo chmod 755 composer.phar

composer-setup.php nimmt diese Änderung standardmäßig für uns vor

14
Raaghu

Verwenden Sie den Sudo-Befehl für jeden Befehl, der in die Stammdateien des Ordners schreibt. Es hat für mich funktioniert.

benutze Sudo "deinen Befehl"

12
Mohammad Quadri

Sie sollten die Berechtigungen des Verzeichnisses/usr/local/bin/überprüfen, nicht nur die darin enthaltene Datei. Der Prozess muss sowohl die Datei als auch das Verzeichnis schreiben, das beide erteilt werden müssen. 

Abgesehen davon, ein allgemeiner Hinweis: Setzen Sie nicht immer alles auf 777. Es gibt keinen Grund dafür und Ihr System wird verwundbar.

Entsprechend der Zeile, die Sie im letzten Kommentar gepostet haben, ist das Verzeichnis derzeit für den Root-Benutzer selbst only schreibbar. Das würde den Fehler erklären, den Sie bekommen. Sie sollten nicht Ihr eigenes Benutzerkonto zum Eigentümer machen. Linux-Systeme sind Mehrbenutzerumgebungen. Denken Sie stattdessen an einen dieser Ansätze: 

  • fügen Sie das Konto, das die Variable composer ausführen soll, zum Gruppenstammverzeichnis hinzu (ein Benutzerkonto kann zu mehreren Gruppen gehören), und machen Sie die Verzeichnisgruppe schreibbar
  • Ändern Sie den Gruppeneigentum des Verzeichnisses in eine Gruppe, deren Konto Mitglied ist, und machen Sie die Verzeichnisgruppe schreibbar
  • verwenden Sie das Dienstprogramm Sudo, um das Dienstprogramm composer zu installieren und zu aktualisieren

Die letzte Option ist die normalerweise gewählte und bevorzugte Option. Es belässt die Berechtigungen so, wie sie sind (konservativ), und verwendet nur erhöhte Berechtigungen für Systemwartungsaufgaben wie Installation und Upgrade. 

10
arkascha

Zu Ubuntu SRV 16.04

ZUERST

Sudo rm /usr/local/bin/composer

UND

cd ~/.cache/composer
chmod 755 composer-temp.phar
Sudo mv composer-temp.phar /usr/local/bin/composer
4
Boss COTIGA

Selbst nach dem Verschieben der Datei über Sudo mv composer.phar /usr/local/bin/composer wurde beim Ausführen des Befehls composer ein Berechtigungsfehler angezeigt. Sudo chmod 755 /usr/local/bin/composer reparierte Dinge für mich. 

3
Charlie Stanard

Das hat mir auf Centos 7 geholfen

chown -R Apache:apache path/to/composer
chmod 755 path/to/composer
0
wkipo

Sie können Ihrem Benutzer vorübergehend die Rechte hinzufügen, dann Composer ohne Fehler aktualisieren und dann die Rechte zurückerhalten. 

Sudo chmod 777 /usr/bin/
composer self-update
Sudo chmod 755 /usr/bin/
0
Sergey Radist