MSYS2の仕様が変わったので内容は古くなっています。
前←MSYS2でMinGW環境整備(1)
MSYS2でMinGW環境整備(3)→次
前提
OS : Windows7Home 64bit
エディタはWindows上のものを使いemacsやvimなどターミナル上で動作するものは使わない。なので文字コード周りは手をつけていない。
参考URL
MSYS2プロジェクト
http://sourceforge.net/projects/msys2/
tanakh氏、minttyの設定
Windowsで最高のターミナルを構築する方法
unilith氏、msys文字コード設定
http://unilith.wordpress.com/2012/05/15/mingw-get-ver-0-5/
Nyaboo氏、msys文字コード設定
http://nyaboo.blog.so-net.ne.jp/2010-06-08pc
midge氏、gccの文字コード
gcc と文字コード
ArchLinux Wiki pacman
https://wiki.archlinux.org/index.php/Pacman_(日本語)
project_reality、MSYS2,pacman導入
http://seesaawiki.jp/x86_64/d/%B3%AB%C8%AF%B4%C4%B6%AD%B9%BD%C3%DB
http://sourceforge.net/projects/msys2/
今必要なファイルはこの直下にあります。
http://sourceforge.net/projects/msys2/files/Base/
64bitの場合はx86_64を使いましょう。
32bitの場合はi686を使いましょう。
インストーラ形式とアーカイブ形式のものがありますがどちらでもかまいません。
ここからは64bitとして説明します。
まず見るべきはこの3つ
まだ、どれを使っても違いはありません。
それぞれ違いはありますが後で説明します。
ここはとりあえずmsys2_shell.batを実行します。
すると何かいろいろメッセージが出てきますが気にしない。
ターミナルシェルを再起動しろと言われるので従います。
もう一度msys2_shell.batを開きこれで自動で行われる初期設定は終了です。
まずはターミナル本体minttyの主に外観の設定です。これはWindowsで最高のターミナルを構築する方法のフォントの設定以降に詳しく書かれています。この方はInconsolataフォントのフォントリンクをメイリオにかけていますが、私は気にならなかったので初期設定のMSゴシックのままにしています。
私は今のところ文字コードの設定は変えていません。デフォルトはja_JP.UTF8です。WindowsにおいてNTFS,exFATではファイル名はUTF8なので問題はありません。FAT16,FAT32ではファイル名はShift_JIS(CP932)なので問題があるかもしれませんが今現在そのファイルシステムのディスクを持っていないので確認できません。
また、Shift_JISで書いたソースコードをコンパイルしたプログラムやShift_JISでメッセージを出力するソフトウェアでは文字化けが起こります。Shift_JISのソースコードをGCCに渡すときは「--input-charset」や「--exec-charset」というオプションを調べると解決できます。あまりWindowsのコマンドプロンプトで走らせるようなShift_JISが標準なプログラムは使わないので文字化けが起きたときにその都度minttyのオプションから文字コードを変えて対処しています。これが気になる方は別途お調べください。
その他UNIX環境同様ターミナルを開くとホームディレクトリがカレントディレクトリになっています。BASHのパスやエイリアスを設定するのに調べると.inputrcや.profileを編集することが多いです。.inputrcは初期設定で日本語入力に不満がないのでそのままにしておきます。また、見てみるとMSYS2で.profileに相当すると思われる.bashrc_profileが.bashrcを参照するように設定されているのでここでは.bashrcを編集します。
あくまで私がよくやっている設定ですが.bashrcの100行目付近のコメントアウトをはずしてこのようにしています。
このあたりは好みです。
また、よく使うプログラムをパスを通さずにエイリアスで指定をしています。
.bashrcの中にこのように設定しています。
これでターミナルから直接打ち込んで使えます。
MSYS2ではC:\は/cになっています。パスをシングルクォーテーションで囲んで空白を含むフォルダはダブルクォーテーションで囲みます。
Cygwinではln -sコマンドを使ってシンボリックリンクを張ることができました。MSYSではln -sが使えないので/etc/fstabを編集してディレクトリをマウントしました。MSYS2では一応ln -sコマンドは通りますが単純なコピーをとっているようだったのでfstabを編集します。
手順
1.ホームディレクトリにマウント先ディレクトリを作成する。
Documentsというディレクトリを作りました。/home/ユーザー名/Documentsです。
2.fstabを編集
初期設定はこのようになっています。
これは変えずに↓を次の行に付け加えます。
ここで注意するのはマウント元のドライブ名がc:/だということです。C:\でも/c/でもありません。
これでホームディレクトリからマイドキュメントへアクセスできます。
※追記8月7日
ターミナルの起動に使うbatファイルの26行目先頭の"rem"をはずすことでNTFSのシンボリックリンクを有効にできます。
詳細はコメント欄で。
「$pacman -Sl」でインストール可能なパッケージの一覧が出てきます。それなりに数があります。64bitMSYS2の場合、大きく分けてmingw32,mingw64,msys系のパッケージリストがあります。mingw32,mingw64はそれぞれインストールして独立して使うことができます。そのために最初は無視したmingw32.bat、mingw64.batがあります。
それぞれのbatファイルの用途やGCC開発環境は次回以降書きます。
前←MSYS2でMinGW環境整備(1)
MSYS2でMinGW環境整備(3)→次
前提
OS : Windows7Home 64bit
エディタはWindows上のものを使いemacsやvimなどターミナル上で動作するものは使わない。なので文字コード周りは手をつけていない。
参考URL
MSYS2プロジェクト
http://sourceforge.net/projects/msys2/
tanakh氏、minttyの設定
Windowsで最高のターミナルを構築する方法
unilith氏、msys文字コード設定
http://unilith.wordpress.com/2012/05/15/mingw-get-ver-0-5/
Nyaboo氏、msys文字コード設定
http://nyaboo.blog.so-net.ne.jp/2010-06-08pc
midge氏、gccの文字コード
gcc と文字コード
ArchLinux Wiki pacman
https://wiki.archlinux.org/index.php/Pacman_(日本語)
project_reality、MSYS2,pacman導入
http://seesaawiki.jp/x86_64/d/%B3%AB%C8%AF%B4%C4%B6%AD%B9%BD%C3%DB
インストール手順
落とす
プロジェクトのホームページはこちらhttp://sourceforge.net/projects/msys2/
今必要なファイルはこの直下にあります。
http://sourceforge.net/projects/msys2/files/Base/
64bitの場合はx86_64を使いましょう。
32bitの場合はi686を使いましょう。
インストーラ形式とアーカイブ形式のものがありますがどちらでもかまいません。
ここからは64bitとして説明します。
初期設定
私は"C:\MSYS64"に展開しました。まず見るべきはこの3つ
mingw32_shell.bat
mingw64_shell.bat
msys2_shell.bat
mingw64_shell.bat
msys2_shell.bat
まだ、どれを使っても違いはありません。
それぞれ違いはありますが後で説明します。
ここはとりあえずmsys2_shell.batを実行します。
すると何かいろいろメッセージが出てきますが気にしない。
ターミナルシェルを再起動しろと言われるので従います。
もう一度msys2_shell.batを開きこれで自動で行われる初期設定は終了です。
minttyの設定
このターミナルが普段使うものとなるので設定しましょう。まずはターミナル本体minttyの主に外観の設定です。これはWindowsで最高のターミナルを構築する方法のフォントの設定以降に詳しく書かれています。この方はInconsolataフォントのフォントリンクをメイリオにかけていますが、私は気にならなかったので初期設定のMSゴシックのままにしています。
私は今のところ文字コードの設定は変えていません。デフォルトはja_JP.UTF8です。WindowsにおいてNTFS,exFATではファイル名はUTF8なので問題はありません。FAT16,FAT32ではファイル名はShift_JIS(CP932)なので問題があるかもしれませんが今現在そのファイルシステムのディスクを持っていないので確認できません。
また、Shift_JISで書いたソースコードをコンパイルしたプログラムやShift_JISでメッセージを出力するソフトウェアでは文字化けが起こります。Shift_JISのソースコードをGCCに渡すときは「--input-charset」や「--exec-charset」というオプションを調べると解決できます。あまりWindowsのコマンドプロンプトで走らせるようなShift_JISが標準なプログラムは使わないので文字化けが起きたときにその都度minttyのオプションから文字コードを変えて対処しています。これが気になる方は別途お調べください。
BASHの設定
デフォルトでHOMEはMSYS2の「展開フォルダ->HOME->ユーザー名」に設定されています。Windowsのユーザー名と同じになりますが日本語ユーザー名だった場合どうなるかは確認していません。人によってはWindowsのホームフォルダの位置に設定する場合もあります。それについてはここでは書きません。別途お調べください。ホームディレクトリの場所は初期設定のままにします。その他UNIX環境同様ターミナルを開くとホームディレクトリがカレントディレクトリになっています。BASHのパスやエイリアスを設定するのに調べると.inputrcや.profileを編集することが多いです。.inputrcは初期設定で日本語入力に不満がないのでそのままにしておきます。また、見てみるとMSYS2で.profileに相当すると思われる.bashrc_profileが.bashrcを参照するように設定されているのでここでは.bashrcを編集します。
あくまで私がよくやっている設定ですが.bashrcの100行目付近のコメントアウトをはずしてこのようにしています。
このあたりは好みです。
また、よく使うプログラムをパスを通さずにエイリアスで指定をしています。
.bashrcの中にこのように設定しています。
これでターミナルから直接打ち込んで使えます。
MSYS2ではC:\は/cになっています。パスをシングルクォーテーションで囲んで空白を含むフォルダはダブルクォーテーションで囲みます。
ディレクトリのリンク
MSYS2の環境とWindowsの環境は独立させたいのでホームディレクトリは先ほども書いたように初期設定のままです。ただ、マイドキュメント「C:\Users\ユーザー名\Documents」にはすぐにアクセスできるようにしたいです。そのための設定をします。Cygwinではln -sコマンドを使ってシンボリックリンクを張ることができました。MSYSではln -sが使えないので/etc/fstabを編集してディレクトリをマウントしました。MSYS2では一応ln -sコマンドは通りますが単純なコピーをとっているようだったのでfstabを編集します。
手順
1.ホームディレクトリにマウント先ディレクトリを作成する。
Documentsというディレクトリを作りました。/home/ユーザー名/Documentsです。
2.fstabを編集
初期設定はこのようになっています。
# For a description of the file format, see the Users Guide
# http://cygwin.com/cygwin-ug-net/using.html#mount-table
# DO NOT REMOVE NEXT LINE. It remove cygdrive prefix from path
none / cygdrive binary,posix=0,noacl,user 0 0
# http://cygwin.com/cygwin-ug-net/using.html#mount-table
# DO NOT REMOVE NEXT LINE. It remove cygdrive prefix from path
none / cygdrive binary,posix=0,noacl,user 0 0
これは変えずに↓を次の行に付け加えます。
c:/Users/ユーザー名/Documents /home/ユーザー名/Documents
ここで注意するのはマウント元のドライブ名がc:/だということです。C:\でも/c/でもありません。
これでホームディレクトリからマイドキュメントへアクセスできます。
※追記8月7日
ターミナルの起動に使うbatファイルの26行目先頭の"rem"をはずすことでNTFSのシンボリックリンクを有効にできます。
詳細はコメント欄で。
pacmanパッケージマネージャ
MSYS2はArchLinux由来のパッケージマネージャが搭載されています。基本的なコマンドはProject Reality開発環境構築やhttps://wiki.archlinux.org/index.php/Pacman_(日本語)を参照してください。「$pacman -Sl」でインストール可能なパッケージの一覧が出てきます。それなりに数があります。64bitMSYS2の場合、大きく分けてmingw32,mingw64,msys系のパッケージリストがあります。mingw32,mingw64はそれぞれインストールして独立して使うことができます。そのために最初は無視したmingw32.bat、mingw64.batがあります。
それぞれのbatファイルの用途やGCC開発環境は次回以降書きます。
コメントの投稿
No title
rem set MSYS=winsymlinks:nativestrict
または、Windowsに環境変数を設定してもよいかもしれません。(3ファイル分あるので)
ただし、実行するには管理者権限が必要になります。
Re: No title
> rem set MSYS=winsymlinks:nativestrict
>
> または、Windowsに環境変数を設定してもよいかもしれません。(3ファイル分あるので)
> ただし、実行するには管理者権限が必要になります。
おお,これは・・・
batファイルの中に気づいてませんでした。
教えていただきありがとうございます。