Я пытаюсь установить Prestissimo на сервер Ubuntu 16.04, но это приводит к ошибке:
$ composer global require "hirak/prestissimo:^0.3"
Changed current directory to /home/kramer65/.composer
[ErrorException]
file_put_contents(./composer.json): failed to open stream: Permission denied
require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]...
Я зарегистрирован как пользователь kramer65
, поэтому я не знаю, почему он не может писать в мою домашнюю папку. Моя нормальная реакция на permission denied
заключается в использовании sudo
, но композитор тогда всегда говорит:
Не запускайте Composer как root/super user! Подробнее см. https://getcomposer.org/root
Любая идея, как я могу это решить?
У меня была эта проблема для установки laravel/lumen.
Я могу решить с помощью следующей команды:
$ sudo chown -R $USER ~/.composer/
Чтобы решить эту проблему, вы должны открыть окно терминала и ввести следующую команду:
sudo chown -R user ~/.composer
(при этом user
является вашим текущим пользователем, в вашем случае kramer65
)
После того, как вы запустили эту команду, у вас должно быть разрешение на запуск вашей команды global require.
Вам также может потребоваться удалить файл .composer из текущего каталога, чтобы открыть окно терминала и введите следующую команду:
sudo rm -rf .composer
Я тоже столкнулся с этой проблемой, но в моем случае я оказался не в том каталоге. Проверьте каталог, с которым вы работаете
на вашем компьютере просто введите следующую команду в каталог, где находится docker:
chown -R 1000: 1000/var/www
/var/www может измениться, если вы храните свои проекты в другой папке.
например:
chown -R 1000: 1000/home/myuser/my_projects
В моем случае у меня нет проблем с ~/.composer
.
Поэтому, находясь в корневой папке приложения Laravel, я сделал sudo chown -R $USER composer.lock
и это было полезно.
Это может быть суперграничный случай, но если вы используете Travis CI и используете кеширование, вы можете очистить весь кеш и повторить попытку.
Исправлена проблема, когда я отправлялся из sudo в сборки non sudo.
В моем случае .composer
принадлежал root, поэтому я сделал sudo rm -fr .composer
, а затем выполнил мой глобальный запрос.
Будьте осторожны! Вы не хотите использовать эту команду, если не уверены, что делаете.
composer.json
?~/.composer/composer.json
пока нет.