VistaでMinGWとmsysがうまく動かない (2)
ググった。
MinGW - User - environment hosed during upgrade
You can find such a manifest file on an archive of their mailing list:
http://article.gmane.org/gmane.os.cygwin/84762Could you try the following:
1) Copy the following files from some recent Cygwin installation (or
create them based on the above link) to /bin in MSYS:patch.exe.manifest
install.exe.manifest
install-info.exe.manifest2) Type "touch /bin/install.exe /bin/install-info.exe /bin/patch.exe" in
MSYS.Does this helps?
みんなうごいてるっぽいけど、うちはinstall.exeが動かない。
SourceForge.net: Log In to SourceForge.net
Include manifest files for Vista compatibility. Closes bug #1711379.
Thanks to Mark Bourne for the report and for supplying the fix.
これを入れてみたけどinstall.exeだけ動かない。
こうしたら動く
$ install sh: /bin/install: Permission denied $ mv /bin/install /bin/install-test $ install-test sh: /bin/install-test: Permission denied $ mv /bin/install.exe.manifest /bin/install-test.exe.manifest $ install-test install-test: missing file operand Try `install-test --help' for more information.
仕方がないのでこんな感じで解決
分かっていることは……
- ファイル名をinstall-testにして外部manifestで呼び出し元と同じ権限だと明示すると動いた
- .exe以外だとUACは反応しない
ということでこんなスクリプトを実行。
use File::Copy; use strict; our $MSYS = 'C:/msys/1.0'; if (-f $MSYS.'/bin/install-vista.exe') { exit(0); } move($MSYS.'/bin/install.exe', $MSYS.'/bin/install-vista.exe'); open(MANIFEST, '>'.$MSYS.'/bin/install-vista.exe.manifest') or die $!; print MANIFEST <<'__EOT' <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3"> <v3:security> <v3:requestedPrivileges> <v3:requestedExecutionLevel level="asInvoker" /> </v3:requestedPrivileges> </v3:security> </v3:trustInfo> </assembly> __EOT ; close(MANIFEST); open(INSTALL_WRAPPER, '>'.$MSYS.'/bin/install') or die $!; print INSTALL_WRAPPER <<'__EOT' #!/bin/sh install-vista $@ __EOT ; close(INSTALL_WRAPPER);
という。
まとめ
ワケワカンネーヨ ゲイツクン(゜д゜)