何かをビルドする忍者ターゲットがある場合、「sudo ninja ...」はそれらの中間出力をルートとしてビルドしますが、これも望ましくありません(ファイルの所有者が間違っており、コンパイラーがルートとして実行されます)。
インストールコマンド自体がsudoを使用したほうがよいと思います。 つまり、ビルドファイルは、 ninja install
がsudo cp ...
ようなコマンドを実行するように構成されます。
それをインストールルールに入れるのは厄介です。すべてのインストールがrootとして行われるべきではなく、すべてのマシンがsudoを使用するわけではありません。
そうです、私はそれがジェネレーター次第だということを意味しました。
したがって、CMakeの開発者は、これは忍者が解決する必要があると考えており、CMakeが解決する必要があると考えています。 理解でき、意見を述べるのに十分な知識はありませんが、問題を解決する可能性は低いです。
関連するcmakeスレッドにリンクできますか?
説明でリンクされています: https :
こんにちは、
ログファイルがすでに存在するかどうかを確認し、存在する場合は、アクセス許可が同じままであることを確認します。存在しない場合は、名前を変更します(実行中のユーザーのuidとgidを取得します)。
PR https://github.com/ninja-build/ninja/pull/1362を作成して、コードでどのように表示されるかを確認しました。
ソースを構築しているときに同じ問題に直面しました。
問題は、一部のフォルダーがroot権限で作成され、他のフォルダーが他のユーザー名権限で作成されていることです。
これを取り除くには、ソースコードの完全な権限をシングルユーザーに変更します。
sudo chown -Rユーザー名:ユーザー名
ここでも同じ問題があります。 必ずしなければならないsudo chown $USER:$USER .ninja_*
の後にsudo ninja install
。 この問題を調査していただき、ありがとうございます。 あなたは素晴らしいです!
最も参考になるコメント
こんにちは、
ログファイルがすでに存在するかどうかを確認し、存在する場合は、アクセス許可が同じままであることを確認します。存在しない場合は、名前を変更します(実行中のユーザーのuidとgidを取得します)。
PR https://github.com/ninja-build/ninja/pull/1362を作成して、コードでどのように表示されるかを確認しました。