忍者ブログ
ブログツール、2007/11/06作成
[1] [2] [3
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

AptanaRadRailsを愛用しております。
NetBeansよりもコードアシストがよくなかったりとか、いろいろアレ気なところも多いIDEですが、
まあ、手になじんでいるのもあって愛用しています。

しかし、先日アップデートしてから非常にウザいワーニングが出まくりました。

identical code structure ~

というワーニングが、コードのありとあらゆるところに出まくってます。

「似たようなコードがほかにもあるから、メソッド化してDRYを保てよ~」という意図らしいですが、

UnitTestのコードとか、
ActiveRecordのFindメソッド呼び出しとか、
ちょっとしたハッシュの定義とかでも出まくる。

確かにぱっと見似たコードですよ・・・
でもこれ以上どうしようもないじゃん。
あんたちゃんと見てないでしょ・・・という感じ。

はじめはいちいち[Igonre this warning]とかをクリックして消していたけど、
あまりにもウザ過ぎる。

で、肝心の消し方。

Window->Prefanceから
Ruby-Erorors/Warnings-Duplicate Codeで
Enable checking my code for duplicate AST structuresのチェックを外す。

環境の再構築をしているらしく、しばらく待たされるけど、
これでウザいワーニングは出なくなりました。

本家のTracにも載ってたので、世界中からウザいと思われてたんでしょうね・・・

PR
え~、まず、前回ベーシック認証でTracを設定したけど、
セキュリティの事を考えてダイジェスト認証に変更。

ダイジェスト認証のパスワードをまず作成。
普通にApacheが入っているので、htdigestコマンドが使える。

# htdigest -c /path/to/.htdigest -c user

とやるとパスワードを聞かれるので、2回入力して完了。
2人目以降のユーザーには[-c]オプションなしでどんどん追記してゆく。

で、Tracdの起動オプションの--base-auth を --authに変更、
.htdigestファイルへのパスと、レルムを指定してやる。

これだけ。

次に、Tracのユーザー権限を変更する。

やり方は、trac-admin /path/to/project add|remove usr permission
という感じで一つ一つ適用してゆく。

デフォルトで、ログインしていないユーザーanonymousと、
ログインしたユーザーauthenticatedが存在していて、
anonymousにチケット発行からソース閲覧までの権限がついている。

基本的に、内輪だけで利用するつもりで、かつ、ソースを見る必要がある人は、
TortoiseSVNで見られるので、Tracではソース表示しない方向で考える。

というわけで、anonymousにはWIKI_VIEW以外の権限を全て削除、
その代わりに全権限を持つパーミッショングループ、
チケット発行とマイルストーン、レポート閲覧まで出来るグループ、
更にWIKIの変更が行えるグループを作成して、
それぞれのユーザーを追加してゆく。

この辺は、Tracのデフォルトで入っているWIKIに詳しいので、
それを参考にする。

次いで、チケット周りのレポートでメールが飛ぶようにする。

この辺の設定は簡単で、
プロジェクトフォルダのconf/trac.iniを編集するだけ。

編集するところは以下の部分
[notification]
admit_domains =
always_notify_owner = false
always_notify_reporter = true
always_notify_updater = true
ignore_domains =
mime_encoding = base64
smtp_always_bcc =
smtp_always_cc = mailaddress_for@admin.com
smtp_default_domain =
smtp_enabled = true
smtp_from = trac@localhost
smtp_from_name =
smtp_password =
smtp_port = 25
smtp_replyto = trac@localhost
smtp_server = localhost
smtp_subject_prefix = __default__
smtp_user =
ticket_subject_template = $prefix #$ticket.id: $summary
use_public_cc = false
use_short_addr = false
use_tls = false

こんな感じ。

これで、チケットに変更がある旅に、mailaddress_for@admin.com宛にメールが届く。
チケット切ってくれた人にも、メールアドレスが登録されていればメールが飛ぶ。

とまあ、こんな感じでひとまずは完了でしょうか。

wikiのページは編集しないとかっこわるいし、
トップのロゴもなにもなしだとあんまりなので、
ぼちぼち埋めていこうかと思ってます。

TortoiseSVNでSubversionのバージョン管理が出来るようになったので、
次はバグトラックと情報共有のためにTracを導入。

まずはYumでTracのインストール。

この辺を参考に、yumのリポジトリを変更。

/etc/yum.repos.d/Dag.repoでやってみたら失敗しちゃったので、
/etc/yum.repos.d/ContOS-Base.repoの最後に以下を追加。

[dag]
name=Dag RPM Repository for Redhat EL4
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

おお、Redhatのリポジトリがそのまま使えるのね、
と感心しつつyumでtracをインストール。

# yum install trac

どこを見ても、関連するプラグインのインストールではまっているみたいなので、
参考にしているサイトのまねをして一度tracをアンインストール。

# yum remove trac

 で、日本語版をダウンロード。

# wget http://www.i-act.co.jp/project/products/downloads/trac-0.10.4-ja-1.zip
# unzip trac-0.10.4-ja-1.zip
# cd trac-0.10.4-ja-1
# python setup.py install

後は、Pythonがうまくインストールしてくれる。

次に、Tracのプロジェクトを追加。
諸々の設定をある程度共有してプロジェクトを複数立てたいので、
/var/www/trac/以下にプロジェクトを配置することにする。

#trac-admin /var/www/trac/projectname initenv

順次質問されるのでそれぞれにきちんと答える。
Project Name [My Project]>  任意のプロジェクト名を入れる
Database connection string [sqlite:db/trac.db]> そのままエンター
Repository type [svn]> そのままエンター
Path to repository [/path/to/repos]>  svnリポジトリの場所
Templates directory [/usr/share/trac/templates]> そのままエンター
ここで、tracdを起動して、きちんと動くのを確認。

# tracd -p 8000 /var/www/trac/projectname

これで、対象サーバーにアクセスしてみて動作を確認してみる。

http://localhost:8000/projectname

きちんと動いてる。

ここまでは順調。

アクセス制限をベーシック認証で行うために、htpasswdファイルを作る。

# htpasswd -c /var/www/trac/.htpasswd [アカウント名]
パスワードを聞かれるので、任意のパスワードを設定。
Linuxユーザーのパスワードとは無関係なので注意。

二人目以降のパスワードは-cオプションを外して同じ事を繰り返す。

ベーシック認証のためにApacheと連携させてみる。
が、ここではまった。

mod_pythonなど、諸々のプラグインをインストール、
Apahceの設定のために/etc/httpd/conf.d/trac.confを作って設定。
先ほどのTracプロジェクトフォルダのオーナーをapacheユーザーに変更。

Apacheを再起動してアクセスしてみる。
http://localhost/trac/projectname

プロジェクトページはきちんと表示されるし、
ログインもきちんと出来る。

でも、画面の上の方にSubversionへのアクセス制限が無い、とエラー表示。
どうやら、Tracプロジェクトで指定したSubversionリポジトリのformフォルダへのアクセス権が無い、
といっているらしい。

調べてみると、そのフォルダの読み書き権限をapacheユーザーに与えてやればいいらしいが、
プロジェクトが増えるたびにその操作をするのも大変だし、
第一セキュリティ的に問題がありすぎ。

で、他の方法を探す。

ちとしらべてみると、Subversionの旧バージョンに発生するバグらしい。
インストールされているSubversionはCentOSで自動的にインストールされたものなので、
アップデートしてみる。

# yum update subversion

最新版になったところで再トライ。

すると、今度は違うエラーが。
「Unsupported version control system "svn"」とか何とか・・・

調べると、Python系のプラグインのバージョンが何とか・・
いろいろと情報が錯綜していて、Python門外漢の自分には何の事やらさっぱり、
と頭をかかえる。 

で、ハタと思った。

tracdでなにが悪いの?と。

というわけで、構成をシンプルに考え直す。
1.宅内ルータからのポートフォワーディングでしか外からアクセスできない。
2.ポートフォワーディングで80番を開放しているwebサーバーがすでにある。
3.外からアクセスは結局、そのサーバーからリバースプロクシでtracサーバーに転送するつもりだった。
4.別にhttpsでアクセスさせるつもりはない。

と考えれば、Apacheを使うメリットが思いつかない。

ベーシック認証がtracdで使えるらしいので、
オプションを調べる。

# tracd --help

おー。きちんとベーシック認証に対応してるではありませんか。
デーモナイズも出来る。
ただ、停止のためのオプションはないので、
オプションでpidを書き出させて、それを使ってプロセスをkillしないといけない。

tracのヘルプを見ると、複数プロジェクトもこれでうまくいけるらしい。

というわけで、起動、停止用のシェルスクリプトを書いて、
/etc/init.dにコピー、chkconfigで起動リストに加えて完了。

試しにサーバーを再起動してみて、きちんとTracdが動いているのを確認。

お~、うまくいった。

後は、プロジェクト毎の権限設定などをしてゆく。

というわけで続く・・・・

前回までで、TortoiseSVNの設定が終わってるので、
Railsプロジェクトの配置に移ります。

すでに沢山Railsのプロジェクトがあるので、
それぞれをプロジェクト毎にインポートしていきます。

配置は以下の要領です。
project_one┬docs ─関連ドキュメント
           ├trunc─Railsプロジェクトソース一式
           ├tags
           └branches
とまあこんな感じ。
で、後はそれぞれのフォルダに設定を施してゆく。
TortoiseSVNで行うときには、
リポジトリブラウザからフォルダもしくはファイルを選択して右クリック、
「属性」で「新規」を使って設定してゆく。
めんどうなときには、コマンドから一括でやってもいい。

基本的にdocsフォルダに入っているバイナリファイルは、
そうそう変更もしないし、競合もしにくそうなのでロックの設定。
svn:needs-lock *

Railsのソースファイルのうち、config, log, tmpフォルダは同期しても仕方ないので、
無視するように設定。
svn:ignore '*'

後は、プロジェクト毎に異なってゆくと思うので適宜ロック、ignoreの設定をしておく。

困るのはdb/migrateフォルダのmigrationファイルども。
今のところ、チームでやったとしても小規模なので、migrationファイルが増える毎にこまめにコミットして、
ファイル名のバージョン番号でおかしな事になっても手動で対応することにする。

後は、それぞれのプロジェクト毎に同じ作業をしてゆくだけ。

さて、ソースの管理が出来たあたりでTracを稼働させてみます。
さて、前回の続きです。

サーバーのセットは完了。PuTTYでのアクセスも成功。
ログインしてのコミット動作も完了しています。

IDEはAptanaを利用していて、これで出来れば良さそうですが、
うまくいかなかったときの切りわけのことと、
ソース以外のドキュメントもバージョン管理したいので、
まずはTortoiseSVNで全て出来るようにしていきます。

TortoiseSVNのプロジェクトページから、インストーラーをダウンロードしてきて、
インストールします。
同じ所に日本語ランゲージパックもあるので、一緒にインストールしておくといいです。

TortoiseSVNは何でも右クリックメニューから操作するので、
右クリックメニューで出てくる[TortoiseSVN]から[設定]を選択して設定していきます。

まず、[一般]の「言語」を日本語にしておきます。
で、svn+sshで接続するために、[ネットワーク]の設定。
SSHクライアントのところで、
TortoiseSVNと同じディレクトリにインストールされているTortoisePlink.exeを指定して、
更に、ログインIDもオプションに与えてみます。

C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe -l username

PuTTYとPagentの設定がきちんとしていれば、これでうまくいくはずです。
設定を保存して設定を閉じ、右クリックメニューから[リポジトリブラウザ]を選択。

リポジトリを聞かれるので、
svn+ssh://サーバーのIPもしくはホスト名/リポジトリへのフルパス
を入力。

これで無事接続できればOK。
後は、プロジェクト毎のディレクトリを作成していって、
必要なファイルをインポートしていけばOK。

Railsプロジェクトの時は、独特な設定を行わないと困ったことになるので、
次回はその設定。
ついめ~じ
ブログ内検索
フリーエリア
サニーカメラ
Powered by Ninja Blog    template by Temp* factory    icon by MiniaureType

忍者ブログ [PR]