我想知道如何在 ubuntu 上设置 gitorious 服务器并让它在本地运行。我正在运行 12.04,想获取最新版本
答案1
更新:从 Gitorious 3.2(2015 年初)开始,gitorious 直接支持 ubuntu。请参阅https://gitorious.org/gitorious/ce-installer/了解安装说明。
原始说明:
要从 git 安装最新的 gitorious,请按照以下步骤操作
首先,让我们使用
sudo su
[sudo] password for <username>:
安装软件包
安装所有这些软件包时,系统会要求您输入 MySQL 根密码,您应该记住该密码,因为稍后您将需要它。
aptitude install \
build-essential zlib1g-dev tcl-dev libexpat-dev libxslt1-dev \
libcurl4-openssl-dev 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 zip unzip memcached git-core git-svn git-doc \
git-cvs irb
安装 Ruby Gems
Gem.source_index
已被弃用。使用系统 1.8.25 可避免 source_index 错误。
REALLY_GEM_UPDATE_SYSTEM=1 gem update --system 1.8.25
现在我们可以安装所有必要的宝石:
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
安装Sphinx搜索服务器
wget http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz && \
tar -xzf sphinx-0.9.9.tar.gz && \
cd sphinx-0.9.9 && \
./configure --prefix=/usr && \
make all install
变得好玩
git clone git://gitorious.org/gitorious/mainline.git /var/www/gitorious && \
cd /var/www/gitorious && \
git submodule init && \
git submodule update
非常简单。现在我们只需要将 Gitorious 二进制文件放到我们的路径上:
ln -s /var/www/gitorious/script/gitorious /usr/bin
配置服务
Gitorious 需要一堆后台服务,所以我们需要复制提供的启动脚本:
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
我们需要创建一个额外的符号链接,因为所有启动脚本都将 RUBY_HOME 设置为 /opt/ruby-enterprise(或者我们可以只修补文件,但这种方式更简单,并且您可以根据需要更新脚本):
ln -s /usr/ /opt/ruby-enterprise
修复 git-ultrasphinx
自 2013 年 3 月起,git-ultrasphinx 脚本已损坏,无法启动。请编辑/etc/init.d/git-ultrasphinx
并检查start
、stop
和restart
命令是否如下(如有必要,请替换ultrasphinx:daemon
为):ts
START_CMD="cd $GITORIOUS_HOME && rake ts:start RAILS_ENV=production"
STOP_CMD="cd $GITORIOUS_HOME && rake ts:stop RAILS_ENV=production"
RESTART_CMD="cd $GITORIOUS_HOME && rake ts:restart RAILS_ENV=production"
配置 Apache
乘客
首先,我们需要编译Apache2 Passenger模块:
$(gem 内容乘客 | grep 乘客安装-apache2 模块)
乘客配置脚本将准确告诉您需要在 Apache 配置中添加哪些内容。您需要复制的部分如下所示:
请编辑您的 Apache 配置文件,并添加以下行:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.9
PassengerRuby /usr/bin/ruby1.8
重新启动 Apache 后,您就可以在 Apache 上部署任意数量的 Ruby on Rails 应用程序,而无需进行任何进一步的 Ruby on Rails 特定配置!这三行需要插入到
/etc/apache2/mods-available/passenger.load
启用必要的模块
a2enmod passenger && \
a2enmod rewrite && \
a2enmod ssl
创建 Apache2 站点
输入 :
nano /etc/apache2/sites-available/gitorious
并复制粘贴以下文本
<VirtualHost *:80>
ServerName your.server.com
DocumentRoot /var/www/gitorious/public
</VirtualHost>
输入
nano /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>
现在我们需要禁用默认站点,并启用我们新创建的 Gitorious 站点:
a2dissite default && \
a2dissite default-ssl && \
a2ensite gitorious && \
a2ensite gitorious-ssl
为 gitorious 创建 MySQL 用户
mysql -u root -p
出现以下提示后,输入安装MySQL时设置的密码
Enter password:
逐行输入以下内容,不包括mysql>
并将 更改<insert password>
为安装 MySQL 时设置的 MySQL 密码
mysql> GRANT ALL PRIVILEGES ON *.* TO 'gitorious'@'localhost' IDENTIFIED BY '<insert password>' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
配置 Gitorious
首先,我们需要确保所有 gem 都是 Gitorious 的正确版本,因此我们运行以下命令:
cd /var/www/gitorious/ && \
bundle install && \
bundle pack
现在我们可以创建 Gitorious 运行并提供 Git 存储库的用户:
adduser --system --home /var/www/gitorious/ --no-create-home --group --shell /bin/bash git && \
chown -R git:git /var/www/gitorious
然后我们需要创建一些 Gitorious 运行需要的东西:
su - git && \
mkdir .ssh && \
touch .ssh/authorized_keys && \
chmod 700 .ssh && \
chmod 600 .ssh/authorized_keys && \
mkdir tmp/pids && \
mkdir repositories && \
mkdir tarballs
创建 Gitorious 配置
让我们将示例配置文件复制到正确的路径:
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 并确保在 production 部分设置了正确的用户名和密码。之后,我们需要在 config/gitorious.yml 中设置几项:
确保您配置了正确的部分(不是测试:,而是生产:)
repository_base_path should be /var/www/gitorious/repositories
cookie_secret needs to be set to a random value >= 30 characters
gitorious_client_port should be 80
gitorious_host needs to be the exact hostname that clients will use (cookies get messed up otherwise)
archive_cache_dir should be /var/www/gitorious/tarballs
archive_work_dir should be something like /tmp/tarballs-work
hide_http_clone_urls should be true (they require extra unknown setup to work)
is_gitorious_dot_org should be false
Creating the Gitorious database
由于 RubyGems 与 Rails <2.3.11 不兼容,您需要在 config/boot.rb 顶部添加以下行:
require 'thread'
现在我们让 rake 为我们完成所有工作:
export RAILS_ENV=production && \
bundle exec rake db:create && \
bundle exec rake db:migrate && \
bundle exec rake rake ts:conf && \
bundle exec rake rake ts:rebuild
创建 Sphinx Cronjob
crontab -e 10 * * * * /var/www/gitorious/bin/rake ts:rebuild >/dev/null RAILS_ENV=production
创建管理员用户
env RAILS_ENV=production ruby1.8 script/create_admin
重启
您终于完成了。重新启动您的 Ubuntu 机器,您的 Gitorious 安装应该可以启动并运行。
检查可能存在的问题
浏览http://your.server.com/admin/diagnostics以检查可能存在的问题。
来源:http://coding-journal.com/installing-gitorious-on-ubuntu-11-04/