僕は dmd のバージョンを頻繁に変更するので,3つのバッチファイルを作ってある.
注意
- これらのバッチファイルは dmd しか取り扱わないが,初めてD言語の処理系をインストールする場合は,dmc もインストールしなければならない.
- これらのバッチファイルは,wget と unzip と grep を実行できる環境でないと動作しない(僕は cygwin を入れてある).ただし,grep はインストール後に dmd のバージョンを表示するために使用しているだけなので,不要ならその部分を削除してもいい.
- dmd のインストール先を c:\ 以下にしている人が多いと思われるが,僕は好みで c:\d\ 以下にしている.
- セットアップの度に dmd\bin\sc.ini および dm\bin\sc.ini を編集するのは面倒なので,上書きインストール時にこれらのファイルが上書きされないように,事前に読み取り専用属性を付加してある.
download.bat
cd c:\d\temp wget http://ftp.digitalmars.com/dmd.%1.zip
install.bat
cd c:\d\temp del dmd.zip copy dmd.%1.zip dmd.zip unzip dmd.zip mkdir c:\d\dmd mkdir c:\d\dm xcopy /S /E /Y /C c:\d\temp\dmd c:\d\dmd xcopy /S /E /Y /C c:\d\temp\dm c:\d\dm rmdir /S /Q c:\d\temp\dmd rmdir /S /Q c:\d\temp\dm dmd | grep Comp
update.bat
call download %1 call install %1
使い方
これらすべてのバッチファイルは c:\d\temp に置いてあるとする.
第一に,特定のバージョンをダウンロードしたいときは,そのバージョン番号をパラメータに指定して次を実行する.
>download 1.024
第二に,既にダウンロードしてある zip ファイルを使って 1.x/2.x を切り替えたい場合のように,特定のバージョンをインストールしたいときは,(略)次を実行する.
>install 1.024
第三に,新しい dmd が公開された場合のように,特定のバージョンをダウンロードしてインストールもしたいときは,(略)する.
>update 2.008
バグ修正
しばらくこれらのバッチファイルを使っていたのだが,どうもうまくセットアップされない場合があると思っていたら,xcopy のオプションが足りていなかった.
sc.ini に読み取り専用属性を付加しているので,これを上書きしようとしてエラーになったときに,コピーが途中で止まってしまっていた.
ちゃんとコンパイルできるようにセットアップされる場合もあったので気づくのが遅れてしまったみたい.
改めて xcopy のオプションを調べて,エラーが起こっても途中で中断しないように /C を追加した.
DMD Updater
最新版の dmd をチェックして,新しいバージョンが公開されていたらダウンロードとインストールを実行してくれるソフトウェアが公開されているので,こちらを使う方法もある.
このソフトはちゃんと sc.ini を上書きしないでいてくれる.
今後の課題
インストールした後,phobos を自分用に make するところまで自動化するとより便利かもしれない.
例えば,Windows で flectioned を使う場合には,phobos を -g オプション付きで make しなおさないといけない.