> >

 |  tomori_icon  | 
 |  category_icon  | 

2004年01月21日 (水)

CategoryImage iblogPatcher 導入記 〈その1〜 Terminal はそんなに怖くない(多分)〉

若しくは果てしなく冗長モード (汗
既に沢山の方が書かれているので何を今更と言う感もなくはないですが、お礼&普及支援って意味合いも込めて、改めて。今まで書いたエントリがあまりにも自分本位で、ただの日記でしかなかったので、躓いた所なども含めて、記憶を辿りつつまとめて行こうと思います。ちょっと...と言うかかなり...長いですけど、これを機会にちょろっと Terminal に触れてみたりなんかすると、色々と気が楽になるかも、とか思ったり思わなかったり......
[1/29:追記]
※ 修正、追記する時間がない場合、コメント欄に取り急ぎ
書く場合が有ります。合わせてご参照戴ければ幸いです。

相変わらず早とちりな自分のミスで発生したトラブルも無事解消し、気を取り直して始めたいと思います。あくまで僕レベル(UNIXって何?キッチンサニタリー用品の会社?みたいな)の方が参考になるように、なるべく分かり易く書いて行ければと考えていますが、元来の独りよがり......&無精できちんと調べないで書いてる事も多いかと思います。不明な所は詳しい人や資料を探して下さい。<無責任m(_ _)m

以下、 iblogPatcher 1.2.2 パッケージに同梱の README と併記する形で、自分の体験を元にした導入指南(至難?)を目指して書いて行きます。導入当時のエントリは煩雑になるのでなるべくリンクを貼らず、後ほど TrackBack 欄から飛べるようにしたいと思います。
ちなみに私の環境は 10.3 で Terminal のデフォルトシェルは "tcsh" ( 10.2 からの上書きアップデートだとこうなるみたい。良く判らないのでこのまま)です。

【作業前の注意点】
1)現在すでに iblogPatcher 1.2.2 パッケージはダウンロードされ、解凍されてデスクトップに有るものとして説明します。

2) OS は OS X 10.3 以上、シェルは "tcsh" での場合の例です。 Panther を新規インストールされ、デフォルトシェルが "bash" の方は念の為、この作業中は “Terminal 環境設定→新規 Terminal ウィンドウの作成時:このコマンドを実行する”の所にチェックして、入力ボックスには "/bin/tcsh" として下さい。

[1/23追記]
現在実行中のシェルは Terminal ウィンドウの上部に表示されています。

【1/24追記(重要)】
このエントリ書いた後に幾人かの方が iblogPatcher に挑戦されているのを拝見して、さらに挫折した方の傾向を見ておりますと以下の点をこのエントリ上で注意しておいた方がよろしいかと思い、追記します。この件は「 Jun's Diary 」さんのこちらのエントリに詳細に説明が有りますので、ここを読んだだけで分かりにくい方は参考にして下さい。

★ iblogPatcher 1.2.2 パッケージには含まれない更新版のファイル群が存在します★
これは本家 .MacTips を順に読んで行くと判るのですが、ファイル群が更新されている物が有ります。パッケージの中のファイル群は基本的に、「 iBlog が出力するファイルのバグを修正する」と言うデフォルトの目的では問題が有りません。ところがこれから導入を検討される方は、その他の「うにょうにょ Read More 」や「エントリ一覧」機能に魅力を感じて導入を検討される方が多いようで、このエントリはそこに対する配慮に欠けておりました。
(実は僕自身も同じ轍を踏んでエントリ一覧がうまく機能しない、と言う局面に遭遇しているにも関わらず、体験談として記載しておりませんでした。申し訳有りません。)
OKAMURA さんの iDisk ( .Mac メンバー名 "yuji_okamura")の Public フォルダに常に最新版が用意されています。 iDisk Utility.app、若しくは Finder の移動メニュー、「サーバーへ接続...」(〜 Jaguar )または「 iDisk 」( Panther 〜)からマウントしてファイル群を常に最新の物にしておきましょう。

★ .MacTips の関連エントリに一通り目を通して下さい★
このエントリを参考にして頂くのは書いたものとしては大変嬉しいのですが、あくまで本家 .MacTips での各エントリ(と出来ればコメント欄も重要です)を一読されたあと、 README を参照しつつ、僕レベルだと判り難かった部分を補足する目的で書いております。あと Terminal への苦手意識を少しでも緩和する事に貢献出来れば、と言う事も考えました。ですので、このエントリはあくまで一通りのドキュメントに目を通された事を前提にしているとお考え下さい。

