2011/02/13

そろそろモダンな開発環境へシフトしよう(2)

前回で基本構築は完了したので、引き続き各種設定をする。
まずは、Windows環境から。
インストールが完了すると、コンテキストメニューにアイテムが追加される。
TortoiseBZRも入れた場合は、BazaarExplorerと両方ともに追加される。
機能的な重複があるので、個人的には若干微妙。
ただし、適宜使い分けをすれば良さそう。
例えば設定等はコンテキストから呼び出せると楽かも。
インストール後のコンテキストメニュー




















[TortoiseBZRの設定]
TortoiseBZR共々、この設定から開始する。
BazaarExplorerとも連動するBazzarの設定は、「一般Bazaarオプション」から行う。
TortoiseBZRの設定画面1





















2.2でのアイコンオーバーレイ設定は荒いけど、
2.3では少し設定を細かく出来る仕様になっている。
何にせよ、実施するドライブやパスを必要最小限にした方がExplorerの応答が良くなるらしい。
TortoiseBZRの設定画面2





















[一般Bazaarオプション]

※以降の設定画面は、BazaarExplorer側ではきっちりと日本語されているので、
英語に拒否反応を示す方々はそちらをどうぞ。

ユーザー毎の利用環境の設定を指定する。
Name値やEmail値は実行マシン名や実行ユーザー名から自動入力済み。
メールによる伝達等の運用を行う場合は、両値を適宜変更した方が良さそう。
社内1拠点での小規模運用程度なら、利用者氏名やニックネーム等をテキトーに。
Editor値は、BazaarExplorerの設定編集やコミットログ入力等に利用される模様。
未設定の場合は、Notepadが起動する。
E-mail Client値は、コミットログ等に付記される前述メールアドレスをクリックした際に利用するメーラー?を指定する。
Bazaar設定1





















各種外部コマンドのエイリアスを指定する。
試しにWinMergeをwdiff等と指定してものの、後述の外部コマンド呼び出しでは利用されなかった。
利用方法が違うのか?
Bazaar設定2





















 バグトラッカーを指定するらしい。
用途不明につき、調査中。
Bazaar設定3





















スペルチェック?
OSSで日本語のスペルチェッカー何てあるんだろうか?
Bazaar設定4





















差分表示に利用するdffアプリを指定する。
外部dffを利用する場合は、ファイルパス(利用出来るならalias)を指定する。※1
TortoiseSVNでOffice系バイナリデータの比較に触れて以来、
すっかりWinMerge + xdocdiff + SCMのスタックにハマってしまった。
画像のdiffには、TortoiseIDiffを指定してみるもの一興。
Bazaar設定5





















マージ処理時に利用するアプリを指定する。
 ファイルパス(利用出来るならalias)を指定する。※2
Bazaar設定6





















※1,2  日本語が比較対象ファイルパスに含まれると、外部アプリ呼び出し時にエラー終了する。
パッチが存在するものの、メインラインに取り込まれていない。
問題が発生する場合は、
DETROIT.DDO.JP - Bazaar plugins
「Windowsで外部コマンドが起動できないバグを修正するプラグイン」を導入するいい。

そろそろモダンな開発環境へシフトしよう(1)

SVNやTracなネタを色々と載せていたけれど、そろそろモダンなネタをまとめてみる。
以前と違って、OSS界隈ではDVCSが主流になっている。
ま、みんなストレスは抱えたくないということか。
I/BTSにはTracは機能的にいいのだけど、マルチプロジェクトとか色々とアレなのでスルーした。
Pythonicな人間は、Tracなんだろうけど...

そんな訳で、Redmine + Bazaarを構築する。

最終目標は、WinXP~Win7 + CentOS / Ubuntuで快適開発出来るようにすること。
主に利用するアプリは、Deamweaver、Photoshop、Emacs。
後は、たまにEclipse / AptanaとVisual Studio 6 / 20**。
扱うファイルは、テキストデータ、画像、Office系バイナリデータ。
こうして挙げてみると、節操ない。
きっと世のWeb系開発環境はこんなもんだろう。
ちなみに、利用者の想定は営業/事務、デザイナー、PG / SE等。
一応事前調査してみたけど、キツいのはPhotoshopとVisual Studioか。
他については、何とかなりそうな感じ。
それにしてもAdobeのSubversion対応は、機能的に中途半端な感じが否めない。
バージョン非互換とか色々と頂けないことが多い。

