При установке Laravel у меня возникла ошибка: "./composer.json не доступен для записи".
это команда, которую я запускаю
composer global require "laravel/installer"
и это текст и ошибка, которые я получил после этого:
Changed current directory to /home/dimitar/.composer
./composer.json is not writable.
Я запускаю Ubuntu 16.04 LTS и PHP 7 и Composer версии 1.3.0 и запускаю эту команду из своей домашней папки.
Ответы
Ответ 1
Проверьте владельца composer.json.
ls -lh ~/.composer/composer.json
Если это "root", запустите:
sudo chown -R yourusername:yourusername ~/.composer/composer.json
Находясь в папке .composer, проверьте владельца папки "cache". Если это "root", повторите команду выше, но переключите composer.json в кеш. В противном случае вы можете получить предупреждение "Невозможно создать каталог кэша".
Ответ 2
Ошибка говорит об этом, есть проблема с разрешениями. Я думаю, что самый простой способ исправить это - это выполнить следующую команду:
sudo chmod -R 775 /home/dimitar
Ответ 3
Я думаю, что этот код отсутствует в вашем файле композитора, который не позволяет Packagist найти пакет Laravel.
Поместите это в свой composer.json
файл и повторите попытку:
"repositories": {
"packagist": { "url": "https://packagist.org", "type": "composer" }
}
Ответ 4
Проверьте владельца composer.json.
ls -lh /home/<yourusername>/composer.json
Если это "root", запустите:
sudo chown -R yourusername:yourusername /home/<yourusername>/.composer/composer.json
Находясь в папке .composer, проверьте владельца папки "cache". Если это root, повторите команду выше, но переключите composer.json в кеш. В противном случае вы можете получить предупреждение "Невозможно создать каталог кэша".
Ответ 5
sudo composer global package_name
Пример:
sudo composer global require "laravel/installer"
ваш пароль
ввести
Ответ 6
Вы можете запускать с привилегией sudo
без разрешения папки смены, поскольку вы устанавливаете ее в глобальную.