KanonConductor

view kanon-setup @ 13:d48ffe357575

add some CentOS5.x support code.
author chris
date Wed, 09 Mar 2011 18:29:35 +0900
parents 427a87821423
children 01209a6aabbd
line source
2 #!/bin/bash
4 export KANON_OPT=/opt/kanon
5 export KANON_VAR=/var/opt/kanon
7 if [ -f /etc/debian_version ]
8 then
9 OS='debian'
10 APACHE_USER=www-data
11 elif [ -f /etc/redhat-release ]
12 then
13 APACHE_USER=apache
14 CHK=`egrep "CentOS release 5|Red Hat Enterprise Linux .* 5" /etc/redhat-release`
15 if [ "$CHK" != '' ]
16 then
17 OS='rhel5'
18 else
19 OS='rhel6'
20 fi
21 else
22 echo "サポートされていないOSです。"
23 echo "現在サポートされいているOSは、"
24 echo ""
25 echo " * Ubuntu 10.10 Server"
26 echo " * Debian GNU/Linux, GNU/kFreeBSD 6.0"
27 echo " * RedHat Enterprise Linux 6.0"
28 echo " * Oracle Enterprise Linux 6.0"
29 echo " * CentOS 5.x (Experimental)"
30 echo ""
31 echo "です。"
32 exit
33 fi
35 if [ "$USER" != 'root' ]
36 then
37 echo "rootでコマンドを実行してください。"
38 fi
41 if [ -d /opt/kanon ]
42 then
43 echo "=========================================================================="
44 echo "注意!! このマシンには既にKanonがインストールされているかも。確認してね♪"
45 echo "=========================================================================="
46 fi
47 echo ""
48 echo "このコマンドはKanonをインストールするよ。"
49 echo "既にkanonインストールされている場合は、上書きされて消えちゃうの。"
50 echo -n "Kanonをインストールする?(y/n) "
51 read YN
53 if [ "$YN" != "y" ]
54 then
55 echo "インストールを中断したよ。"
56 exit
57 fi
59 ### install ubuntu package
60 case $OS in
61 debian)
62 apt-get update
63 apt-get -y install `cat pkglist.debian`
64 ;;
65 rhel6)
66 yum -y install `cat pkglist.rhel6`
67 ;;
68 rhel5)
69 rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
70 yum -y install `cat pkglist.rhel5`
71 ;;
72 *)
73 ;;
74 esac
76 ### install files
77 cp -fr opt/* /opt
78 cp -frn etc/* /etc
81 ### setup configuration
82 python resource/virtualenv.py /opt/kanon
83 source /opt/kanon/bin/activate
85 ## setup sitecustomize for python
86 if [ -f /etc/python2.6/sitecustomize.py ]
87 then
88 CHK=`grep "setdefaultencoding" /etc/python2.6/sitecustomize.py`
89 if [ "$CHK" = '' ]
90 then
91 cat opt/kanon/lib/python2.6/site-packages/sitecustomize.py >> /etc/python2.6/sitecustomize.py
92 fi
93 fi
95 ### install python components
96 easy_install http://svn.edgewall.org/repos/genshi/tags/0.6.0/
97 easy_install http://ftp.edgewall.com/pub/babel/Babel-0.9.5.zip
98 easy_install http://www.i-act.co.jp/project/products/downloads/Trac-0.12.2.ja1.zip
99 easy_install xlrd
100 easy_install https://github.com/hvr/trac-git-plugin/zipball/v0.12.0.5
101 # bzr co lp:trac-bzr /tmp/trac-bzr-install
102 #easy_install --prefix /opt/kanon /tmp/trac-bzr-install
103 #rm -fr /tmp/trac-bzr-install
106 ### install trac plugins
107 easy_install http://svn.edgewall.com/repos/trac/plugins/0.12/mercurial-plugin
109 #resource/pluginsディレクトリのプラグインをインストール
110 pushd .
112 cd resource/trac-plugins
113 for i in `ls -1 .`
114 do
115 cd $i;python setup.py install --prefix=/opt/kanon
116 cd ..
117 done
118 cd ../..
120 # install plugins from web site
121 rm -fr /tmp/kanon_build
122 for i in `cat pluginlist`
123 do
124 cd /tmp
125 svn co $i kanon_build
126 cd kanon_build
127 python setup.py install --prefix=/opt/kanon
128 cd ..
129 rm -fr kanon_build
130 done
131 popd
134 ### setup apache and restart
135 case $OS in
136 debian)
137 cp resource/trac_hook.py /usr/lib/python2.6/dist-packages/bzrlib/plugins
138 if [ ! -f /etc/apache2/sites-available/kanon ]
139 then
140 cp resource/httpd.conf /etc/apache2/sites-available/kanon
141 fi
142 a2enmod expires
143 a2enmod auth_digest
144 a2enmod dav_fs
145 a2ensite kanon
146 service apache2 stop
147 service apache2 start
148 ;;
149 rhel6)
150 mkdir -p /usr/lib/python2.6/site-packages/bzrlib/plugin
151 cp resource/trac_hook.py /usr/lib/python2.6/site-packages/bzrlib/plugin
152 if [ ! -f /etc/httpd/conf.d/kanon.conf ]
153 then
154 cp resource/httpd.conf /etc/httpd/conf.d/kanon.conf
155 fi
156 echo 0 > /selinux/enforce
157 echo "SELinuxが無効化されました"
158 service httpd stop
159 service httpd start
160 ;;
161 rhel5)
162 mkdir -p /var/opt/kanon/trac/.egg-cache
163 chown apache:apache -R /var/opt/kanon/trac/.egg-cache/
164 mkdir -p /usr/lib/python2.6/site-packages/bzrlib/plugin
165 ln -s /usr/lib/python2.4/site-packages/libsvn /opt/kanon/lib/python2.6/site-packages/
166 ln -s /usr/lib/python2.4/site-packages/svn /opt/kanon/lib/python2.6/site-packages/
168 cp resource/trac_hook.py /usr/lib/python2.6/site-packages/bzrlib/plugin
169 if [ ! -f /etc/httpd/conf.d/kanon.conf ]
170 then
171 cp resource/httpd.conf /etc/httpd/conf.d/kanon.conf
172 fi
173 echo 0 > /selinux/enforce
174 echo "SELinuxが無効化されました"
175 service httpd stop
176 service httpd start
177 ;;
178 *)
179 ;;
180 esac
183 # データディレクトリが存在しない場合作成
184 if [ ! -d "$KANON_VAR/trac" ]
185 then
186 mkdir -p "$KANON_VAR/trac"
187 fi
189 if [ ! -d "$KANON_VAR/hg" ]
190 then
191 mkdir -p "$KANON_VAR/hg"
192 fi
194 if [ ! -d "$KANON_VAR/bzr" ]
195 then
196 mkdir -p "$KANON_VAR/bzr"
197 fi
199 if [ ! -d "$KANON_VAR/svn" ]
200 then
201 mkdir -p "$KANON_VAR/svn"
202 fi
204 if [ ! -d "$KANON_VAR/git" ]
205 then
206 mkdir -p "$KANON_VAR/git"
207 fi
209 # setup SampleProject
210 if [ ! -d "$KANON_VAR/trac/SampleProject" ]
211 then
212 /opt/kanon/bin/kanon-create-project SampleProject svn default
213 svn import SampleProject file:///var/opt/kanon/svn/SampleProject/ -m "initial import."
214 chown $APACHE_USER.$APACHE_USER -R /var/opt/kanon/svn/SampleProject
215 fi
217 echo "Kanon Team Conductorのインストールが完了しました。"
218 echo $KANON_OPT"/bin/kanon-create-project コマンドでプロジェクトを作成してください。"