cURL のインストーラーが ゴミレベルだった話
Windows2000SP4で動かしていただきたいアプリがあります
cURL for Windows です。www.confusedbycode.com/curl/の |
とのことだったので、試してみようと思ったのですが
この cURL.exe ZIP版解凍して入れてみた所 起動にVC Runtime 14 (Visual Studio 2015)を要求されるものの、.Net Framework なんて使っていないことが判明・ω・
.Net の入ってないWindows 2000で curl-7.46.0-win32.exe を起動してみると、ファイルを解凍した後、エラーも出ずに終了。
この、cURLInstaller.exe を見て見ると、mscoree.dll に直接リンクしてることが判明。
|。・ω・) 。o ( なにこれ、 アプリ本体は .Net 使わないのに、インストーラーが .Net で作られてるの?)
どうやら、インストールするだけの為に、 .Net 4を要求するアプリ
全くナンセンスだ・ω・
System.IndexOutOfRangeException: Index was outside the bounds of the array. at cURLInstaller.DependencyChecker.GetRegistryKeys() at cURLInstaller.DependencyChecker.IsRuntimeInstalled() at cURLInstaller.MainWindow.Form1_Load(Object sender, EventArgs e) at System.EventHandler.Invoke(Object sender, EventArgs e) at System.Windows.Forms.Form.OnLoad(EventArgs e) at System.Windows.Forms.Form.OnCreateControl() at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) at System.Windows.Forms.Control.CreateControl() at System.Windows.Forms.Control.WmShowWindow(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.Form.WmShowWindow(Message& m) at System.Windows.Forms.Form.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) |
ちなみに、.Net 4 の入った Windows 2000で動かすと、依存性のレジストリチェックで失敗してクラッシュする
面倒だから調べてないけど VC++ 2015 Runtime のチェックかな?
なので
手動で VC++2015 Runtime for Win2000を入れてから zip でインストールするのが正解ですね
あ、ありえん(笑)
それはともかく、上記のサイトで配布されている cURL ですが、既に 1 年以上更新されていません。(公式サイトの現行最新版は 7.52.1)
実は、cURL の Windows 版バイナリを配布しているサイトは複数あるのですが、安定して最新版を追いかけてくれる所は度々変わっており、現在は https://bintray.com/vszakats/generic/curl/ が配布しているものを使っています。
あ、ありえん(笑)
それはともかく、上記のサイトで配布されている cURL ですが、既に 1 年以上更新されていません。(公式サイトの現行最新版は 7.52.1)
実は、cURL の Windows 版バイナリを配布しているサイトは複数あるのですが、安定して最新版を追いかけてくれる所は度々変わっており、現在は https://bintray.com/vszakats/generic/curl/ が配布しているものを使っています。
cURLのお願いをした者です。ご対応いただきありがとうございました。
Rufusさんのコメントも拝見し、/bintray.com/vszakats/generic/curl/のcurl-7.52.1-win32-mingw.7zを使って一から動作環境を構築することができましたのでお礼がてらご報告申し上げます。よろしければ、手順等の添削を頂ければ幸いです。
・VMware Workstation Player 12.5.2に、Windows2000(SP4適用済み)isoよりインストール
・手元にあった更新を適用
– IE6.0SP1
– Windows2000-KB842773-x86-JPN.EXE
– WindowsInstaller-KB893803-v2-x86.exe
– Windows2000-KB891861-v2-x86-JPN.EXE
・vmware-tools 9.9.4をインストール
(10.xでは仮想プリンタが使えなくなるのであえて9.xを選択)
・curl-7.52.1-win32-mingw.7zを解凍し、curl.exeを実行
⇒プロシージャエントリポイント ConbertFiberToThreadがダイナミックライブラリKERNEL32.dllから見つかりませんでした
・Windows2000-IE8-v3a-JPN.exeを適用
(KB2722913の適用時、「Update.infの整合性を確認できませんでした。暗号化サービスがこのコンピュータで実行されていることを確認してください。」が出るのを回避するため)
・IE6.0SP1-KB2722913-WINDOWS2000-X86-JPN.EXEを適用
・MS14-070-KB957579-v3-x86-JPN.exeを適用
・Windows2000-KB935839-v28g-x86-JPN.exeの適用
⇒v28h,iを使うと、再起動後ログイン画面が出るまでかなり時間がかかり、ログインもできなくなった(v28c,gならok)
・IE8-WindowsXP-x86-JPN.exe(XP用IE8)から normaliz.dll を取り出し、curl.exeと同じフォルダにコピー
⇒curl.exeが動いた
cURLのお願いをした者です。ご対応いただきありがとうございました。
Rufusさんのコメントも拝見し、/bintray.com/vszakats/generic/curl/のcurl-7.52.1-win32-mingw.7zを使って一から動作環境を構築することができましたのでお礼がてらご報告申し上げます。よろしければ、手順等の添削を頂ければ幸いです。
・VMware Workstation Player 12.5.2に、Windows2000(SP4適用済み)isoよりインストール
・手元にあった更新を適用
– IE6.0SP1
– Windows2000-KB842773-x86-JPN.EXE
– WindowsInstaller-KB893803-v2-x86.exe
– Windows2000-KB891861-v2-x86-JPN.EXE
・vmware-tools 9.9.4をインストール
(10.xでは仮想プリンタが使えなくなるのであえて9.xを選択)
・curl-7.52.1-win32-mingw.7zを解凍し、curl.exeを実行
⇒プロシージャエントリポイント ConbertFiberToThreadがダイナミックライブラリKERNEL32.dllから見つかりませんでした
・Windows2000-IE8-v3a-JPN.exeを適用
(KB2722913の適用時、「Update.infの整合性を確認できませんでした。暗号化サービスがこのコンピュータで実行されていることを確認してください。」が出るのを回避するため)
・IE6.0SP1-KB2722913-WINDOWS2000-X86-JPN.EXEを適用
・MS14-070-KB957579-v3-x86-JPN.exeを適用
・Windows2000-KB935839-v28g-x86-JPN.exeの適用
⇒v28h,iを使うと、再起動後ログイン画面が出るまでかなり時間がかかり、ログインもできなくなった(v28c,gならok)
・IE8-WindowsXP-x86-JPN.exe(XP用IE8)から normaliz.dll を取り出し、curl.exeと同じフォルダにコピー
⇒curl.exeが動いた
一点漏れました。
VC++2015 Runtime for Win2000は入れなくても動きました。拡張カーネルに同梱されているのでしょうか?
一点漏れました。
VC++2015 Runtime for Win2000は入れなくても動きました。拡張カーネルに同梱されているのでしょうか?
何度も申し訳ありません。
Windows 2000 SP4 SRP2(v18)の存在に気づき、改めて試しましたところ、拡張カーネルv28iも問題なく動き、curl使用環境が作れました。
ありがとうございました。
何度も申し訳ありません。
Windows 2000 SP4 SRP2(v18)の存在に気づき、改めて試しましたところ、拡張カーネルv28iも問題なく動き、curl使用環境が作れました。
ありがとうございました。
Windows 2000 SP4 SRP2 は、拡張カーネルと競合する KDW を使ってるので
あまりお勧めしません。
あと、Windows2000-IE8-v3a-JPN はネタアプリです
SRP2はWindows Updateを殆ど統合してるので一部の重要なWindows Update が
入ってなかったのではないでしょうか?
Windows 2000 SP4 SRP2 は、拡張カーネルと競合する KDW を使ってるので
あまりお勧めしません。
あと、Windows2000-IE8-v3a-JPN はネタアプリです
SRP2はWindows Updateを殆ど統合してるので一部の重要なWindows Update が
入ってなかったのではないでしょうか?
> Windows 2000 SP4 SRP2 は、拡張カーネルと競合する KDW を使ってるのであまりお勧めしません。
ガーン、そうなんですね。SP4SRP2を使うか、拡張カーネルを使うかを選ぶ必要があるワケですか。
> Windows2000-IE8-v3a-JPN はネタアプリです
これは承知していますが、たまたまこれを入れた状態ですと、KB2722913の適用時「Update.infの整合性を確認できませんでした。暗号化サービスがこのコンピュータで実行されていることを確認してください。」が出るのを回避できたため、入れています
仰るように、何かの更新が足りないのだとは思うのですが、「Update.infの整合性~」を回避するための直接的な方法はありますか?こちらのサイト記事ですと「レジストリを改変せずXP Embeddedの更新をインストールする方法 」のところに少し記述がありましたが、あくまでXPの話のようですし
いずれにせよ curl.exe を実行することが目的ですので、SRP2をあきらめて、拡張カーネルを入れる方向で行こうかと。
今回アップされた v28j を試しましたが、v28i と同じくログインできなくなってしまうので、v28g を使わせていただくのが現実的でしょうか。あるいはその差が生じる更新に心当たりがおありでしたら教えていただければありがたいです。
> Windows 2000 SP4 SRP2 は、拡張カーネルと競合する KDW を使ってるのであまりお勧めしません。
ガーン、そうなんですね。SP4SRP2を使うか、拡張カーネルを使うかを選ぶ必要があるワケですか。
> Windows2000-IE8-v3a-JPN はネタアプリです
これは承知していますが、たまたまこれを入れた状態ですと、KB2722913の適用時「Update.infの整合性を確認できませんでした。暗号化サービスがこのコンピュータで実行されていることを確認してください。」が出るのを回避できたため、入れています
仰るように、何かの更新が足りないのだとは思うのですが、「Update.infの整合性~」を回避するための直接的な方法はありますか?こちらのサイト記事ですと「レジストリを改変せずXP Embeddedの更新をインストールする方法 」のところに少し記述がありましたが、あくまでXPの話のようですし
いずれにせよ curl.exe を実行することが目的ですので、SRP2をあきらめて、拡張カーネルを入れる方向で行こうかと。
今回アップされた v28j を試しましたが、v28i と同じくログインできなくなってしまうので、v28g を使わせていただくのが現実的でしょうか。あるいはその差が生じる更新に心当たりがおありでしたら教えていただければありがたいです。
>KB2722913の適用時「Update.infの整合性を確認できませんでした。暗号化サービスがこのコンピュータで実行されていることを確認してください。」が出るのを回避できたため
これはルート証明が最新でないのが原因です。
IE8のネタパックには少し新しいルート証明が入ってるので回避できたのだと思います。
拡張カーネルを入れる場合は、Windows Update を完了してから入れれば問題ないはずです
>KB2722913の適用時「Update.infの整合性を確認できませんでした。暗号化サービスがこのコンピュータで実行されていることを確認してください。」が出るのを回避できたため
これはルート証明が最新でないのが原因です。
IE8のネタパックには少し新しいルート証明が入ってるので回避できたのだと思います。
拡張カーネルを入れる場合は、Windows Update を完了してから入れれば問題ないはずです
> これはルート証明が最新でないのが原因です。
なるほど、Update Catalogから証明書を持ってきてインストールしたところ、IE8なしでもKB2722913の適用できました
(それでも期限が2020とか、微妙ですね。IE11から持ってくるとかした方がいいんですかね)
> Windows Update を完了してから入れれば問題ない
これは、当方の不勉強によるものと承知でお聞きしたいです。
Windows2000のUpdateは、「Windows 2000で Windows Update がうまくいかない人へのメモ 」を参考に環境を整える等しても一からは適用できなくなっていると認識しています
そのためのロールアップ版として SP4SRP2 を使わせていただければと思いましたが、拡張カーネルとの同時使用は推奨しないとのこと。
現状、(拡張カーネル適用環境を一から作るために)win2k用のアップデートをすべて適用するにはどのようにすべきとお考えですか?Update Catalogからすべての更新をダウンロードする、というようなことでしょうか?(どれをどの順番で適用すればいいのか・・・)何かヒントだけでもご示唆いただけませんか。
> これはルート証明が最新でないのが原因です。
なるほど、Update Catalogから証明書を持ってきてインストールしたところ、IE8なしでもKB2722913の適用できました
(それでも期限が2020とか、微妙ですね。IE11から持ってくるとかした方がいいんですかね)
> Windows Update を完了してから入れれば問題ない
これは、当方の不勉強によるものと承知でお聞きしたいです。
Windows2000のUpdateは、「Windows 2000で Windows Update がうまくいかない人へのメモ 」を参考に環境を整える等しても一からは適用できなくなっていると認識しています
そのためのロールアップ版として SP4SRP2 を使わせていただければと思いましたが、拡張カーネルとの同時使用は推奨しないとのこと。
現状、(拡張カーネル適用環境を一から作るために)win2k用のアップデートをすべて適用するにはどのようにすべきとお考えですか?Update Catalogからすべての更新をダウンロードする、というようなことでしょうか?(どれをどの順番で適用すればいいのか・・・)何かヒントだけでもご示唆いただけませんか。
>Windows2000のUpdateは、「Windows 2000で Windows Update がうまくいかない人へのメモ 」を参考に環境を整える等しても一からは適用できなくなっていると認識しています
いいえ、適用は可能です・ω・ (年末のイベントで
『2017年に、素のWindows 2000にUpdateを適用する方法』
ってKit一式を販売しましたし)こららでも、検証済みです
>Windows2000のUpdateは、「Windows 2000で Windows Update がうまくいかない人へのメモ 」を参考に環境を整える等しても一からは適用できなくなっていると認識しています
いいえ、適用は可能です・ω・ (年末のイベントで
『2017年に、素のWindows 2000にUpdateを適用する方法』
ってKit一式を販売しましたし)こららでも、検証済みです
何とかWindows Updateはできたんですが、その後 v28j を適用しても、やはり起動の問題が・・・
魔改造版を試すことにします
何とかWindows Updateはできたんですが、その後 v28j を適用しても、やはり起動の問題が・・・
魔改造版を試すことにします