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>]...
user로 로그인 kramer65
했기 때문에 홈 폴더에 쓸 수없는 이유를 모르겠습니다. a에 대한 나의 정상적인 반응 은를 permission denied
사용하는 sudo
것이지만 작곡가는 항상 다음과 같이 말합니다.
Composer를 루트 / 슈퍼 유저로 실행하지 마십시오! 자세한 내용은 https://getcomposer.org/root 를 참조하십시오.
이 문제를 어떻게 해결할 수 있는지 아십니까?
답변
laravel / lumen을 설치하는 데이 문제가 발생했습니다.
다음 명령으로 해결할 수 있습니다.
$ sudo chown -R $USER ~/.composer/
답변
이 문제를 해결하려면 터미널 창을 열고 다음 명령을 입력해야합니다.
sudo chown -R user ~/.composer
( user
귀하의 경우 현재 사용자 인 경우 kramer65
)
이 명령을 실행 한 후 composer global require 명령을 실행할 수있는 권한이 있어야합니다.
현재 디렉토리에서 .composer 파일을 제거해야 할 수도 있습니다. 이렇게하려면 터미널 창을 열고 다음 명령을 입력하십시오.
sudo rm -rf .composer
답변
제 경우에는 .composer
루트가 소유했기 때문에 그렇게 sudo rm -fr .composer
한 다음 글로벌 요구 사항이 작동했습니다.
경고 받다! 수행중인 작업이 확실하지 않은 경우 해당 명령을 사용하고 싶지 않습니다.
답변
나는이 문제에 직면했지만 내 경우에는 잘못된 디렉토리에있었습니다. 작업중인 디렉토리를 확인하십시오.
답변
제 경우에는 ~/.composer
.
그래서 Laravel 앱 루트 폴더 안에 있었으므로 sudo chown -R $USER composer.lock
도움이되었습니다.
답변
이것은 슈퍼 에지 경우 일 수 있지만 Travis CI를 사용하고 캐싱을 활용하는 경우 모든 캐시를 지우고 다시 시도하는 것이 좋습니다.
sudo에서 sudo가 아닌 빌드로 이동할 때의 문제를 수정했습니다.
답변
동일한 예외가 발생했지만 제 경우에는 PowerShell을 사용하여 명령을 실행하고 있으므로 먼저 여러 파일의 차단을 해제하라는 지침으로이 문제를 해결했습니다.
PS C:\> dir C:\executable_file_Path\*PowerShell* | Unblock-File
다음을 사용하여 패키지를로드하십시오.
& 'C:\path_to_executable\php.exe' "c:\path_to_composer_.phar_file\composer.phar "require desired/package