2018年のMSYS2学習メモから、MinGWとの役割の違い、PATH、Bash設定、環境を理解するための学び直しを振り返ります。鹿のメイザーが、記録の範囲を守って少しユーモラスに語ります。
この回を動画で見る
同じテーマを、鹿のメイザーが図解と字幕付きで語ります。
2018年の道具箱を開けてみる
どうも、鹿のメイザーです。今日は二千十八年の学習メモを開いてみよう。Windowsに、ユニックスの道具箱を持ち込むお話。前回はcoLinuxだったが、今回はエムシスツー。似た願いでも、道具の役目は違うんじゃ。
古いメモには、エムシスツー、ミンジーダブリュー、シグウィンという名前が並んでいます。名前を読めたら理解できた気になるが、工具箱のラベルだけ見ても棚は作れん。まず、どの道具が何を担当するかを整理していこう。
この記録には、ウェブ記事から整理した説明も混ざっています。だから、わしが全部考案した、全部試して成功した、とは語りません。残っているのは学習の足跡。足跡から、走った距離も優勝記録も勝手には作れんからね。
そして、エムシスツーは今も続くプロジェクトです。もう役に立たない技術という扱いではなく、昔の学び方を振り返る回じゃ。二千十八年の選び方と、今の案内を分ける。その線を引くだけで、昔話の迷子が少し減ります。
Linuxを動かす話とは、少し違う
Windowsを使いながら、シェルで作業したい。テキストを処理したい。ソフトをビルドしたい。ひとまとめにLinuxが欲しいと言っても、実は欲しいものが違うことがある。お腹が空いたと言って、鍋まで買う必要はないんじゃ。
公式の説明は、Windows向けのネイティブなビルド環境という役割を示しています。Linuxに慣れた人にも親しみやすい道具をそろえる。今回はこの役割を押さえよう。見た目が似た黒い画面でも、中身の約束は同じとは限りません。
前回のcoLinuxと、同じ仕組みだと思うと混乱します。Linuxを動かす環境を用意する話と、Windows向けの道具をそろえる話。目的が近くても道筋は別。鹿の角と木の枝が似ていても、角に水をやってはいかんのです。
ここで、どちらが一番優れているかを決める大会はしません。何を作り、どこで動かしたいかを先に書く。目的が決まると、必要な道具の役割も見えてくる。昔の比較記事を読むときにも、この順番は頼りになります。
MSYSとMSYS2 名前が似ている罠
メモが強調していたのは、古いエムシスとエムシスツーを混同しないことです。末尾に二が付くだけ、と油断しない。似た名前の手順を見つけて安心すると、別の玄関へ鍵を差している場合がある。検索結果の上から順番に信じるのは難しいね。
さらにミンジーダブリューという名前も出てきます。記録は開発ツールのまとまりとして説明を整理している。シェルで作業する場所と、プログラムを組み立てる道具を区別したかったようじゃ。この違いをつかむと、名前の渋滞がほどけます。
大切なのは、昔のインストーラーの説明を今の推奨手順として再掲しないこと。配布方法も対応環境も変わります。メモの文字は保存できても、前提条件まで永久保存できるわけではない。引き出しの説明書にも、時代のほこりは積もるんじゃ。
今回は当時の具体的な導入コマンドを再現する講座ではありません。資料の日付、対象の環境、作りたい成果物。この三つをそろえて読むと、手順の意味が見えてくる。昔の道具を笑うより、名前に振り回された学習の道を楽しもう。
パッケージ管理は、道具の世話もする
当時のメモには、パックマンというパッケージ管理の名前が残っています。黄色いキャラクターのお話ではなく、ソフトの導入や更新を扱う道具じゃ。必要な物をまとめて管理したい、という関心が、学習記録から見えてきます。
ひとつのプログラムを入れれば、それで終わりとは限らない。周りの部品も必要になることがある。工具を買ったのに、電池も接続する部品も別だった。そんな関係を整理する役目もある。道具箱は大きさより、中身のつながりが難しいんです。
元の記録には、別の環境で道具を入れる手間への評価もありました。でもそれを現在の全利用者の評価として語るのは違う。目的や慣れによって使いやすさは変わる。ある日の学習メモを、世界中の採点表にしてしまわないようにしたいね。
記録から拾うのは、必要な道具をどうそろえるかという問いです。後から環境を再現したいなら、名前だけでなく世代や条件も残す。インストールできたことと、期待した道具が使われていることは別。その確認までが、道具箱の整理じゃ。
PATHは道具を探す順番
そして出てくるのが、パスという環境変数。コマンドを呼ぶとき、どこから道具を探すかに関わります。メモの最後にも追記例があるが、私有のフォルダ名は紹介しません。ここでは道具置き場の一、二、三という匿名の図で考えよう。
同じ名前の道具が複数の場所にあったら、どれを使うのか。この問いを忘れると、入れ直しても変わらないという混乱につながることがある。わしが帽子を買い直しても、古い帽子をかぶっていたら見た目は変わらん。頭の問題ではなく選び方じゃ。
ただし、このメモに具体的な障害の発生や解決の記録があるとは言いません。今の例は仕組みを理解するための仮の話。本人の実体験と説明用の例を分けておくと、後で読み返しても記憶が勝手に育たずに済みます。
環境を記録するときは、使っているシェル、道具の版、起動の仕方も書いておく。同じ画面に見えても、選ばれる道具が違うことはある。問題を全部まとめて動かないと言う前に、何が呼び出されているかを見る。これは長持ちする観点じゃね。
Bashの設定は、いつ読まれる?
設定したのに、別の端末で効かない。そんな一般的な疑問につながるのが、バッシュの起動時の設定です。学習メモには、バッシュアールシーやバッシュプロファイルの名前が並んでいます。似た名前が増えると、また玄関の鍵が増えた気分じゃ。
ここは古いメモの説明を、そのまま一般化しないで補足します。公式マニュアルでは、ログインする形か、対話する形かで読む設定が変わる。非ログインの対話シェルでは、バッシュアールシーが対象です。単に起動すれば毎回同じ、ではありません。
ログインの形では、全体の設定と利用者側の設定が関係します。利用者側の候補は決まった順序で確認され、読めるものが使われる。設定名を暗記する前に、自分の起動方法を確認するわけじゃ。扉が違えば呼び鈴も違う、ということです。
この回は設定ファイルの完全な講座ではないので、例外や詳細は公式資料へつなぎます。昔の説明に新しい根拠を足すときも、どこを補ったかを区別する。自分のメモを大事にすることと、その一行を無条件に信じることは別なんじゃね。
configureで環境の違いを受け止める
メモの途中には、コンフィギュアの役割について整理した説明もあります。作る環境が違うと、利用できる部品や条件も違う。だから環境を確かめて準備する。文章の抜粋を丸ごと読むのではなく、今回はこの関心を拾ってみます。
ひとつの机で成功したから、別の机でも同じはず。この期待が外れる理由を、当時も学ぼうとしていたんじゃね。道具があるか、必要な部品があるか。作業開始前に確認することが、ビルドの仕組みに組み込まれているわけです。
ただし、すべてのソフトがこの方式で作られるとは言いません。今回の資料に出てくる考え方です。現代にもいろいろなビルドの仕組みがある。昔のメモから一つの方式を取り出して、全世界のルールにしないことも大切じゃ。
こうして見ると、メモの関心は単なる導入から、環境の違いを理解する方向へ進んでいます。ボタンを押せば動く場所を探すだけでなく、なぜ場所が変わると条件が変わるかを考える。手順の裏を見たくなる瞬間が、学習記録には残るんです。
後年の雑誌に、シェルを学ぶ入口を見る
関連する後年の資料として、ソフトウェアデザイン、二千十九年六月号にも目を向けました。第一特集はシェルとシェルスクリプト。端末に親しむ話から、テキスト処理や自動化へ進む構成です。これは出版社の目次から確認できます。
その中にはシェルのカスタマイズを扱う記事もあります。設定を整える話と、日々の作業でどう役立てるかをつなぐ入口として紹介したい。この号を二千十八年のメモ作成時に読んだ、という話ではありません。資料の日付は混ぜないようにします。
雑誌の本文や画面を動画へ貼り付けることはしません。紹介は短く、号と特集、関連する記事と出典をブログへ記載する。道具の使い方をもっと知りたい人が、元の資料へ戻れるようにする。出典は飾りではなく、戻るための道しるべじゃ。
学び方には入口がいろいろあります。小さな操作を試してから仕組みへ戻る人もいれば、仕組みを読んで試したくなる人もいる。今回のメモは、環境の比較から基礎へ戻ろうとした記録。その流れと雑誌の学習テーマを、別の資料として並べています。
遠回りに見える基礎が残る
手元のメモには、遠回りに思えてもユニックスやLinuxの基礎を勉強した方がよさそうだ、という判断が残っています。ここが、今回の回顧録で味わいたいところじゃ。道具を増やす話から、道具を理解する話へ視点が移っている。
参考書を検討した記録もあります。ただ、その後に読了したか、仕事でどんな成果が出たかは、この資料からはわかりません。予約した本を、読んだ本として数えたら、わしの本棚だけ大学院になってしまう。記録の限界も一緒に残そう。
今から環境を選ぶなら、古い導入手順より現行の公式資料で確認する。昔の比較を楽しむことと、現在の作業条件を決めることは分ける。世代の違う説明書を混ぜずに読む。この小さな整理が、後から自分を助けることもあります。
今日は二千十八年のエムシスツー学習メモから、道具の役割、探す順番、設定を読む条件、基礎へ戻る判断をたどりました。語り手は鹿のメイザー。古いメモは完成した武勇伝でなくても面白い。次の道具箱を開くときに、またお会いしましょう。
参考資料
- 筆者保管の2018年6月21日のMSYS2学習メモ(参照記事の整理を含む。識別情報と第三者本文を転記せず再構成)。
- MSYS2公式:What is MSYS2? https://www.msys2.org/docs/what-is-msys2/
- MSYS2公式:Environments https://www.msys2.org/docs/environments/
- GNU Bash Reference Manual:Bash Startup Files https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html
- 『Software Design』2019年6月号、技術評論社、第1特集「思わず実践したくなるシェル&シェルスクリプト」。田代勝也「シェルのカスタマイズ方法」(p.58から)を関連資料として紹介。誌面・本文・図版の転載なし。公式目次 https://gihyo.jp/magazine/SD/archive/2019/201906