отказано в разрешении композитору в / usr / local/bin/

Я следил за документацией по https://getcomposer.org/doc/00-intro.md#globally чтобы установить composer глобально в arch linux. Когда я делаю composer self-update, Я получаю это сообщение:

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

разрешения /usr/local/bin/ (я их поменял на 777, но это не помогло):

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

в моем домашнем каталоге я сделала это:

sudo chmod -R 777 .composer/

на /etc/php/php.ini на open_basedir выглядит так:

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

я тоже пробовал sudo composer self-update но это не сработало, как ну и, возможно, это не правильный путь. (?). Что еще я могу сделать, чтобы это сработало?

7 ответов


это может быть так, если вы скачали composer.phar непосредственно

но не работает php composer-setup.php

сделать composer.phar исполняемый файл со следующей командой, прежде чем переместить его в /usr/local/bin/composer или

sudo chmod 755 composer.phar

композитор-установки.php сделает это изменение для нас по умолчанию


используйте команду sudo для любой команды, которая записывает в корневые файлы папки. У меня получилось.

используйте sudo "ваша команда"


вы должны проверить разрешения каталога / usr/local/ bin/, а не только файл внутри. Процесс должен записать как файл, так и в каталог, который должен быть предоставлен.

кроме того, общий намек: не всегда устанавливайте все на 777. Для этого нет причин, и это делает вашу систему уязвимой.

согласно строке, которую вы разместили в последнем комментарии, каталог в настоящее время доступен для записи только для пользователя root себя. Это объясняет ошибку, которую вы получаете. Вы должны не сделайте свою собственную учетную запись пользователя владельцем, системы Linux-это многопользовательские среды. Вместо этого подумайте об одном из этих подходов:

  • Добавить учетную запись, предназначенную для выполнения composer в корень группы (учетная запись пользователя может принадлежать нескольким группам) и сделать группу каталогов записываемой
  • измените владельца группы каталога на группу, членом которой является учетная запись и сделайте группу каталогов доступной для записи
  • использовать sudo программа для установки и обновления composer утилиты

последний вариант является обычно выбранным и предпочтительным. Он оставляет разрешения (консервативными) и использует только повышенные привилегии для заданий обслуживания системы, таких как установка и обновление.


даже после перемещения файла через sudo mv composer.phar /usr/local/bin/composer Я получал ошибку разрешения при попытке запустить


на Ubuntu SRV 16.04

первый

sudo rm /usr/local/bin/composer

и

cd ~/.cache/composer
chmod 755 composer-temp.phar
sudo mv composer-temp.phar /usr/local/bin/composer

теперь есть пакет для composer в arch linux, который работает для меня:

sudo pacman -S composer

Это сделало работу для меня на Centos 7

chown -R apache:apache path/to/composer
chmod 755 path/to/composer