後々続編エントリにて同じように長々と(迷惑?(^^;)書いては行きたいと思っているのですが、今はいささか余力がありません。恐れ入りますが、上記2点、ご注意の程よろしくお願いいたします。


3)Panther に付属の Xcode tools をインストールしておいて下さい。必須バージョンの Perl とかモジュールとかが入ってます。 Panther プリインストール機には付属してないと言う噂がちらほら...その場合はアップルのデベロッパサイトでオンライン会員に登録すれば、無料でダウンロード出来るはず...。
[追記] 友人の iBookG4 に得た情報では、インストーラの状態で HD に有るそうです。 CD は付いてないみたいですが、リストア CD 内に有る模様です。

【インストール編】
1. 実行ファイルのコピー
実行ファイル iblogPatcher を適当なディレクトリにコピーしてください。コ
ピー先には PATH が通っていた方が、コマンドラインから iblogPatcher を実
行する時に楽になります。

PATH が通っているディレクトリとはターミナル上で
echo $PATH
としたときに、":" で区切られたディレクトリ達です。次のディレクトリは習
慣的にシステムのディレクトリのコマンドを置くところなのでお薦めではあり
ません。
/sbin
/bin
/usr/sbin
/usr/bin
もしあなたの Mac OS X でこれら以外のディレクトリにパスが通っていないの
でしたら
/usr/local/bin
~/bin
などを作成して、そこに PATH を通すようにしたほうがよいでしょう。PATH
の通し方はお使いのシェルのマニュアルなどを参照してください。

出ました。初っぱなから「 PATH を通す」です。何となく聞いた事は有るけど意味としてはちゃんと理解してません。今現在の僕の感覚で言うとシステム(シェル?)君が使ってる「事務机のコマンド入れ引出しに把手を付けてやる」若しくは「コマンドの整理箱に見出しのラベルを貼る」位の事かなぁ、と思ってます。作業は当時のエントリでもリンクしてますがググったらそんなに苦もなく見つかった、 Mac OS X Darwin Tips に有った方法でやりました。リンク先でリンクして有る掲示板の流れを読むと、何となく作業の流れを理解出来ると思います。ちなみに PATH の通し方は他にも色々とやり方は有るようです。テキストエディタで編集する方法も有るようなんですが、今後の流れでも Terminal での CUI は避けて通れそうになかったので、敢て Terminal を使う事にしました。前述のリンクを読めば方法は判ると思いますが、敢て重複して具体的な体験を元に書きます。そんなことは判ってるよ!と言われそうな事もなるべく書いて行きますので、判ってる方は読み飛ばして下さい。

■現在通っている PATH を調べる■
OKAMURA さんの README に有るように Terminal 上で "echo $PATH" と入力して return キーを叩きます。

すると上のような画面になる筈。ちなみに上のは現在の私の環境でのショットですので、最後の "/usr/local/bin" に PATH が通ってます。言い換えればこの状態がこの作業での目標地点です。すでにこの状態の人は改めて PATH を通す必要は有りません。
念の為簡単にこの画像の中の文字列の意味を解説しときますと、3行目頭の "[( Mac の local ホスト名):~]" はプロンプトと言って現在のディレクトリ(階層上の居場所)を指します。Finder上で選択色になる部分と考えて良いと思います。半角チルダ "~" はホームディレクトリを省略した記述です。続いてユーザー名が表記されていますが、これが現在の自分の立場(権限)です。コマンドとコマンドの間は半角スペースで繋ぎますので、見ながらタイプする時は忘れないように気を付けて下さい。

■当該ディレクトリに移動■
次に PATH を通す方法ですが、その前に当該ディレクトリ(この場合はフォルダ)が存在するのか確かめてみましょう。ディレクトリ移動のコマンドは "cd" (チェンジディレクトリ〜以降カッコ内意訳)です。先程の結果の下にまたプロンプトが現れている筈ですので、いきなり移動してみます。
cd /usr/local/bin

と入力して return 。
もしすでに当該ディレクトリが存在するならプロンプトにその旨表示され、移動している事が判る筈です。下記は読み飛ばしてその次の「 PATH を通す」に進んで下さい。

■当該ディレクトリが存在しないなら作成■
存在しない場合は "tcsh(シェル名):指定したディレクトリ: No such file or directory." と表示され、 続くプロンプトを見ると移動せずに同じディレクトリにいる事が判ると思います。移動先を確実に存在するディレクトリにしてみましょう。
cd /usr

