composer Ошибка Cannot create cache directory or directory is not writable. Proceeding without cache

Композер потерял доступ к своей папке с кэшем.

Текст ошибки

Cannot create cache directory /home/qweqwe/.composer/cache/repo/https---packagist.org/, or directory is not writable. Proceeding without cache
Cannot create cache directory /home/qweqwe/.composer/cache/files/, or directory is not writable. Proceeding without cache

Ошибка появилась после запуска консольного скрипта:

// ~/.bash_aliases
function slc_update() {
    sudo  bash -c "chmod -R 775 ../'$1'
    composer update
    chown -R www-data:www-data ../'$1' 
    chmod -R 775 ../'$1'"
}

Решение

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

sudo chown -R qwe:qwe /home/qwe/.composer

Кроме того, запускать composer от имени суперпользователя не следует - очень опасно. Он даже сам об этом предупреждает во время запуска:) Подробности можно узнать здесь.

Поэтому перепишем скрипт так:

// ~/.bash_aliases
function slc_update() {
    sudo chmod -R 775 ../'$1'
    composer update
    sudo  bash -c " chown -R www-data:www-data ../'$1' 
    chmod -R 775 ../'$1'"
}