(2012.4) ページを分割.
統合開発環境 (IDE) は別ページに分けました; おすすめWindowsアプリ (IDE & テキストエディタ)
UNIX互換環境
Windows 上で UNIX環境を再現したいことがある.
一つは, GNU toolchainを使って Windows ソフトウェアを開発したい場合。Cross-platform / multi-platform なソフトウェアの開発で、コンパイラや make だけ使いたい。
この場合は, 以下の MSYS2 か, それをベースにした Git for Windows がいい。
二つ目は, UNIX 用のソースコードのコンパイル。
この場合は, 以下の Cygwin。ネイティブバイナリにはならない。
最後は, このページでは扱わないが, Linuxバイナリを動かしたい場合.
VMware Workstation Player か Oracle VirtualBox を入れて仮想環境を構築するか, Windows Subsystem for Linux を導入すればいい。Windows とシームレスな X環境が必要な場合は, 加えて Cygwin/X がいい。
☆ Git for Windows
(2015.10更新)
MSYS2 の成果を利用して, コマンドラインの gitコマンドだけでなく, git gui, gitk も利用できるようにしたもの。
MSYS2 をベースにしているので, 次の 3つの環境が利用できる。"MSYS2" は Cygwin と同様に, ネイティブバイナリではない。
現在の最新版はv2.6.2. Git-2.6.2-32-bit.exe
はインストールに管理者権限が必要. PortableGit-2.6.2-32-bit.7z.exe
のほうは管理者権限不要.
さまざまなコマンドが同梱されているものの, gcc が入っていないため, そのままでは開発には使えない.
Git for Windows SDK を入れればいい。インストーラの実行に管理者権限は不要。ネットインストーラで、gcc などを自動ダウンロードしてくれる。git コマンドも含まれるので、これだけインストールすれば OK.
インストール後の設定
改行の自動変換は切っておくこと。有効だと, 意図せず化けてしまう。バイナリファイルが壊滅。
$ git config --global core.autocrlf false
mingw32 で git gui が起動できない
mingw64 は問題ないのに, mingw32 だと git gui が失敗する。
[Error in startup script] エラーダイアログ
bitmap "/usr/share/git-gui/lib/git-gui.ico" not defined
while executing
"wm iconbitmap . -default $oguilib/git-gui.ico"
invoked from within
"if {[is_Windows]} {
wm iconbitmap . -default $oguilib/git-gui.ico
set ::tk::AlwaysShowSelection 1
bind . <Control-F2> {console show}
# Spoof an X..."
(file "D:/git-sdk-64/usr/lib/git-core/git-gui" line 734)
簡単なのは, /usr/bin/git
ではなく, mingw32 でも /mingw64/bin/git
コマンドを起動する。
一応, /usr/lib/git-core/git-gui
ファイルのここがポイント;
if { [info exists ::env(GIT_GUI_LIB_DIR) ] } {
set oguilib $::env(GIT_GUI_LIB_DIR)
} else {
set oguilib {/usr/share/git-gui/lib}
}
上手い解法は見つけていない。
パッケージのアップグレード
Git for Windows は pacman を利用している。/etc/pacman.conf
で, リポジトリを5つ使うようになっている.
- git-for-windows
- git-for-windows-mingw32
- mingw32
- mingw64
- msys
すべてのパッケージをアップグレードするのは、次のコマンド。
$ pacman --sync -u -y
△ Cygwin
Windows上にUNIXっぽい環境を構築。Cygwin のゴールは, UNIX (POSIX) 用ソフトウェアのソースコードをそのまま Cygwin 上でコンパイルでき, 動かせるようにすること。
cygwin1.dll
が POSIX API機能を提供する。Windows API だけでは実現できないエミュレーションをおこなえるので、UNIX環境の再現性は比較的高い。一方, Cygwin 上でコンパイルしたプログラムは cygwin1.dll
に依存するようになる。Windows 用の再配布するソフトウェアの開発には向かない。
2019.4月現在の最新版は, バージョン3.0.6.
[2015-10 ここから]
2015年10月現在の最新版はバージョン 2.2.1. 32bit版と64bit版がある。
setup-x86_64.exe
をダウンロードし、実行する。管理者権限が必要。
パッケージには, GNOME 3.14 (2014年9月リリース), MATE 1.8 (2014年3月リリース), や KDE 4.11 (2013年8月リリース) などが見える。最新版というわけではない。
下の MSYS2 には gtk3 はあるが, GNOME や KDE は用意されていないようだ。UNIX環境を再現するパッケージは, Cygwin のほうがまだまだ豊富みたい。
[2015-10 ここまで]
Windows Subsystem for Linux を使う場合の X環境 (Xサーバ) として, Cygwin/X を使う手がある。VcXsrv よりも優れているという意見もチラホラ見かける。
Cygwinの情報は、例えば下記から入手できる。
同種のソフト:
- djgpp
- UNIX-like tools
△ MSYS2 + Mingw-w64
(2015.10追加)
MSYS (バージョン1) + MinGW.org の後継となることを目指したプロジェクト。Windows native にできるものは native で動かし、UNIXエミュレーションが必要なものは Cygwinからforkしたライブラリを使う。
MSYS (バージョン1) + MinGW.org とは、その名前と共通のゴール以外、関係がない。
次の3つの独立した環境が合わさったもの。
- msys2 -- UNIXエミュレーション
msys-2.0.dll
に依存
- mingw64 -- Windowsネイティブ, 64bit
- mingw32 -- Windowsネイティブ, 32bit
パッケージマネジャは, Arch Linux 由来の Pacman を使う。
インストーラは次から入手できる;
インストーラの実行に管理者権限は不要。実行すると、インストール先を決めるだけで, 特にパッケージ選択もなくインストールが始まる。
"MSYS2 64bit"スタートメニューに次の3エントリが作られる;
- MinGW-w64 Win32 Shell
- MinGW-w64 Win64 Shell
- MSYS2 Shell
Windows 10 (64bit) 上で試してみたが、fork()
がエラーになっているようで、実用にならなかった。 -- Cygwin界隈ではよくあるみたい。MSYS2も同じか。
管理者でインストールすればよかったのかもしれないが、試していない。
MSYS (バージョン1) + MinGW.org
UNIXとソース互換の開発環境を作る。コンパイルしたプログラムはWindowsネイティブになる。
gcc, binutilsなどをWindowsに移植したもの。Windowsの msvcrt.dll
を利用するプログラムを生成するので、再配布するソフトウェアの開発向き。UNIXのエミュレートはしないので、ソケットはWinsockを使うなど, Windows API を使わなければならない。
http://www.mingw.org/ [リンク切れ]
[2015-10]
2015年10月現在、2013年10月にリリースされたインストーラが最新版のようだ。個々のパッケージは更新されている。
インストール手順; MinGWのインストール
プログラミング言語
Ruby
オブジェクト指向のスクリプト言語。私は, 1999年、バージョン1.4頃から使いはじめた。
Rubyについての記事はこちら; Ruby Centre
Haskell
遅延評価のできる関数型言語。
Haskellについての記事はこちら; はすけるで遊ぶ
Python
もう一つのオブジェクト指向・スクリプト言語。日本以外では、RubyよりもPythonのほうがメジャー。
Python についての記事はこちら; Pythonic な Python メモ
比較・パッチ
☆ WinMerge
(2014.6追加) Windows用比較・マージツール.
もともとの本家は, 2013年2月のv2.14.0 で止まっていた。WinMerge 日本版が, 本家の開発を引き継ぐことになりました。WinMerge / News: A sign of life from WinMerge
この WinMerge日本版は, 単に日本語化したものではなく, 3ファイル比較, 比較アルゴリズムの改善など, 大幅な変更を加えたものです。こちらがお勧め。
64bit版と32bit版がありますが, 32bit版のほうをダウンロードします。
Microsoft Excel や LibreOfficeのファイルを扱うために, プラグインも入手します。
☆バイナリエディタ Bz
本家 Bz - c.mos
tamachan氏が開発を引き継いでいる; devil-tamachan/binaryeditorbz · GitHub
64bit版あり。バイナリファイルにバイト列を挿入できるのが、意外にポイント高い。
画面は SDI. 複数のファイルを表示するときは, 単に Bz をいくつか起動すればいい。
一方, ファイル比較のときは、まず [表示]メニューから上下・左右に分割したうえで、ファイルを二つ開けばOK.
△ HxD
バイナリエディタ。巨大なバイナリファイルの超高速な比較ができる。
HxD - Freeware Hex Editor and Disk Editor | mh-nexus
日本語版あり。portable版のほうを取ってくればいい。 バージョン2.2.1 (2019年2月) は日本語版がない。インストールに管理者権限が必要。
文字列表示について, UTF-8 が選択肢になく, ほかの Unicode エンコーディングもない。
その他
pgAdmin などのデータベース管理ツールはこちら; DBMS GUIツール
UMLet
UML の作図。
UML をテキスト (記号) でも編集できる。保存形式は UXF (UML eXchange Format). 画像にエクスポート可能。
UMLに特化していて、描ける図は多数。
オープンソース。ソースコードは GPLv3. Javaで開発されている。
(2019.10) 最新版は 2018年8月の v14.3.
同種のソフト:
http://astah.change-vision.com/ja/product/astah-community.html
- 2018.9で終了. 多彩な UML作図ツール. 旧JUDE/Community.
- PlantUML 概要 - シンプルなテキストファイルで UML が書ける、オープンソースのツール
-
別途 Graphviz が必要。
基本は、テキストエディタで作図して、コマンドラインツールとして使う。プレビュー機能が付いている。
描ける UMLの図は、上記のUMLet の方が多いが、UML 以外としてER図などが描ける。
Javaで開発されている。オープンソース。ライセンスは GPLv2. 一部機能が制限されるが, LGPL/Apache/EPL/MIT でもライセンスされる。
- Visual Paradigm Community Edition - A Free UML Tool
-
商用ツール。機能豊富. 構文チェックがあるのが素晴らしい。
TortoiseGit
Windowsエクスプローラとgitとの統合。