Created
April 19, 2011 06:03
-
-
Save lanius/926894 to your computer and use it in GitHub Desktop.
Gitorious Installation to Ubuntu Server 10.04
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Gitorious Installation to Ubuntu Server 10.04 | |
# from gitorious mainline: | |
# commit e2e70edd42ac1c00dab518d61d566ee3fec929db | |
# Author: Marius Mathiesen <[email protected]> | |
# Date: Wed Apr 13 11:43:07 2011 +0200 | |
: << '#COMMENT_OUT' | |
Ubuntu Server 10.04 に Gitorious をインストールしたときのメモ。 | |
wgetなどのプロキシは適切に設定されていることが前提。 | |
以下の点に注意。 | |
- 冗長な作業がある | |
- まだ手作業が必要な部分がちらばっているので、注意。 | |
- プロキシ環境を前提にしているので、使わない場合には書き換えが必要。 | |
- teeまわりなど、手動でやっていたところを書き換えている部分はテストしていないので、コケるかも。 | |
#COMMENT_OUT | |
# 変数の設定 | |
export GITORIOUS_PROXY=http://example.co.jp:8080/ | |
# APTを使ったパッケージのインストール | |
sudo apt-get update | |
sudo apt-get install build-essential -y | |
sudo apt-get install zlib1g-dev -y | |
sudo apt-get install tcl-dev -y | |
sudo apt-get install libexpat-dev -y | |
sudo apt-get install libcurl4-openssl-dev -y | |
sudo apt-get install postfix -y | |
# postfixの設定画面があらわれる。 | |
# 「インターネットサイト」を選択し、「システムメール名」にホスト名を入力する。 | |
# IPアドレスを入力すると後ですこしハマる。 | |
sudo apt-get install apache2 -y | |
sudo apt-get install mysql-server -y | |
# MySQLの設定画面があらわれる。 | |
# rootのパスワードを入力する。 | |
sudo apt-get install mysql-client -y | |
sudo apt-get install apg -y | |
sudo apt-get install geoip-bin -y | |
sudo apt-get install libgeoip1 -y | |
sudo apt-get install libgeoip-dev -y | |
sudo apt-get install sqlite3 -y | |
sudo apt-get install libsqlite3-dev -y | |
sudo apt-get install imagemagick -y | |
sudo apt-get install libpcre3 -y | |
sudo apt-get install libpcre3-dev -y | |
sudo apt-get install zlib1g -y | |
sudo apt-get install zlib1g-dev -y | |
sudo apt-get install libyaml-dev -y | |
sudo apt-get install libmysqlclient15-dev -y | |
sudo apt-get install apache2-dev -y | |
sudo apt-get install libonig-dev -y | |
sudo apt-get install phpmyadmin -y | |
# phpMyAdminを動作させるために自動再設定するWebサーバが聞かれるので、apache2を選択。 | |
# データベースをdbconfig-commonで設定していいかどうか聞かれるのでYesと解答。 | |
# MySQLのパスワードを求められるので、入力する。 | |
sudo apt-get install libmagick++-dev -y | |
sudo apt-get install zip -y | |
sudo apt-get install unzip -y | |
sudo apt-get install memcached -y | |
sudo apt-get install git-core -y | |
sudo apt-get install git-svn -y | |
sudo apt-get install git-doc -y | |
sudo apt-get install git-cvs -y | |
sudo apt-get install irb -y | |
sudo apt-get install sphinxsearch -y | |
sudo apt-get install uuid -y | |
sudo apt-get install uuid-dev -y | |
sudo apt-get install openjdk-6-jre -y | |
# ActiveMQのインストール | |
mkdir ~/workspace | |
cd workspace | |
wget http://people.apache.org/~gtully/staging-repos/activemq-5.2.0/org/apache/activemq/apache-activemq/5.2.0/apache-activemq-5.2.0-bin.tar.gz | |
sudo tar xzvf apache-activemq-5.2.0-bin.tar.gz -C /usr/local/ | |
# /etc/activemq.confを作成する | |
echo "export ACTIVEMQ_HOME=/usr/local/apache-activemq-5.2.0" | sudo tee -a /etc/activemq.conf | |
echo "export JAVA_HOME=/usr/" | sudo tee -a /etc/activemq.conf | |
# activemqユーザーを作成する | |
sudo adduser --system --no-create-home activemq | |
sudo chown -R activemq /usr/local/apache-activemq-5.2.0/data | |
# activemq.xmlの編集 | |
: << '#COMMENT_OUT' | |
/usr/local/apache-activemq-5.2.0/conf/activemq.xmlを編集し、 | |
networkConnectorのdefault multicastingをOFFにする。 | |
cd /usr/local/apache-activemq-5.2.0/conf/ | |
sudo cp activemq.xml activemq.xml.old | |
sudo vi activemq.xml | |
networkConnectors要素について以下のように書き換える。 | |
<networkConnectors> | |
<!-- by default just auto discover the other brokers --> | |
<!-- Example of a static configuration: --> | |
<networkConnector name="localhost" uri="static://(tcp://127.0.0.1:61616)"/> | |
</networkConnectors> | |
#COMMENT_OUT | |
# ActiveMQのスタートアップスクリプトをセットアップして起動 | |
cd /tmp | |
wget http://launchpadlibrarian.net/15645459/activemq | |
sudo mv activemq /etc/init.d/activemq | |
sudo chmod +x /etc/init.d/activemq | |
sudo update-rc.d activemq defaults | |
sudo service activemq start | |
# Ruby Enterprise Editionをインストールする | |
cd ~/workspace | |
wget http://rubyforge.org/frs/download.php/71098/ruby-enterprise_1.8.7-2010.02_amd64_ubuntu10.04.deb | |
sudo dpkg -i ruby-enterprise_1.8.7-2010.02_amd64_ubuntu10.04.deb | |
# RubyGemsをインストール | |
cd /tmp | |
wget https://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz --no-check-certificate | |
tar xzvf rubygems-1.3.7.tgz | |
cd rubygems-1.3.7 | |
ruby setup.rb | |
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem | |
sudo gem update --system -p ${GITORIOUS_PROXY} | |
# Gemをインストール | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} rmagick | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} chronic | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} geoip | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} daemons | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} hoe | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} echoe | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} ruby-yadis | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} ruby-openid | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} mime-types | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} diff-lcs | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} json | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} rack | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} ruby-hmac | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} rake | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} stompserver | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} passenger | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} rails | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} ultrasphinx | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} mysql | |
# 以下のものはバージョンを指定してインストール | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} -v 1.0.1 rack | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} -v 1.3.1.1 rdiscount | |
sudo gem install -b --no-ri --no-rdoc -p ${GITORIOUS_PROXY} -v 1.1 stomp | |
sudo ln -s /usr/local/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake /usr/bin/rake | |
sudo ln -s /usr/local/lib/ruby/gems/1.8/gems/stompserver-0.9.9/bin/stompserver /usr/bin/stompserver | |
# gitoriousのインストール | |
git config --global http.proxy ${GITORIOUS_PROXY} | |
sudo git clone http://git.gitorious.org/gitorious/mainline.git /var/www/gitorious | |
sudo cp /var/www/gitorious/doc/templates/ubuntu/git-daemon /etc/init.d/ | |
sudo cp /var/www/gitorious/doc/templates/ubuntu/git-ultrasphinx /etc/init.d/ | |
# /etc/init.d/git-daemonを書き換える | |
: << '#COMMENT_OUT' | |
sudo vi /etc/init.d/git-daemon | |
以下のように書き換える。 | |
変更前: | |
GIT_DAEMON="/opt/ruby-enterprise/bin/ruby /var/www/gitorious/script/git-daemon -d" | |
変更後: | |
GIT_DAEMON="/usr/local/bin/ruby /var/www/gitorious/script/git-daemon -d" | |
#COMMENT_OUT | |
# git-pollerの起動スクリプトを作成 | |
: << '#COMMENT_OUT' | |
sudo vi /etc/init.d/git-poller | |
以下の内容で作成する。 | |
#!/bin/sh | |
# Start/stop the git poller | |
# | |
### BEGIN INIT INFO | |
# Provides: git-poller | |
# Required-Start: stomp | |
# Required-Stop: | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 1 | |
# Short-Description: Gitorious poller | |
# Description: Gitorious poller | |
### END INIT INFO | |
/bin/su - git -c "cd /var/www/gitorious;RAILS_ENV=production script/poller $@" | |
#COMMENT_OUT | |
# stompの起動スクリプトを作成 | |
: << '#COMMENT_OUT' | |
sudo vi /etc/init.d/stomp | |
以下の内容で作成する。 | |
#!/bin/sh | |
# Start/stop the stompserver | |
# | |
### BEGIN INIT INFO | |
# Provides: stomp | |
# Required-Start: $local_fs $remote_fs $network $syslog | |
# Required-Stop: | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 1 | |
# Short-Description: Stomp | |
# Description: Stomp | |
### END INIT INFO | |
test -f /usr/bin/stompserver || exit 0 | |
. /lib/lsb/init-functions | |
case "$1" in | |
start) log_daemon_msg "Starting stompserver" "stompserver" | |
start-stop-daemon --start --name stompserver --startas /usr/bin/stompserver --background --user git | |
log_end_msg $? | |
;; | |
stop) log_daemon_msg "Stopping stompserver" "stompserver" | |
start-stop-daemon --stop --name stompserver | |
log_end_msg $? | |
;; | |
restart) log_daemon_msg "Restarting stompserver" "stompserver" | |
start-stop-daemon --stop --retry 5 --name stompserver | |
start-stop-daemon --start --name stompserver --startas /usr/bin/stompserver --background --user git | |
log_end_msg $? | |
;; | |
status) | |
status_of_proc /usr/bin/stompserver stompserver && exit 0 || exit $? | |
;; | |
*) log_action_msg "Usage: /etc/init.d/stomp {start|stop|restart|status}" | |
exit 2 | |
;; | |
esac | |
exit 0 | |
#COMMENT_OUT | |
# 起動スクリプトをセットアップ | |
sudo chmod 755 /etc/init.d/git-ultrasphinx | |
sudo chmod 755 /etc/init.d/git-daemon | |
sudo chmod 755 /etc/init.d/stomp | |
sudo chmod 755 /etc/init.d/git-poller | |
sudo update-rc.d stomp defaults | |
sudo update-rc.d git-daemon defaults | |
sudo update-rc.d git-ultrasphinx defaults | |
sudo update-rc.d git-poller defaults | |
# apache setup scriptを実行 | |
sudo /usr/local/bin/passenger-install-apache2-module | |
# Enterでインストールが完了する。 | |
# /etc/apache2/mods-available/passenger.loadを作成 | |
: << '#COMMENT_OUT' | |
sudo vi /etc/apache2/mods-available/passenger.load | |
以下の内容で作成する。 | |
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.6/ext/apache2/mod_passenger.so | |
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.6 | |
PassengerRuby /usr/local/bin/ruby | |
#COMMENT_OUT | |
# MySQLのセットアップ | |
: << '#COMMENT_OUT' | |
https://<ホスト名>/phpmyadmin/にアクセスし、ログインする。 | |
# gitユーザーに権限を与える | |
上部メニューから 特権 > 新しいユーザを追加する を選択する。 | |
ユーザー名:git | |
ホスト:すべてのホスト | |
パスワード:なし | |
グローバル権限:createにチェック | |
他はデフォルトのまま。 | |
実行する を押すとユーザーが作成される。 | |
そのまま データベースに固有の特権 を設定する。 | |
データベースに特権を追加:gitorious_production | |
実行する を押し、 すべてチェックする をクリックしたあと、 実行する を押す。 | |
「特権を更新しました」と表示されればOK。 | |
#COMMENT_OUT | |
# Apacheのセットアップ | |
: << '#COMMENT_OUT' | |
sudo vi /etc/apache2/sites-available/gitorious | |
以下の内容で作成する。 | |
ホスト名は適当な値に変えること。 | |
<VirtualHost *:80> | |
ServerName <ホスト名> | |
DocumentRoot /var/www/gitorious/public | |
</VirtualHost> | |
#COMMENT_OUT | |
: << '#COMMENT_OUT' | |
sudo vi /etc/apache2/sites-available/gitorious-ssl | |
以下の内容で作成する。 | |
<IfModule mod_ssl.c> | |
<VirtualHost _default_:443> | |
DocumentRoot /var/www/gitorious/public | |
SSLEngine on | |
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem | |
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key | |
BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 | |
</VirtualHost> | |
</IfModule> | |
#COMMENT_OUT | |
sudo a2dissite default | |
sudo a2dissite default-ssl | |
sudo a2ensite gitorious | |
sudo a2ensite gitorious-ssl | |
# gitユーザーを作る | |
sudo adduser --system --home /var/www/gitorious/ --no-create-home --group --shell /bin/bash git | |
sudo chown -R git:git /var/www/gitorious | |
: << '#COMMENT_OUT' | |
# パスワードを設定する | |
sudo passwd git | |
#COMMENT_OUT | |
# sshログイン時のPATHにgitoriousスクリプトを通す | |
sudo ln -s /var/www/gitorious/script/gitorious /usr/bin | |
# gitユーザーでログインし、設定ファイルなどのセットアップをおこなう | |
su - git | |
cd /var/www/gitorious | |
mkdir .ssh | |
touch .ssh/authorized_keys | |
chmod 700 .ssh | |
chmod 600 .ssh/authorized_keys | |
mkdir tmp/pids | |
mkdir repositories | |
mkdir tarballs | |
cp config/database.sample.yml config/database.yml | |
cp config/gitorious.sample.yml config/gitorious.yml | |
cp config/broker.yml.example config/broker.yml | |
# config/database.ymlを編集する | |
: << '#COMMENT_OUT' | |
vi config/database.yml | |
production以外のセクション(test, development)を削除する。 | |
mysqlのパスワードを指定する。 | |
#COMMENT_OUT | |
# config/gitorious.ymlを編集する | |
: << '#COMMENT_OUT' | |
vi config/gitorious.yml | |
以下の行を削除する。 | |
development: | |
test: | |
以下の値を記入する。以下にない部分はデフォルト値を使用する。 | |
cookie_secret: <apg -m 64の結果を入力する> | |
repository_base_path: "/var/www/gitorious/repositories" | |
gitorious_client_port: 80 | |
gitorious_client_host: <ip address> | |
gitorious_host: <ip address> | |
archive_cache_dir: "/var/www/gitorious/tarballs" | |
archive_work_dir: "/tmp/tarballs-work" | |
hide_http_clone_urls: true | |
is_gitorious_dot_org: false | |
#COMMENT_OUT | |
# 元のユーザーに戻る | |
exit | |
# 変数の再設定を忘れずに | |
export GITORIOUS_PROXY=http://example.co.jp:8080/ | |
# 不足しているコンポーネントを補う | |
cd /var/www/gitorious/ | |
export http_proxy=${GITORIOUS_PROXY} | |
bundle install | |
# 最新バージョンでは以降の処理がコケるため、元のバージョンに戻す | |
cd /tmp/rubygems-1.3.7/ | |
sudo ruby setup.rb | |
# gitユーザーで再びログインし、Rakeする | |
su - git | |
export RAILS_ENV=production | |
rake db:create | |
rake db:migrate | |
rake ultrasphinx:bootstrap | |
rake ultrasphinx:configure | |
# crontabにultrasphinxを登録する | |
: << '#COMMENT_OUT' | |
crontab -e | |
以下の一行を追加する。 | |
* * * * * cd /var/www/gitorious && /usr/local/bin/rake ultrasphinx:index RAILS_ENV=production | |
#COMMENT_OUT | |
# gitoriousの管理者ユーザーを作成する | |
env RAILS_ENV=production ruby script/create_admin | |
# メールアドレスとパスワードを入れる。 | |
# rootに戻ってGemのパッケージのバージョンを合わせる | |
exit | |
# 変数の再設定を忘れずに | |
export GITORIOUS_PROXY=http://example.co.jp:8080/ | |
sudo gem install daemons --version "1.1.0" -p ${GITORIOUS_PROXY} | |
sudo gem uninstall daemons --version "1.1.2" | |
sudo gem install geoip --version "0.8.9" -p ${GITORIOUS_PROXY} | |
sudo gem uninstall geoip --version "1.0.0" | |
# サービスを起動 | |
sudo service apache2 restart | |
sudo service git-daemon start | |
sudo service stomp start | |
sudo service git-poller start | |
# Gitoriousの構築完了 | |
: << '#COMMENT_OUT' | |
以下の作業ができればOK. | |
https:<ホスト名>/にアクセス | |
ログイン | |
プロジェクト、リポジトリの作成 | |
#COMMENT_OUT | |
# ハマったところ | |
: << '#COMMENT_OUT' | |
# メール送信でエラーが発生する | |
各アプリケーションの設定で、ホスト名ではなくIPアドレスを使うと、メール送信エラーが起きる。 | |
/var/log/の下のmail.logやmail.errを見て、メール送信エラーが発生している場合は | |
Postfixの設定などを修正し、git-daemon, git-ultrasphinx, git-pollerを再起動する。 | |
# git pushができない | |
以下を忘れずに。 | |
ln -s /var/www/gitorious/script/gitorious /usr/bin | |
#COMMENT_OUT | |
# 参考資料 | |
: << '#COMMENT_OUT' | |
http://gitorious.org/gitorious/pages/UbuntuInstallation | |
http://www.silly-science.co.uk/2010/12/12/installing-gitorious-on-ubuntu-10-04-howto/ | |
http://www.slideshare.net/stealthinu/gitoriousubuntu1004-lts | |
#COMMENT_OUT |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment