MinGW sysrootをCygwinにインストールできません(保護されています)。

MinGW sysrootをCygwinにインストールできません(保護されています)。

次のコマンドでライブラリを作成しました。

$ ../configure '--host=x86_64-w64-mingw32' --prefix=/usr/x86_64-w64-mingw32/sys-root/mingw && make && make install

Mingw sysrootにファイルを生成する権限がないため、インストールに失敗しました。

$ mkdir /usr/x86_64-w64-mingw32/sys-root/mingw/share/whatever
mkdir: cannot create directory
‘/usr/x86_64-w64-mingw32/sys-root/mingw/share/whatever’: Permission
denied

問題は何であり、最も簡単な方法で解決するには?

ベストアンサー1

sudoCygwinでは使用できません。他のソースは、次のものを使用することを提案します。

cygstart --action=runas command args

これは役に立ちましたが、私の場合はそうではありませんでした。make installディレクトリが起動したプロセスに渡されず(これが問題でしたcygstart)、代わりに別のCMDウィンドウにあったため、動作は不規則でしたmintty。最も一般的な解決策は、エスカレーションを使用することです。権限Cygwinシェル自体を起動します(この方法では、アップグレードコマンドの出力のみをリダイレクトできます)。

cygstart --action=runas mintty -

ただし、コマンドを実行したいディレクトリに移動する必要があります。

私はまた、-dスイッチがコマンドをcygstartより悪くすることを発見しました。

#su analog
    cygstart --action=runas -d "$(pwd)" mintty -
#sudo analog
    cygstart --action=runas -d "$(pwd)" mintty command args

これはおそらく最善の解決策でしょうが、minttyは別のスイッチがないとディレクトリを渡さず、作業ディレクトリをシェル(mintty -)に渡しません。

したがって、最終バージョンsudoは次のようになります。

#new mintty window
    cygstart --action=runas mintty -dir "$(pwd)" command args
#new CMD window
    cygstart --action=runas -d "$(pwd)" command args

任意の作業ディレクトリからシェルを起動する良い方法が見つかりません。

おすすめ記事