で return 。今度は第一階層( root )下の "usr" フォルダに移動した事が判ると思います。さらにその中を調べるには "ls -a" (リスト -オール? 半角スペースを挟んで "-" の付いた記号はそのコマンドのオプションになります。この場合は不可視ファイルも含めて全て、と言う意味)と入力して return します。すると "bin" "sbin" 等システムが使っているディレクトリが表示される筈です。ここには "local" はないものとして作成手順を書きます。
"usr" の中に "local/bin" とディレクトリを作る為には "mkdir" (メイクディレクトリ)コマンドを使います。これに "-p" を付ける事で複数の階層を同時に作成する事が出来ます。但し通常の管理者権限ではこの作業は出来ません。 "sudo" (スーパユーザーにて作業)コマンドを頭に付けます。すなわち...
sudo mkdir -p local/bin

として return 。パスワードを要求されますので、管理者パスワード(いつもログイン時にいれるヤツ)を入力して return 。無事完了すればまたプロンプトが表示されている筈です。また "ls -a" とすれば中を確認出来ますが、さらに階層を潜るのは面倒ですので一気に移動してしまいましょう。この項の最初のコマンドをまた入力(ちなみに同じプロセス〜ウィンドウ〜の中で行った作業は十字キーの↑↓で再度表示する事が出来ます)してみましょう。今度は移動出来る筈です。
移動出来る事を確認したら、続けて作業に入っても良いのですが、一旦このプロセスからログアウトしてしまいましょう。"exit" と入力して return 、[Process completed] と表示されますのでウィンドウを閉じます(これは control+d のショートカットでも可能です。こっちの方が簡単)。

上記、"sudo" コマンドでの作業だけは気を付けて下さい。Macの中の一番偉い人になりすましていじるのですから、最悪、システムを壊す可能性も有ります。くれぐれも入力したコマンドを確認してから return して下さい。他のコマンドは少々間違えてもエラーが返ってくるだけなので、恐れずトライ!です。
※どうしても不安を感じてカレントユーザー以外で iblogPatcher を使えなくて構わないと言う方は、OKAMURAさんのもう一つの提案、"~/bin" を作成してそこにインストールする方法が良いと思います。方法は上記当該ディレクトリを "/usr/local/bin" を "~/bin" に置き換えるだけです。最後の "sudo" は不要で出来ます。

■ PATH を通す■
さていよいよ PATH を通します。
実はここまでしてしまえば後は割と簡単です。先程 Terminal ウィンドウは閉じたので、新規ウィンドウで新たなプロセスのプロンプトはホームディレクトリになってると思います。そこで以下のコマンドを入力します。
echo setenv PATH "${PATH}:/usr/local/bin" >> .cshrc

で、 return します。何をやっているかと言いますと、"echo" コマンドでホームディレクトリに「 .cshrc 」と言う不可視の設定ファイルを作成、そこに「 setenv PATH "${PATH}:/usr/local/bin" 」と言う内容を書き込む、若しくはすでに有る場合は追記 ">>"する、と言う事をしています。
冒頭のコマンド "echo $PATH" で PATH が通っているか確認しましょう。今度は上の画像と同じ状態になっているはずです。

[1/23追記]
OKAMURA さんよりコメント欄にツッコミ頂きましたm(_ _)m
"echo $PATH" で PATH が通ったかどうかを確認する前に、一旦 control+d でシェルを終了させ、再度新規シェルウィンドウで確認した方が確実、との事です。

もしなっていなかった場合は、非常手段 GUI に頼ります。
まずFinderの検索ウィンドウを開きます。下図のように設定して検索。

検索結果ウィンドウに表示された「 .cshrc 」を TextEdit.app(若しくはクリエイターやタイプを設定しないテキストエディタ) で開きます。で、先程追記した内容を以下に書き直します。
setenv PATH "/usr/local/bin:$PATH"

で、保存。再度 Terminal から "echo $PATH" として確認して下さい。
最初からGUIで出来るなら、そうしろ、って話も有りますが、
今回はあくまで CUI がテーマって事で...m(_ _)m

[01/23追記]
KHOO さんよりコメント欄にツッコミ頂きましたm(_ _)m
シェルが "bash" での場合は PATH を通す所だけ、コマンドが若干違います。冒頭のようにシェルを "tcsh" に変更せずに作業される場合は、下記のコマンドをご使用下さい。ここ以外は "bash" での作業でも違いはないと言うことです。
echo 'export PATH=${PATH}:/usr/local/bin' >> ~/.bash_profile

