t0mmy.log

日々のコンピュータ周りのこと

MSYS版のminttyでmsysgitのgit pushしたい

目的

MSYS版のminttyでmsysgitのgit pushやgit pullできるようにする。
1番下のmsysgitとMSYSの共存の参考リンクそのまんまで環境を構築したら、 gitのcloneやpushができなかったので。

原因

  1. libcurl.exeが無い
  2. SSL certificate problem
  3. Cygwin+mintty、Windowsの対話型コンソールアプリを正しく実行できない
    確かにipythonが正しく動かないし、gitのコマンドもpushとpullだけ動かない。

対策

libcurl.exeが無い

以下を [GIT_DIR]bin/ から [MINGW_DIR]msys/1.0/bin/([VAGRANT_DIR]embedded/bin/)へコピーした

  • curl-ca-bundle.crt
  • libcurl.exe
  • libcrypto.dll
  • libssl.dll

参考:MinGWにmsysGitを移植する

SSL certificate problem

gitのhttp.sshcainfoを以下に書き換える。
git config --global http.sslcainfo [curl-ca-bundle.crtのPATH]

対話型コンソールが動かない

以下を参考にした。
Issue 56: Improve support for native console programs
具体的には#64の書き込みで、winptyを使用する。
この方法は#67で検証されているように、遅延が生じる。
MSYS版を入手し、winpty.dll、winpty-agent.exe、console.exeをmintty.exeと同じbinフォルダに入れる。
mintty.exeのショートカットを作成し、プロパティのリンク先を以下を追加する。
/bin/console /bin/bash --login

msysgitとMSYSの共存

参考:Vagrant and Chef on Windows