khan.chan {at} virest.org | [email protected]
默认Ubuntu我们安装的时候只安装了OpenSSH Server/Client. 你可以按照我的顺序往下操作.
#aptitude install build-essential zlib1g-dev tcl-dev libexpat-dev libxslt1-dev \
libcurl4-openssl-dev zip unzip memcached postfix apache2 mysql-server mysql-client \
apg geoip-bin libgeoip1 libgeoip-dev sqlite3 libsqlite3-dev \
imagemagick libpcre3 libpcre3-dev zlib1g zlib1g-dev libyaml-dev \
libmysqlclient15-dev apache2-dev libonig-dev ruby-dev rubygems \
libopenssl-ruby libdbd-mysql-ruby libmysql-ruby \
libmagick++-dev git-core git-svn git-doc \
git-cvs irb libaspell-dev
强制升级使用RubyGems v1.4,Gitorious支持需要.
#REALLY_GEM_UPDATE_SYSTEM=1 gem update –system
OK, 我们安装rake,daemons等
#gem install –no-ri –no-rdoc -v 0.8.7 rake && \
gem install –no-ri –no-rdoc -v 1.1.0 daemons && \
gem install -b –no-ri –no-rdoc \
rmagick stompserver passenger bundler
#gem install raspell
#wget -c http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz
#./configure –prefix=/usr; make all install
我们查看下apache2安装是否正常, 然后用git clone取gitorious代码
#git clone git://gitorious.org/gitorious/mainline.git /var/www/gitorious
#cd /var/www/gitorious
#git submodule init
#git submodule update
#ln -s /var/www/gitorious/script/gitorious /usr/bin
#cd /var/www/gitorious/doc/templates/ubuntu/ && \
cp git-daemon git-poller git-ultrasphinx stomp /etc/init.d/ && \
cd /etc/init.d/ && \
chmod 755 git-daemon git-poller git-ultrasphinx stomp
# update-rc.d git-daemon defaults && \
update-rc.d git-poller defaults && \
update-rc.d git-ultrasphinx defaults && \
update-rc.d stomp defaults
# ln -s /usr/ /opt/ruby-enterprise
# git clone git://github.com/roman/rots.git
#cd rots && gem build rots.gemspec && gem install rots-0.2.1.gem
#rm -rf /usr/lib/ruby/gems/1.8/bundler/gems/rots-babb5559aae8
#vi /var/www/gitorious/Gemfile:
gem “rots”, :git => ‘https://github.com/roman/rots.git‘ 把这一行替换为:
gem “rots”, :git => “~> 0.2.1″
#$(gem contents passenger | grep passenger-install-apache2-module)
#vi /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11
PassengerRuby /usr/bin/ruby1.8
#a2enmod passenger
#a2enmod rewrite
#a2enmod ssl
/etc/apache2/sites-available/gitorious
<VirtualHost *:80>
ServerName gitorious.virest.org
DocumentRoot /var/www/gitorious/public
</VirtualHost>
/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>
#a2ensite gitorious
#a2ensite gitorious-ssl
mysql -u root -p
Enter password: (your mysql root password you selected while installing the packages)
mysql> GRANT ALL PRIVILEGES ON *.* TO ’gitorious’@'localhost’ IDENTIFIED BY ’<insert password>’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
#cd /var/www/gitorious
#bundle install && \
#bundler pack
#adduser --system --home /var/www/gitorious/ --no-create-home --group --shell /bin/bash git && \ chown -R git:git /var/www/gitorious
#su - git && \
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
/var/www/gitorious/repositories/var/www/gitorious/tarballs/tmp/tarballs-work