何にせよ、Bazaarを導入する。
*nix環境は、

 apt-get install bzr 
 yum install bzr
等とコマンド実行する。
GUIと拡張機能は必要に応じて。

Windows環境は、本家からダウンロードする。
記事投稿時の最新版2.3では、BazaarExplorerの日本語表示対応が同梱されていない。
別段問題がなさそうな2.2で作業を進める。
以下、インストールの流れ。
1.インストール開始

2.お決まりのライセンス確認

3.インストール先の指定
今後の自分色な実装に備えて、デフォルトがオススメ

4.インストールオプションの設定
Tortoise*好きな人は適宜選択する
※但し、ToroiseBZRは重い

5.スタートメニューの指定
拘りがなければ、デフォルトで

6.各種ショートカットの指定
お好きにどうぞ

7.インストール実行の確認

8.インストール実行

9.インストール完了
※実行環境やバージョンによっては再起動が促されない。
ToroizeBZRを導入する場合は、別途再起動すべき。

SLiMはXDMCP未対応

紆余曲折あったSLiM環境も、近頃は落ち着いて運用出来ている。
ただ、「XDMCPが利用出来ない」。
この一点のお陰で、関連技術を色々試すハメになった。
よくある手法としては、

  1. XDMCP
  2. Xnest ( Xephyr 含む )
  3. SSH X11 Port Frowarding
  4. vnc
  5. Freenx
  6. TeamViewer
といったところ。
以下、試験結果。

1. XDMCP
論外。SLiMは対応していないので...恐らく画面応答速度は、Xnestと同じか?

2. Xnest ( Xephry )
Xnestは、画面応答速度が使い物にならないレベルだった。
生XWindow流してるだけに、当然の結果。
ただ、何処かでなんぞライブラリを導入することで応答速度を改善できるといった情報を見付けたものの、失念。
Xephryは、起動すら出来なかった。
KDE寄りのようだし、調査に時間がかかりそうだった。


3. SSH X11 Port Frowarding
古来より使われている手法なだけに、それなりの応答速度と実行結果だった。
パネル統合処理等も効くので、Thunderbirdでは「MinimizeToTray」によるタスクトレイ格納が出来た。
ただ、所詮は生XWindow流してるだけに、平時は我慢できるものの、緊急時は到底使えないレベル。
それに、緊急時こそ複数のアプリを即座に立ち上げたいものなので、微妙。
自分が利用する全てのGUIアプリのコマンド名を覚えている人なんているのだろうか。

4. vnc
リモートデスクトップ用なだけに、良好な結果だった。
ただ、常用する訳ではないのでx11vncを試した。
単純に、

x11vnc

と実行するだけで稼働した。※1

クライアントは、tsclientを試してみたものの、
詳細なvcnオプションをxtightvncviewerに渡せないようなので、

xtightvncviewer -compresslevel 9 -quality 9 -x11cursor -nocursorshape -encodings Tight xxx.xxx.xxx.xxx


等とコマンド実行した。
ようやく、及第点といったところ。

5. Freenx
マシンリプレイス以前に利用していた。
そこそこの評価だったものの、
現状のデスクトップ関連スタックとの相性が悪いのか、デスクトップやパネル等の個別アプリ毎に
ロカールマシン側でウィンドウが生成されてしまって使い物にならなかった。

6. TeamViewer
非商用利用が前提なものの、番外として試した。
応答速度は、Xnestと同程度。
C/Sマルチプラットフォームを謳っているものの、

  • 上下位バージョン互換性が悪い
  • 認証とはいえ、必ずサービス提供企業のサーバーを経由している
  • プロプラなだけに、色々と胡散臭いところがある
  • プログラムがwineで実行されるため、管理系GUIが崩れる
といった点から、常用には不向き。
ただし、クライアントへのボランティアでセキュリティポリシーが許せば、
採用を検討しても良さそう。
採用する際は、IDホワイトリストとパスワード認証は必須。


結論
複数sshセッション張って、x11vncとコンソール。
そもそも、vncなんて使わなくてもいい程度の緊急時対応で済むことが一番簡単なんだけど...
尚、当然ながら、全ての操作はSSHプロキシー( ssh + tsocks )を経由した。

※1 x11vncは、デフォルトはパスワード認証がないので、常用する場合は、別途関連設定が必要。