HappyGoLucky

Web系サーバーサイド寄りの自動化大好きエンジニアの徒然なるブログ

mac で vim で ruby な環境構築メモ

いい加減、macvim環境を整理しようと思って手を出した。 いつか清書してQiitaにUpするかもしれない。 (N番煎じだと思うのでモチベーションはそんなにない)

macで、と書いたけど、なるべく Linux でも動くスクリプトを意識している。

環境

メモ

基本は Qiitaのこの記事を参照。とても良い記事。

qiita.com

ただし、vimは、macvim-kaoriya を利用しているので手順が違う。

というか、そもそも Mac 向けの手順ではなく、Linux向けの記事

macvim-kaoriya https://github.com/splhack/macvim-kaoriya

vim-plugin

↑の記事を参考にもろもろインストール。 自分の設定をGitHubに晒しているけど、ぐちゃぐちゃで恥ずかしい状態。

Lua

luabrewで入れたので、vimrcでluaのパスを指定しないとだめ。 .vimrcの適当なところに、

if has("mac")
  " lua is installed by homebrew
  set luadll=/usr/local/Cellar/lua/5.2.4_1/lib/liblua.dylib
end

こんな感じで書いておく。

参考 Readme · splhack/macvim-kaoriya Wiki · GitHub

RSense

RSenseのインストール、設定はこんな感じのスクリプトを実行

brew list rsense 1>/dev/null 2>&1 || brew install rsense
ruby /usr/local/Cellar/rsense/0.3/libexec/etc/config.rb > ~/.rsense

/usr/local/Cellar/rsense/0.3/ を、もっと汎用的に書けないものか悩み中。

ctags

Xcodeに入ってるみたいだけど、使いたいのは別のctagsなので設定が必要。

$ ctags -R
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ctags: illegal option -- R
usage: ctags [-BFadtuwvx] [-f tagsfile] file ...

alias を設定すれば済む話だけど、何となく、Native Mac な設定を残しておきたい性分なのでしてない。

実践vimのアドバイスにしたがって、gitのhookを利用して、commit時にctagsを実行するように。 git hookのテンプレートを自分で作れるらしい。 下記、記事を参照して、~/.git_template/hooks を作っておく。

qiita.com

#!/bin/bash
if [[ $(uname) = "Darwin" ]]; then
    ctags_bin=$(brew --prefix)/bin/ctags
else
    ctags_bin=ctags
fi
[ -x ${ctags_bin} ] && ${ctags_bin} --tag-relative -R -f .git/tags

ctagsの対象ファイルを絞るとか、いろいろ調整は必要と思うけどとりあえずこれで、 <C-]> で、メソッドの定義元にジャンプできるようになった。

↑でできてるので、 vim-tags プラグインは入れてない。

Rubocup

gem install rubocup
NeoBundle 'https://github.com/scrooloose/syntastic.git'
let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': ['ruby'] }
let g:syntastic_ruby_checkers = ['rubocop']

Reference

Dashに慣れた方が、他のドキュメントも読めるし便利だろうと思いつつ値段に尻込みしている最中。 vimで読むのが便利ならDashじゃなくても良いんじゃないかなぁ。。。うーん。

gem install rubocop refe2 bitclust-dev
which rbenv && rbenv rehash
bitclust setup

rubyはrbenvでインストールしているので、ref_refe_cmdのパスを変えてあげる。

NeoBundle 'thinca/vim-ref'
NeoBundle 'yuku-t/vim-ref-ri'
let g:ref_refe_cmd = $HOME.'/.rbenv/shims/refe'

これで、K でドキュメントが見れる。 <CR><C-I><C-o> で移動すると良い感じ。

bundlerでインストールした場合(一部未解決)

gemをbundlerでインストールすると、ドキュメントが付属しない。 なので、別途インストールする。

bundle install
bundle exec gem rdoc --all

こうすれば、 :Ref ri XX でドキュメントを見れる。

が、 bundle install --path vendor/bundle のように、 別のディレクトリにインストールすると参照できない。

パスの問題なんだろうなー、と思いつつ解決できていない。

jenkins plugin のインストール数ランキング作ってみた

URL

http://yasuhiroki.github.io/jenking/

 

仕組み

世に出ている jenkins plugin のインストール数は json 形式でネット上に保存さている。

その json をかき集めて、ただ表にまとめただけ。

json は月一でしか更新されないので、私が手元のPCで集計したものを github に Upしている。

なのでJenkins公式HPに負荷が掛かるわけではないので、怒られないはず。たぶん。

 

今後

そもそも、こういうものはいずれ作る予定、ってどこかの資料に書いてあった気がするので、そんなに作りこむ予定はないです。

raspberry pi に tracをインストールしてみた

 

Raspberry piにtracをインストールしてみた

 

基本、土日しか開発作業しないので、先週何やったっけをまとめるために、tracをインストールしてみた。

 

redmineでも良かったのだが、

  1. redmineは業務で使っている → 同じもの使っても面白くない!
  2. Pythonで動くので、Raspberry pi と相性良さそう
  3. redmineより軽い(というより早く使える?)
  4. 設定がコマンドラインベース(RedmineはWebページで完結する)