■実行ファイルをコピーする■
はい、これもターミナルから行ってみましょう。
コピーするコマンドはまんまの "cp" です。"cp[半角スペース]コピー元ファイル名[半角スペース]コピー先ディレクトリ"ですから、冒頭の条件通りデスクトップに解凍された状態である場合、
sudo cp ~/Desktop/iblogPatcher-1.2.2/iblogPatcher /usr/local/bin

で、 return です。ちなみに Mac OS X での CUI の良い所は Finder からのドラッグドロップが利くと言う事で、コピー元の実行ファイルのフルパスはデスクトップから Terminal のウィンドウにドロップするだけです。おまけにちゃんとフルパスの最後には半角スペースが空いてます。なので後はコピー先を入力して return するだけ。
プロンプトがすんなり表示されれば成功した証ですが、もし心配だったら、上記「当該ディレクトリに移動」「当該ディレクトリが存在しないなら作成」でやった、"cd" と "ls -a" を使って確認してみましょう。

■データディレクトリをコピーする■
2. データディレクトリのコピー
データディレクトリ Library を
~/Library/Application Support/iblogPatcher としてコピーしてください。
このディレクトリには blog 定義ファイルが置かれ、その下の plugin ディレ
クトリにはプラグインが置かれることになります。

これはさすがに可視のディレクトリですので、Finderで。と言うか説明の必要もないと思いますが、念の為。
"~/Desktop/iblogPatcher-1.2.2/Library" のフォルダ名を "iblogPatcher" と変更します。で、そのフォルダごと "~/Library/Application Support" に移動して下さい。以上です。

■ Jcode.pm をインストールする■
省略します。ここまで作業されたなら、OKAMURAさんの README の説明(一番下の方の追記部分)で十分過ぎるほど詳しいと思いますので。

【設定/実行 編】

■ Blog定義ファイルを作成■
4. blog 定義ファイルの作成
コピーしたデータディレクトリの下にある sample を参考に、あなたの blog
のディレクトリを指定するファイルを作成してください。そのファイルはどこ
においても構いませんが、データディレクトリに置いておけばファイル名だけ
で指定できるようになります。sample は文字コードが EUC で、改行は LF の
みのテキストファイルです。あなたの blog 定義ファイルも同様の形式で保存
してください。sample はテキストファイルですのでテキストエディタで開く
ことができます。文字コードは EUC なので開くときに指定してください。

これも説明の余地は無いと思います、そのまんま。この後 README に書いて有るように TextEdit.app でも良いと思います。また内容に関しては下記参考リンクの先人の皆さんが分かり易いエントリを公開されてますので、そちらをご参照下さい。
注意点と言うほどの事じゃないですが、僕の場合は "sample" は直接編集せずその場に複製→ "t0moriblog.txt" とリネーム→編集→保存しました。後で追記した部分を確認するのに、さらの状態のファイルをすぐそばに残しておきたかったからです。

■取り敢えず実行してみる■
まずは iBlog で「プレビュー」して "~/Sites/iblog" 以下に対象ファイルを作成しておきましょう。当然日々 Blog を公開されてる iBlogger の皆さんはすでに有ると思いますので、再度プレビューの必要は有りません。念の為です。
【実行方法】
iBlog のために iblogPatcher を実行させるには、次のようにします。この例
では、インストールの手順 4 で作成した blog 定義ファイルを myblog.txt
だとし、それはデータディレクトリに置かれているものとします。
プレビュー前に
iblogPatcher --blog myblog.txt preview before
プレビュー後に
iblogPatcher --blog myblog.txt preview after
公開前に
iblogPatcher --blog myblog.txt publish before
公開後に
iblogPatcher --blog myblog.txt publish after
ただし、付属のプラグインのみを使用している場合は、プレビュー後と公開後
のみが有効です。

Finder を拡張子を表示させない設定でご利用の場合、Finder で見た場合の
ファイル名と実際のファイル名が異なる場合があります。 myblog.txt に相当
する箇所は、Finder の設定で拡張子を表示するようにして確かめてくださ
い。

僕の場合は上記赤字の "myblog.txt" が "t0moriblog.txt" と言うファイル名になります。今日現在のプラグインも README に有るようにプレビュー後と公開後しか使用しません。ここではまずプレビュー後のみ実行してみましょう。上記の通り Terminal にタイプ→ return したら、 "~/Sites/iblog/Bxxxxxxxxxx/index.html" をブラウザで開き、結果を確認してみましょう。拙 Blog ですとカテゴリアイコンの大きさを変えている(これを希望する方は iblogPatcher 同梱の Plugins.txt に設定の記述方法が書いて有ります)ので、実行結果が一発で判ります。

