MinGW を使って Gnu 系のコマンドを使えるようにする。

みむらです。

前までは、この記事 にあったように GnuWin32 を使っていたのですが、古いなと思いまして。
Gow とかも選択肢にはあったのですが、もういっそ MinGW とか試してみるかと思って試してみました。

結果としては非常によく、
パスを設定すればコマンドプロンプトからも利用できるので、 GnuWin32 の移行先として、
問題ないように感じました。

image

CygWin のように、変にシステムを汚すような事もないような感じですので、
早速 GnuWin32 から移行しました。


導入:

1.MinGW をインストールする。

SourceForge 上のプロジェクトのダウンロードページへ移動します。
http://sourceforge.net/projects/mingw/files/

image

深く潜らなくとも、
”Looking for the latest version?” という事でダウンロードリンクが張られていますので、
こちらからダウンロードします。

 

ダウンロードが完了し、起動しますと次のような画面が出ますので、ウィザードに従ってインストールを進めます。

image

 

また、スタートメニューに関しては、項目が増えるのを嫌う場合は
項目を作成しないようにしても構いません。

image

 

また、 Select Components の画面では、今回のケースの場合、
最低限でも下2つの項目にチェック を入れます。

image

なお、元々開発用のツールですので、
ディスクに余裕があれば、コンパイラもインストールしておきますといいかと思います。

 

そのまま進めますと、
image

このような画面が出てきて処理を開始しますので、完了まで待ちます。

 

最後までウィザードを進めれば完了です。


2.パスの設定 – システムのプロパティを表示。

設定をするために、システムのプロパティを開きます。

 

