研究や会社の仕事で改めて本格的なプロジェクト管理が必要になったので
ソースコード管理 : subversion → git(gitbucket)
プロジェクト管理 : Redmine 2.20 → Redmine 3.30
に更新した。
私が博士課程時代コードをバリバリ書いていた頃はSubversion(集中型のソースコード管理)が主流だったが、最近は分散型のソースコード管理gitの方が主流だそうでGUIが使えるgitbucketをサーバにインストールすることにした。選定に当たり、一番メジャーなのはGitHubであるが、ここに今の研究で使っているコードを公開状態で置くことが出来ないので(研究の中身は秘密なためで秘密にするにはお金がかかるため)、サーバを持っているので、自分のサーバに展開することにした。
以前会社でプロジェクト管理が必要と思い立った頃にRedmineに出会い、Railsのインストールに大格闘しながら入れたのがRedmineである。iPad/iPhoneアプリもあるので移動中にプロジェクトを確認なってこともOK、また今度のバージョンはレスポンシブっぽい。こちらもSaaSがあるのだが高いので、自分で展開している。最近Railsでプログラミングしているので、Railsの取り扱いにはかなりなれてきた。使うだけでなく、Redmineのプラグインをつくれたらなと思ったりしている。
これで再びきっちり管理出来そうである。頑張っていきたい。会社はグループウエアもオープンソース(←仕掛けた)だし、GitBucketも後輩が社内で使えそうだと言うことで入れてみたし、オープンソースを使い倒せしていけるところまで行ってみようと思う。GoogleやFacebookなんかもコードを公開していたりするから、いつかそういったことが出来ればなと考える今日この頃。
健忘録のためインストール手順を書いておく。
<GitBucketインストール>
- クライアント側のgit → yum -install git 1発
- GitBucketにはTomcatが必要(今回はVer8系を利用)
- Oracle Javaのインストール → 落としてきて入れればいい(openJDKではない)
- 最新バージョンへの切り替え → 切り替えコマンドを利用する
- Tomcatをサイトよりダウンロード+展開、tomcatユーザ作成
- tomcatユーザで起動する。(sudo -u tomcat …)
- gitbacketをダウンロード、インストール(最新バージョン )
- サイトよりwarファイルを落としtomcatインストールディレクトリ/webapp以下に配置
- tomcatを再起動
- 8080番で接続 → 起動する
- (もしやるのであればDBの設定
→ MySQLもインストールされているが今回はやらなかった) - httpsのリンクの設定(apacheのconfファイルでディレクトを設定する感じ)
- sshの証明書を用意、登録(ssh接続で利用)
<Redmineのバージョンアップ>
(Redmine本家のバージョンアップの仕方と3.30のインストール説明を利用)
- Rubyのバージョンアップ → Rubyからコードを持ってくる+展開+インストール
- 設定ファイルのバックアップ
- Redmineよりファイルを展開
- 設定ファイルを戻す
- Gemfile.lockを削除
- bundle install
- rake db:migrate
- passenger(apacheを使っている場合、negixならunicorn)再起動
→だけど再起動するのが複雑なのでhttpdそのものを再起動(sudo service httpd restart) - 当該アドレスにアクセス
またredmine上でGitbucketのレポジトリを参照し、チケットに反映出来るので、その仕組みも組み込んだ
<やり方>
- Gemfileに当該プラグインをインストールする記述を各
- bundle install
- passenger(apacheを使っている場合、negixならunicorn)再起動
- サーバにrepoと言うフォルダを作りgit clone –bareでレポジトリを取得(–bareが必須。更新情報だけを取得するコマンドとなっている)
- repo/レポジトリ.gitをredmineのプロジェクトに登録
- (9/1追加)プライベートプロジェクトでレポジトリを登録している場合、redmineのプラグイン側は匿名ユーザでgitを更新しようし、うまくいかない。(あまり良くないのだが)、レポジトリ側にIDとPASSWORDをconfig等に組み込んで回避。