2016-12-18 22 views
15

を拒否された私は、Ubuntuの16.04サーバーにPrestissimoをインストールしようとしているが、それはエラーにつながる:作曲:ますfile_put_contents(./ composer.jsonは):ストリームをオープンに失敗しました:許可が

$ 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を使用することであるが、作曲は、常に言う:

Do not run Composer as root/super user! See https://getcomposer.org/root for details

私はこの問題を解決することができますどのように任意のアイデア?

+0

明白かもしれませんが、尋ねる必要があります。あなたの 'composer.json'の現在のアクセス許可は何ですか? – GentlemanMax

+0

@GentlemanMax - '〜/ .composer/composer.json'ファイルはまだありません。 – kramer65

+0

'〜/ .composer /'フォルダのパーミッションはどうですか? 'kramer65'はそれを書く権利がないので、' chmod'が便利かもしれません。 – AnthonyB

答えて

53

laravel/lumenをインストールするにはこの問題がありました。私は、次のコマンドを使用して解決することができます

:これを解決するには

$ sudo chown -R $USER ~/.composer/ 
+0

これはまた、作者のグローバルアセットプラグインのyui2インストールにも役立ちました。サミュエル –

+0

の代わりに、 'myuser'の代わりに$ USERを使用する方が良い方法です。 – zennin

+0

それは私の問題を解決しませんでした。その他のヒント? – mylord

1

私の場合、.composerはrootが所有していましたので、sudo rm -fr .composerを実行してから、グローバルが必要です。

注意してください!何をしているのかわからない場合は、このコマンドを使用したくないです。

6

、あなたはターミナルウィンドウを開き、次のコマンドを入力する必要があります

sudo chown -R user ~/.composeruserは、現在のユーザーであることを、あなたにcase、kramer65

このコマンドを実行した後、composer global requireコマンドを実行する権限が必要です。

ます。また、これは、ターミナルウィンドウを開き、次のコマンドを入力しないために、現在のディレクトリから.composerファイルを削除する必要があります。

sudo rm -rf .composer

0

これは、スーパーエッジケースであってもよいが、場合かもしれませんTravis CIを使用してキャッシュを利用している場合は、すべてのキャッシュをクリアして再試行することをお勧めします。

sudoから非sudoビルドに移行したときの問題を修正しました。

0

私もこの問題に直面していますが、私の場合は間違ったディレクトリにいました。あなたが働いているディレクトリを確認してください。

関連する問題