Gitorious -RoRで記述されたGitHUBのオープンソースの代替で、ActiveMQ(この場合はStomp)を使用します
インストールは、新しくインストールされたCentOS-6.2-x86_64-minimalディストリビューションで実行されました。 すべてのコマンドは、別のユーザーが必要なルートから実行され、適切な指示があります。
設置時間〜3時間
Gitoriousのインストール準備便宜上、コンソールテキストエディターnano(viは好きではありません)、wget rocker、ファイルマネージャーの真夜中の司令官をインストールしました
yum install nano wget mc
次に、RPMForgeリポジトリを追加する必要があります
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
次に、システムを更新し、いくつかの必要なパッケージをインストールします。
yum update yum groupinstall -y "Development tools" "Development Libraries" yum install -y git-core git-svn java-1.6.0-openjdk vim-* apg pcre pcre-devel zlib zlib-devel libyaml-devel GeoIP-devel sphinx mysql-devel mysql-server mysql readline-devel libxml2-devel libxslt libxslt-devel aspell*
MySQLMySQLを構成します
service mysqld start /usr/bin/mysql_secure_installation
rootユーザーのパスワードを設定し、すべての要求にyesと答えます
Ruby Enterprise Editionwww.rubyenterpriseedition.com/download.htmlから最新のrubyエンタープライズディストリビューションをダウンロードしてインストールします
wget http://rubyenterpriseedition.googlecode.com/files/ruby-enterprise-1.8.7-2012.02.tar.gz tar xzf tar xzf ruby-enterprise-1.8.7-2012.02.tar.gz cd cd ruby-enterprise-1.8.7-2012.02 ./installer
Enterキーを2回押して、インストールが完了するまで待ちます
rubyを構成し、環境変数を変更する
cd /opt ln -s ruby-enterprise-1.8.7-2012.02/ ruby nano /etc/profile if [ "$EUID" = "0" ]; then pathmunge /opt/ruby/bin export RAILS_ENV=production export PATH=/usr/local/sphinx/bin:/usr/local/bin:$PATH export _JAVA_OPTIONS=-Xmx64m export MAGICK_HOME=/usr/local export DYLD_LIBRARY_PATH=/usr/local/lib
ファイルの最後に次の設定を追加します。
nano /etc/bashrc pathmungea () { if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi fi } pathmungea /opt/ruby/bin export RAILS_ENV=production export PATH=/usr/local/sphinx/bin:/usr/local/bin:$PATH export _JAVA_OPTIONS=-Xmx64m export MAGICK_HOME=/usr/local export DYLD_LIBRARY_PATH=/usr/local/lib unset pathmungea
ログインして、ImageMagickのインストールを続行します
Imagemagick cd ~ yum install -y tcl-devel libpng-devel libjpeg-devel ghostscript-devel bzip2-devel freetype-devel libtiff-devel
ImageMagickの古いバージョンであるyumでは、ソースからインストールしてエラーを防ぎます
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.7.6-1.tar.gz tar xzf ImageMagick-6.7.6-1.tar.gz cd ImageMagick-6.7.6-1 ./configure --prefix=/usr/local --with-bzlib=yes --with-fontconfig=yes --with-freetype=yes --with-gslib=yes --with-gvc=yes --with-jpeg=yes --with-jp2=yes --with-png=yes --with-tiff=yes make make install
ここで、いくつかのruby gemをインストールし、execをバンドルする必要があります
gem install bundle gem install sphinx rmagick ultrasphinx mime-types chronic ruby-hmac daemons mime-types BlueCloth ruby-yadis ruby-openid rspec rspec-rails RedCloth stompserver --no-ri --no-rdoc
EPELリポジトリを追加します(download.fedora.redhat.comはdl.fedoraproject.orgに変更されました)
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
ギトリアス実際、準備が完了しました。これで、問題のインストールに安全に進むことができます。
useradd -d / home / git git
su git cd ~ mkdir log mkdir conf git clone git://gitorious.org/gitorious/mainline.git gitorious cd gitorious/ mkdir -p tmp/pids exit
gitoriousの構成
su git nano /home/git/gitorious/doc/templates/centos/git-daemon RUBY_HOME="/opt/ruby" GITORIOUS_HOME="/home/git/gitorious" nano /home/git/gitorious/doc/templates/centos/git-ultrasphinx GITORIOUS_HOME="/home/git/gitorious" nano /home/git/gitorious/doc/templates/centos/git-poller RUBY_HOME="/opt/ruby" GITORIOUS_HOME="/home/git/gitorious" export _JAVA_OPTIONS=-Xmx64m nano /home/git/gitorious/doc/templates/centos/stomp RUBY_HOME="/opt/ruby" GEMS_HOME="/opt/ruby" GITORIOUS_HOME="/home/git/gitorious" exit gem install --no-ri --no-rdoc -v 1.5.0 json gem install --no-ri --no-rdoc -v 1.3.1.1 rdiscount gem install --no-ri --no-rdoc -v 0.8.7 rake gem install --no-ri --no-rdoc -v 1.1.0 daemons gem install --no-ri --no-rdoc -v 0.8.9 geoip gem install --no-ri --no-rdoc -v 1.0 raspell gem uninstall rake -v 0.9.2.2 cd /home/git/gitorious bundle install cp config/database.sample.yml config/database.yml cp config/gitorious.sample.yml config/gitorious.yml cp config/broker.yml.example config/broker.yml su git mkdir /home/git/data mkdir /home/git/data/repositories mkdir /home/git/data/tarballs mkdir /home/git/data/tarball-work chown -R git:git /home/git/data
構成ファイルのシークレットCookieを作成します
apg -m 64
受信したデータをファイルにコピーします
nano /home/git/gitorious/config/gitorious.yml
cookie_secret行へ:
例:
development: cookie_secret: SwouncievNivJucivrevnisfookEcnasiarHamgogdipmopyicbyctyikBagArimgronugAmIsUkDifpoyftEggobviuzIpArgecHewElsOcubnuejEtDecerlyooHibsmivyecivfalakMarfAvikokip^ojyorwahonkIrEdeibZepbivsaftIdmapmic)frivetcetEceivepJuxNeipnidzaroyffAgVevfuIvDesemAfyacAppAtdeavayswenEjUcoofnafryefGewboshkyersufcawJontIavZenFeifWoitGejEajnoiWrysawidHewofOkheTwiOjFigWigbobinCushBurnErnodedLuenAtTeyznoynoryop repository_base_path: "/home/git/data/repositories" extra_html_head_data: system_message: gitorious_client_port: 80 gitorious_client_host: git.example.com gitorious_host: git.example.com gitorious_user: git exception_notification_emails: admin@example.com mangle_email_addresses: true public_mode: true locale: en archive_cache_dir: "/home/git/data/tarballs" archive_work_dir: "/home/git/data/tarball-work" only_site_admins_can_create_projects: true hide_http_clone_urls: false is_gitorious_dot_org: false use_ssl: false test: cookie_secret: SwouncievNivJucivrevnisfookEcnasiarHamgogdipmopyicbyctyikBagArimgronugAmIsUkDifpoyftEggobviuzIpArgecHewElsOcubnuejEtDecerlyooHibsmivyecivfalakMarfAvikokip^ojyorwahonkIrEdeibZepbivsaftIdmapmic)frivetcetEceivepJuxNeipnidzaroyffAgVevfuIvDesemAfyacAppAtdeavayswenEjUcoofnafryefGewboshkyersufcawJontIavZenFeifWoitGejEajnoiWrysawidHewofOkheTwiOjFigWigbobinCushBurnErnodedLuenAtTeyznoynoryop repository_base_path: "/home/git/data/repositories" extra_html_head_data: system_message: gitorious_client_port: 80 gitorious_client_host: git.example.com gitorious_host: git.example.com gitorious_user: git exception_notification_emails: admin@example.com mangle_email_addresses: true public_mode: true locale: en archive_cache_dir: "/home/git/data/tarballs" archive_work_dir: "/home/git/data/tarball-work" only_site_admins_can_create_projects: true hide_http_clone_urls: false is_gitorious_dot_org: false use_ssl: false production: cookie_secret: SwouncievNivJucivrevnisfookEcnasiarHamgogdipmopyicbyctyikBagArimgronugAmIsUkDifpoyftEggobviuzIpArgecHewElsOcubnuejEtDecerlyooHibsmivyecivfalakMarfAvikokip^ojyorwahonkIrEdeibZepbivsaftIdmapmic)frivetcetEceivepJuxNeipnidzaroyffAgVevfuIvDesemAfyacAppAtdeavayswenEjUcoofnafryefGewboshkyersufcawJontIavZenFeifWoitGejEajnoiWrysawidHewofOkheTwiOjFigWigbobinCushBurnErnodedLuenAtTeyznoynoryop repository_base_path: "/home/git/data/repositories" extra_html_head_data: system_message: gitorious_client_port: 80 gitorious_client_host: git.example.com gitorious_host: git.matthouse.us gitorious_user: git exception_notification_emails: admin@example.com mangle_email_addresses: true public_mode: true locale: en archive_cache_dir: "/home/git/data/tarballs" archive_work_dir: "/home/git/data/tarball-work" only_site_admins_can_create_projects: true hide_http_clone_urls: false is_gitorious_dot_org: false use_ssl: false
引き続き構成します。
nano /home/git/gitorious/config/broker.yml production: adapter: stomp development: adapter: stomp test: adapter: stomp
Mysqlを構成し、データベースを初期化します
mysql -uroot –p'<ROOT'S MYSQL PASSWORD>' create database gitorious; create database gitorious_test; create database gitorious_dev; CREATE user 'git'@'localhost' IDENTIFIED BY '<PASWORD>'; GRANT ALL ON gitorious.* TO 'git'@'localhost'; GRANT ALL ON gitorious_test.* TO 'git'@'localhost'; GRANT ALL ON gitorious_dev.* TO 'git'@'localhost'; FLUSH privileges; exit; nano /home/git/gitorious/config/database.yml cd /home chown -R git:git /home/git cd /home/git chmod -R 755 data chmod 755 gitorious cd /home/git/gitorious
nano Rakefile
cd /home chown -R git:git /home/git cd /home/git chmod -R 755 data chmod 755 gitorious gem update --system 1.6.2 bundle exec rake gems:install bundle exec rake db:create:all bundle exec rake db:setup bundle exec rake db:migrate
ultrsphinxの構成:
cd /home/git/gitorious export RAILS_ENV=production export PATH=/usr/local/sphinx/bin:$PATH bundle exec rake ultrasphinx:configure RAILS_ENV=production bundle exec rake ultrasphinx:index bundle exec rake ultrasphinx:daemon:start RAILS_ENV=production
初期化ファイルへのリンクを作成し、Gitoriousが機能するために必要なサービスを実行する
ln -s /home/git/gitorious/doc/templates/centos/git-daemon /etc/init.d/git-daemon chmod +x /etc/init.d/git-daemon chkconfig --add git-daemon service git-daemon start ln -s /home/git/gitorious/doc/templates/centos/stomp /etc/init.d/stomp chmod +x /etc/init.d/stomp chkconfig --add stomp service stomp start ln -s /home/git/gitorious/doc/templates/centos/git-poller /etc/init.d/git-poller cd /home chown -R git:git /home/git cd /home/git chmod -R 755 data chmod 755 gitorious chmod +x /etc/init.d/git-poller chkconfig --add git-poller nano /home/git/gitorious/script/poller
ultrasphinxを構成する
memcachedmemcachedをインストールする
yum install -y --enablerepo=remi memcached service memcached start chkconfig memcached on
アパッチ yum install -y httpd httpd-devel mod_xsendfile curl-devel
Rubyパッセンジャーをインストールする
/opt/ruby/bin/passenger-install-apache2-module
Httpd.confの例
Host.confの例
最終チーム:
chcon -R -h -t httpd_sys_script_exec_t /opt/ruby/lib/ruby/gems/1.8/gems/passenger-3.0.11/ext/apache2/mod_passenger.so service httpd configtest service httpd start
ファイアウォールを無効にします(クリーンなシステムがあり、まだ構成されていません)
service iptables stop
ブラウザでgit.example.comを開き、素晴らしいホームページをお楽しみください