次のコマンドでライブラリを作成しました。
$ ../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
sudo
Cygwinでは使用できません。他のソースは、次のものを使用することを提案します。
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
任意の作業ディレクトリからシェルを起動する良い方法が見つかりません。