手順 ( Windows キーがあるキーボードの場合

 

2.1.1 Winキー + R を押し、 「ファイル名を指定して実行」を表示し、「 sysdm.cpl 」と打ち、 OK を押します。

image

2.1.2 システムのプロパティが表示されます。

image

2.1.3 詳細設定タブに切り替えます。

image

 

 

手順 ( Windows キーがない場合

 

2.2.1 コントロールパネルを開きます。

image

2.2.2. 「システムとセキュリティ」を選択します。

image

2.2.3. 「システム」を選択します。

image

2.2.4. 「システムの詳細設定」を開きます。

image

 


3.パスの設定

「環境変数」をクリックします。

image

 

「システム環境変数」内から「Path」を探して選び、「編集」をクリックします。

image

 

編集ダイアログが開きます。

image

 

ここで、先ほどインストールした MinGW のパスをエクスプローラで開き、
パスを確認します。

確認する部分は2点あり、
MinGW 直下の bin フォルダおよび、 msys フォルダ以下にある bin フォルダを探します。

 

なお、執筆時点 (2012/11/19) で、
デフォルトのままインストールを行った環境では、

C:\MinGW\bin
C:\MinGW\msys\1.0\bin

の2つを path に追加します。

 

ただ、今後のバージョンアップや、インストールディレクトリの変更によって変化する可能性が考えられますので、
その際は適宜読み替えてください。

 

確認が完了しましたら、変数値の文字列の後ろ
セミコロン ( ; ) 区切りで、パスを追記していきます。

 

執筆時点の状態で、デフォルトインストールした場合は先述の2ディレクトリとなりますので、
この場合追記するのは、次のような文字列となります。

;C:\MinGw\bin;C:\Tools\MinGW\msys\1.0\bin

image

 

追記が完了しましたら、 “OK” を押して行き、画面を閉じます。

 


4. 文字化け対策

ここまで完了しますと、あらゆるプログラムから簡単に呼び出せるようになっています。

例:

image

 

ですが、まずこの状態ですと、 ls コマンドが文字化けを起こしますので、

テキストエディタを起動し、

@ls.exe -–show-control-chars --color=auto %*

と記述し、

MinGW のフォルダ内の bin フォルダ  (デフォルトのインストール先であれば、 C:\MinGW\bin)に、

ls.cmd という名前で保存します。

 

※Unix-like に alias のようなコマンドで設定したい、 .profile のような仕掛けで自動的に・・という場合は、

Windows のコマンドプロンプトで .profile みたいなの – みむらの手記手帳

こちらの記事を参照して設定をお願いします。

 


以上が追加方法になります。

また、コマンドを追加する場合は、

mingw-get install (package)

のようにすればインストールされます。

 

mingw-get list

このコマンドによって、インストール可能なパッケージの情報が出てきますので、

grep でフィルタを掛けると、目的のパッケージがインストールできるのではないかと思います。

 

例:

wget をインストールする。

mingw-get install msys-wget

 

ファイルは事前にパスを通してある場所にインストールされますので、

追加直後から使用する事ができます。

 

また、 bash も呼び出せますので、Windows のコマンドプロンプトと適宜行き来をおこなったり、

mintty を使えるようにする | dogmap.jp

http://dogmap.jp/2011/11/15/mintty/

こちらのウェブサイトにおいて紹介されておりますような、 mintty を利用するなど、

GnuWin32 よりもかなり使える環境が手に入るのではないでしょうか。

はてなスターに対応してみた。

もうあまりにも煎じすぎて、水、もしくはお湯になってます。

こちらのブログを参考にしながら:
WordPressにはてなスターを設置するときに詰まるところ » .COM-POUND

 

テーマファイルをいじるのもいやだったので、

<?php
/*
Plugin Name: はてなすたー。
Description: はてなスターを設置します。
Author: Satoshi Mimura
Version: 99
Author URI: http://mimumimu.net
License: None
*/

add_filter('wp_head', 'hatenastar_insert');


function hatenastar_insert(){ ?>
        <script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script>
        <script type="text/javascript">
                Hatena.Star.Token = '[TOKEN]';
                Hatena.Star.EntryLoader.headerTagAndClassName = ['h1','entry-title'];
        </script>
<?php
}

このようなプラグインを書いてみました。

てきとーです。とてつもなく。

そいでもって、

http://s.hatena.com/(ID)/

このあたり( ID には自分の ID が入る )からトークンをとってきて、

コード中の “[TOKEN]” の所を書き換えると、タイトルの所に★が置けるようになるというものです。

 

何百煎じされて、かつ、車輪を100回ぐらい再開発してる感はありますが、

こういうのもいいですよね。

・・・ってことで、おほしさま置いてくれたらありがたいです(ぁ

Windows の コマンドプロンプトで .profile みたいなの。

レジストリにおいて、

\SOFTWARE\Microsoft\Command Processor

いかに、文字列値で、 “AutoRun” という値を作ってあげると、

その中の文字列に指定されたものが、コマンドプロンプトの実行時に実行されるというもの。

また、この値は

HKEY_LOCAL_MACHINE と HKEY_CURRENT_USER 以下にも置けて、

それぞれ、システム全体と、各ユーザに設定できるようです。

参考 :

http://www.atmarkit.co.jp/fwin2k/operation/command002/command5.html

 

これを応用して、 bash だったり zsh だったりのように、

起動時にホームディレクトリに .profile のようなファイルがあったら読み込んでくれる仕掛けがあったら幸せになるのではとふと思い、autorun.cmd が存在していたらそれを読み込むようなスクリプトを組んでみました。

下に示すコードを、コマンドプロンプトに貼り付けるなりして実行しますと、レジストリエントリが追加され、スクリプトが組み込まれます。

※なお、下2つのスクリプトについては、管理者権限で実行してください。

 

実行したユーザの環境において、ユーザプロファイルフォルダ (/Users/(hogehoge)/) 直下に

autorun.cmd があれば、コマンドプロンプトの起動時に実行する:

reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor" /v AutoRun /d "@ECHO OFF & IF EXIST \"%HOMEDRIVE%%HOMEPATH%\autorun.cmd\" \"%HOMEDRIVE%%HOMEPATH%\autorun.cmd\" & ECHO ON"

 

すべてのユーザ環境において、ユーザプロファイルフォルダ (/Users/(hogehoge)/) 直下に

autorun.cmd があれば、コマンドプロンプトの起動時に実行する:

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor" /v AutoRun /d "@ECHO OFF & IF EXIST \"%HOMEDRIVE%%HOMEPATH%\autorun.cmd\" \"%HOMEDRIVE%%HOMEPATH%\autorun.cmd\" & ECHO ON"

 

すべてのユーザ環境において、システムドライブ直下に autorun.bat があれば、

コマンドプロンプト起動時に実行する:

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor" /v AutoRun /d "@ECHO OFF & IF EXIST \"%SystemDrive%\autorun.bat\" \"%SystemDrive%\autorun.bat\" & ECHO ON"

 

これらの使い方としては、

コマンドプロンプトにおいての alias – みむらの手記手帳

のようなものがあるのかなーとふと。

コマンドプロンプトにおいての alias

bash なり zsh なりの、 alias コマンドを コマンドプロンプトで。というような話。


コマンドプロンプトの doskey コマンドを使用します。

bash :

$ alias ls=sl

コマンドプロンプト:

doskey notepad=calc

参考:

http://www.adminweb.jp/command/command/index2.html

 

上記サンプルを実行すると、Bash 上では ls コマンドを打つと汽車ぽっぽが走り始め(※一部環境に限る

コマンドプロンプト上では、 メモ帳(notepad) を起動しようとすると、電卓(calc) が立ち上がります。

 

またこれらの設定は、コマンドプロンプトを再起動すると吹っ飛んでしまうので、

Windows の コマンドプロンプトで .profile みたいなの。 – みむらの手記手帳

こういうのを組み合わせると、幸せになると思います。

Launcher.LaunchUriAsync でブラウザが立ち上がらない。

みむらです。
填まりましたのでメモ。

 

現象:

Launcher.LaunchUriAsync(
	new Uri("http://mimumimu.net")
	);

こういうコード書いてもブラウザが立ち上がらない。

 

確認ポイント:

マニフェストの「機能」のうち、

「プライベートネットワーク(クライアントとサーバ)」が有効になっているかどうか。

 

どうもこいつが有効じゃないと、立ち上がらないようで。