■コマンドファイルを作成する■
実行結果が満足したら、もうそれで公開して行っても良いのですが、毎日の事ですし、ついでですからコマンドファイルも作ってしまいましょう。コマンドファイルの必要条件は

1.実行権限が付いている事

2.拡張子が ".command" である事

3.クリエイターが設定されていない事。クリエイターがついていると Terminal が起動すべきコマンドファイルなのに、他のアプリで開いてしまいます。この辺、 Mac OS X の CUI にとってはリソースフォークと並んで旧 Mac OS の負の遺産と言った所でしょうか。 TextEdit.app で作成するのであれば問題は有りません(ない筈...)。他のテキストエディタでも大抵設定でクリエイターを付ける付けないの設定が有りますので、あらかじめ設定後、作成しましょう。

[追記]
【篠の風】さんのエントリ経由で artistic.flyer.OK.blog さんがかかれていた Tips m(_ _)m
.command ファイルが mi ファイルなどテキストエディタのファイルになっている場合は、ファイルの「情報を見る」でクリエータをテキストエディタからターミナルにすれば、.command ファイルをダブルクリックするだけでターミナルが起動し、perl で実行できる

考えてみればその通り...いちいちテキストエディタのクリエイターを環境設定で返る必要はないですね。僕は今まで
AmSetFileTypeCMX でいちいちクリエイター切ってましたが、上記のやり方の方がずっとスマートです。

4.文字コードが "EUC" 、改行コードが "LF" で有る事。今回は欧文のコマンドだけなので、前者は実質、無視しても良いです。

上記条件のエディタにこう記述します。

・「プレビュー後」用
#!/bin/sh
iblogPatcher --blog myblog.txt preview after

・「公開後」用
#!/bin/sh
iblogPatcher --blog myblog.txt publish after

たったこんだけです。
そうしましたら、これらのファイルは「 "半角英字で任意のファイル名".command 」としてお好きな場所に保存します。 ".command" と拡張子を付けたファイルは下記画像のようなアイコンになります。

で続けて Terminal でこれらのファイルに "chmod(チェンジモード?)" コマンドで実行権限を付けてやります。
例によってプロンプトに続けて
chmod +x (先程保存したファイルをドラッグドロップ)

で、 return 。 "+x" とした所が「実行権限を付ける」、と言う意味です。以上です。

これでこのファイルをプレビュー後、公開後の2回、それぞれダブルクリックする事により、Terminal が起動して iblogPatcher が実行されます。

[1/28]
【篠の風】さんからメールでコマンドファイルの作成に関して質問頂きましたm(_ _)m
お陰様で誤解を招く部分&間違いに気付き、本文を修正しました。

取り敢えず導入編と言う事で、今回はここまでです。 iblogPatcher 1.2.2 パッケージに含まれる基本的な機能(Blog定義ファイルでコメントアウトされている ENTRIES_JS.plugin 以外のプラグイン)はこれで動作します。「うにょうにょ Read More 」等、拡張系のプラグインに関しては .MacTips (または将来的にはプラグイン作者さんのサイト)をご参照下さい。

【関連・及び参照すべきリンク】
.MacTips( iblogPatcher 本家)
KHOO'S NOTEBOOK =「条件検索一覧を表示する
手抜き道 - The way to omission = 「お礼その3 《 iblogPatcher は怖くない vol.1》
Hiros Weblog = 「Okamuraさんの「うにょうにょ」導入記
Jun's Diary = 「 iblogPatcher 導入(インストール編その1)」「同左(その2)」「同左(その3)

【参考文献】
Mac OS X ターミナルコマンドポケットリファレンス / 海上 忍:著(技術評論社)

【謝辞】
・もちろん作者の OKAMURA さん。
インストール時には細かい質問にも答えていただき、ちょっとしたリカバリーにもご丁寧に助言下さいました。そして、この話はしつこいようですが昨年末、僕のリクエストで一晩でプラグインを書いて頂きました。......が、そのプラグインを僕はまだ使う機会を逸したままでいます。

・そしてなんと言っても OSX の CUI に関して手取り足取り伝授してくれた ken_taka さん。
考えてみれば iBlog を勧めて下さったのも ken_taka さんでした。揚げ句、無理を言って今回の記事の校正までお願いしてしまいましたが、嫌な顔せず、朝まで書き終わるのを待ってて下さり、貴重な助言をいくつも頂きました。ありがとうございます。いつかそちらに遊びに行った時はおごります。絶対おごる。吐くまで呑ます。嘘です。いや、本当に感謝してます。はい m(_ _)m

Posted by at 18:17


▼1年前はこんなこと書いてました...▼