安装软件包

安装软件包

我想知道如何在 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并检查startstoprestart命令是否如下(如有必要,请替换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/

答案2

您也可以尝试我的自动安装程序:

http://blog.celogeek.com/201211/272/gitorious-installer-for-ubuntu/

https://gitorious.celogeek.com/gitorious-installer

告诉我它是否对你有用。

相关内容