如何在 ubuntu 上设置 Gitorious 服务器?

Ami*_* KK 4 git 12.04

我想知道如何在 ubuntu 上设置 gitorious 服务器并让它在本地工作。我正在运行 12.04 并希望获得最新版本

Ami*_* KK 9

更新:从 Gitorious 3.2(2015 年初)开始,gitorious 直接支持 ubuntu。有关安装说明,请参阅https://gitorious.org/gitorious/ce-installer/

原始说明:

要从 git 安装最新的 gitorious,请按照下列步骤操作

首先,让我们通过使用

sudo su
[sudo] password for <username>:
Run Code Online (Sandbox Code Playgroud)

安装包

安装所有这些软件包时,系统会要求您输入 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
Run Code Online (Sandbox Code Playgroud)

安装 Ruby Gems

Gem.source_index正在被弃用。使用系统 1.8.25 避免了 source_index 错误。

REALLY_GEM_UPDATE_SYSTEM=1 gem update --system 1.8.25
Run Code Online (Sandbox Code Playgroud)

现在我们可以安装所有必要的 gems:

  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
Run Code Online (Sandbox Code Playgroud)

安装 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
Run Code Online (Sandbox Code Playgroud)

变得笨拙

  git clone git://gitorious.org/gitorious/mainline.git /var/www/gitorious && \
    cd /var/www/gitorious && \
    git submodule init && \
    git submodule update
Run Code Online (Sandbox Code Playgroud)

非常简单。现在我们只需要将 Gitorious 二进制文件放在我们的路径上:

 ln -s /var/www/gitorious/script/gitorious /usr/bin
Run Code Online (Sandbox Code Playgroud)

配置服务

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
Run Code Online (Sandbox Code Playgroud)

并启用它们:

 update-rc.d git-daemon defaults && \
    update-rc.d git-poller defaults && \
    update-rc.d git-ultrasphinx defaults && \
    update-rc.d stomp defaults
Run Code Online (Sandbox Code Playgroud)

我们需要创建一个额外的符号链接,因为所有启动脚本都将 RUBY_HOME 设置为 /opt/ruby-enterprise(或者我们可以只修补文件,但这样更容易,您可以根据需要更新脚本):

 ln -s /usr/ /opt/ruby-enterprise
Run Code Online (Sandbox Code Playgroud)

修复 git-ultrasphinx

截至 2013 年 3 月,git-ultrasphinx 脚本已损坏,将无法启动。请编辑/etc/init.d/git-ultrasphinx并检查start,stoprestart命令如下(必要时替换ultrasphinx:daemonts):

 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"
Run Code Online (Sandbox Code Playgroud)

配置 Apache

乘客

首先,我们需要编译Apache2乘客模块:

$(gem 内容乘客 | grep 乘客安装-apache2-module)

乘客配置脚本将准确地告诉您需要添加到 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
Run Code Online (Sandbox Code Playgroud)

重新启动 Apache 后,您就可以在 Apache 上部署任意数量的 Ruby on Rails 应用程序,无需任何进一步的 Ruby on Rails 特定配置!这三行需要插入

/etc/apache2/mods-available/passenger.load
Run Code Online (Sandbox Code Playgroud)

启用必要的模块

   a2enmod passenger && \
        a2enmod rewrite && \
        a2enmod ssl
Run Code Online (Sandbox Code Playgroud)

创建 Apache2 站点

输入 :

nano /etc/apache2/sites-available/gitorious
Run Code Online (Sandbox Code Playgroud)

并复制粘贴以下文字

<VirtualHost *:80>
    ServerName your.server.com
    DocumentRoot /var/www/gitorious/public
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

输入

 nano /etc/apache2/sites-available/gitorious-ssl 
Run Code Online (Sandbox Code Playgroud)

并复制粘贴以下文字

<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>
Run Code Online (Sandbox Code Playgroud)

现在我们需要禁用默认站点,并启用我们新创建的 Gitorious 站点:

  a2dissite default && \
    a2dissite default-ssl && \
    a2ensite gitorious && \
    a2ensite gitorious-ssl
Run Code Online (Sandbox Code Playgroud)

为gitorious创建一个MySQL用户

  mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

在以下提示后输入您在安装 MySQL 时设置的密码

Enter password:
Run Code Online (Sandbox Code Playgroud)

逐行输入,不包括您在安装 MySQL 时所做的 MySQL 密码mysql>和更改<insert password>

 mysql> GRANT ALL PRIVILEGES ON *.* TO 'gitorious'@'localhost' IDENTIFIED BY '<insert password>' WITH GRANT OPTION;

mysql> FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

配置 Gitorious

首先,我们需要确保所有 gems 都在正确的 Gitorious 版本中,所以我们运行以下命令:

cd /var/www/gitorious/ && \
    bundle install && \
    bundle pack
Run Code Online (Sandbox Code Playgroud)

现在我们可以创建 Gitorious 将在其下运行并为 Git 存储库提供服务的用户:

  adduser --system --home /var/www/gitorious/ --no-create-home --group --shell /bin/bash git && \
    chown -R git:git /var/www/gitorious
Run Code Online (Sandbox Code Playgroud)

然后我们需要创建一些 Gitorious 需要运行的东西:

  su - git && \
    mkdir .ssh && \
    touch .ssh/authorized_keys && \
    chmod 700 .ssh && \
    chmod 600 .ssh/authorized_keys && \
    mkdir tmp/pids && \
    mkdir repositories && \
    mkdir tarballs
Run Code Online (Sandbox Code Playgroud)

创建 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
Run Code Online (Sandbox Code Playgroud)

现在编辑 config/database.yml 并确保在生产部分设置正确的用户名和密码。之后,我们需要在 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
Run Code Online (Sandbox Code Playgroud)

由于 RubyGems 与 Rails < 2.3.11 不兼容,您需要在 config/boot.rb 的顶部添加以下行:

require 'thread'
Run Code Online (Sandbox Code Playgroud)

现在我们让 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
Run Code Online (Sandbox Code Playgroud)

创建 Sphinx Cronjob

crontab -e 10 * * * * /var/www/gitorious/bin/rake ts:rebuild >/dev/null RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)

创建管理员用户

env RAILS_ENV=production ruby1.8 script/create_admin
Run Code Online (Sandbox Code Playgroud)

重启

你终于完成了。重新启动你的 Ubuntu 机器,你的 Gitorious 安装应该启动并运行。

检查可能的问题

浏览http://your.server.com/admin/diagnostics以检查可能的问题。


来源http : //coding-journal.com/installing-gitorious-on-ubuntu-11-04/