という印象を持ったので(つまり根拠なし)、試しに使いたくなった。

 

 

○ とりあえずインストール

 

先駆者が居たが(↓URL)、apt-get できるならこっちの方が手軽かと思った。

http://technicaldoc.blogspot.jp/2013/02/setup-trac-on-raspberry-pi-as-wiki-and.html

 

versionは0.12で、現状の最新(1.0)に比べると古い。LTSはまだ0.12のようだから、まあ良いだろう。

 

apt-get install trac

apt-get install trac-ja-resource

apt-get install git

 

 

○ 初期設定の前に

 

1) piユーザや、rootユーザでレポジトリ作るのはどうかと思ったので、tracユーザを作ってみる

 

adduser trac

 

○ 初期設定

 

参考 → http://qiita.com/tukiyo/items/bf10125e55ffdfa499de

 

 

1) プロジェクト作成

 

cd /home/trac

mkdir tracDir

cd tracDir

trac-admin . initenv

 

すると、何やら入力を要求される。

シェルかな、と思ってつい"ls"コマンドしたら、「lsってDB作ったよ!」と言われた。

初めだし別に良いかと思ってそのまま進める。

 

2) 日本語化

 

cd conf

vim trac.ini

 

下記の部分を変更(templateディレクトリを変更)

 

[inherit]

plugins_dir =

templates_dir =

 

[inherit]

plugins_dir =

templates_dir = /user/share/trac-ja-resource/trac/templates

 

cd ../

trac-admin . wiki load /usr/share/trac-ja-resource/trac/wiki/default-pages/

 

○ サーバーの起動

 

apacheと連携させようかと思ったが、個人的に使うだけだし、

ホームネットワークで完結させるし別に良いかと思い、素のtracを起動する。

 

cd

tracd -p 18080 tracDir

 

http://{raspberry pi の IP Address}:18080 にアクセス

"ls"プロジェクトが表示されました。

 

 

4) ちょっと触ってみて

 

まあ、やっぱり重いです。

 

jenkinsのデバッグをやってみた

基本的には、wikiを踏襲

https://wiki.jenkins-ci.org/display/JA/Building+Jenkins

 

こっちも参考に

http://www.slideshare.net/wadatka/jekins

 

ただし最新の情報は基本的にこっち

https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial

 

流れとしては、

1)jenkins を git clone

2)コンパイル

mvn package

3)プラグインの生成

mvn org.jenkins-ci.tools:maven-hpi-plugin:1.96:create 

4)Eclipse用プロジェクトファイル生成

mvn -DdownloadSources=true eclipse:eclipse

5)Eclipseにインポート

6)環境変数の設定

 

export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n"

7)生成したプラグインのディレクトリへ行ってjenkinsの起動

  tomcatと被るのでポートを10080に変更

mvn hpi:run -Djetty.port=10080

8)eclipseのDebug設定

9)起動したjenkinsに移動

localhost+10080/jenkins

 

 

試行錯誤しなからやったので、抜けている項目があるかも。

jenkinsプラグインを作る

jenkinsのプラグインを作ろうとしたが、

mvn hpi:create で作ると、作られるスケルトンのパッケージ名に問題があり、mvn packag時にエラーが出る。

具体的には、パッケージ名に「null」が含まれてしまう。

ググったら同じ症状の人が居て、回答もあったのでメモ。

http://jenkins-ci.361315.n4.nabble.com/mvn-hpi-create-adding-null-to-package-name-td4650475.html

 

【解決方法】

mvn hpi:create

 ↓

mvn org.jenkins-ci.tools:maven-hpi-plugin:1.96:create 

 

まあ、あくまでスケルトンなので、後で自分でうまく修正しなさいよ、ってことかもしれない。

外部ファイルとパラメータ

環境によって処理が変わる場合、

その分岐として使用するパラメータを、

外部ファイル(xmlなど)にして、使用する環境別に置き換えるようにするべきか、

同じく外部ファイルにして、内部に環境ごとのパラメータを持たせるべきか。

 

外部ファイルにすると、ファイルを差し替えるだけで別環境への対応が簡単にできる。

ただし、環境ごとにファイルが必要になるし、差し替える、という別プロセスの動作が必要になる。

内部に持たせると、一ヶ所で管理でき、同じプロセス内で対応が完結する。

ただし、特定の環境パラメータを解析する、という処理の実装が必要になる。

 

この両方の良いとこどりをした考え方はないものか。

jenkinsをgithubから取ってきてmavenでコンパイルした時のメモ

深夜のテンションで深く考えずやってたら、思いの外手間取ったのでメモ。

1).m2/settings.xml を忘れずに(忘れてたわー

 # wikiのプラグインチュートリアルページ参照

 mavenのセントラルリポジトリにないjarを取ってくるために必要

2)java7じゃないとだめ

 素のUbuntuに入ってたjava-6-openjdk-i386を使っていたら、maven install できなんだ

 # どういうエラーだったか控えてない...

 apt-get install openjdk-6-jdk をすればうまくい...かない

 # コンパイルエラー発生

 apt-get install openjdk-7-jdk でようやく解決