ラベル ubuntu の投稿を表示しています。 すべての投稿を表示
ラベル ubuntu の投稿を表示しています。 すべての投稿を表示

2014年1月15日水曜日

rubyをubuntuにソースからコンパイルしてインストールする。

rubyをubuntu13.04にソースからコンパイルしてインストールする方法を調べました。

事前にライブラリをインストールしないといけないのですが、必要なライブラリをまとめてあるところがすくなかったので、なにかの参考にはなるとおもいます。

参照先は次の2箇所です。

  1. gitlabのインストールの説明

  2. ruby-buildのwiki

なお、インストールするrubyは、ruby-2.0.0-p353です。

sudo apt-get install curl

sudo apt-get install -y build-essential autoconf zlib1g zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline6 libreadline6-dev libreadline-dev libncurses5-dev libffi-dev checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate

curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p353.tar.gz | tar xz

cd ruby-2.0.0-p353

./configure --disable-install-rdoc

make

sudo make install

sudo gem install bundler --no-ri --no-rdoc

2013年10月19日土曜日

joruriGWをubuntu+ruby2.0+nginx+unicornで動かす

Ruby on Rails上で動くOSSのグループウェア,joruriGwをubuntu上で動かす手順を説明します。当然のことですが,joruriGwは,ubuntu上でも動きます。

joruriGwについては,公式ページ(http://joruri.org/)を参照してください。

このポストは,joruriGwに付属してたCentOS用のinstallマニュアルをubuntu用に書き換えたものです。

環境

OS:ubuntu 12.04.03 LTS
webサーバ:nginx
ruby:ruby 2.0.0p247
アプリサーバ:unicorn
DB:mysql
jorurigwのパス:home/joruri/jorurigw

ライブラリのインストール


sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate libxslt1.1 libxslt1-dev libxml2-dev libyaml-dev libjpeg-dev libpng12-dev librsvg2-dev libgs-dev imagemagick libmagick++-dev libcurl4-openssl-dev nkf libldap2-dev libsasl2-dev shared-mime-info libevent libevent-dev

rubyのinstall


mkdir /tmp/ruby && cd /tmp/ruby curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz cd ruby-2.0.0-p247
./configure
make
sudo make install

bundlerのインストール


sudo gem install bundler --no-ri --no-rdoc

RubyGemsを更新


sudo gem update –system

joruri実行ユーザをOSに作成

joruriユーザではログインできないようにする。操作は,sudo -u joruri -H で行う。(gitlabのインストールマニュアルのマネ)


sudo adduser --disabled-login --gecos 'Joruri' joruri
cd /home/joruri

memcachedのinstall


sudo apt-get install memcached

mysqlサーバのインストールとユーザの作成


sudo apt-get install mysql-server

インストール中にrootのパスワードを設定する。

ついでに,rubyのライブラリmysql2 (0.3.11) のインストールに必要なパッケージもインストールしておく。


sudo apt-get install libmysqlclient-dev

続いて,joruriGwが使うmysqlのユーザを作成する。とりあえずここでは,ユーザ:joruri password:passwordとする(←ちゃんと変えてください。)


mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO joruri@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit

nginxのインストール


sudo apt-get install nginx

nginxの設定

新しく書くのはめんどいし,ミスりがちなので,gitlabのnginx用の設定ファイルを修正して使う。


sudo nano /etc/nginx/sites-available/jorurigw

jorurigwに,gitlabのnginx用の設定ファイル(lib/support/nginx/gitlab)をコピーして修正して保存。

sites-available/に作った設定ファイルのリンクを,sites-enable/に貼る。


sudo ln /etc/nginx/sites-available/jorurigw /etc/nginx/sites-enable/jorurigw

joruriGWのダウンロードと展開


cd /home/joruri
sudo -u joruri -H wget http://joruri.org/download/jorurigw/jorurigw-2.1.1.tar.gz
sudo -u joruri -H tar xvzf jorurigw-2.1.1.tar.gz

joruriGwのコードは,/home/joruri/jorurigwに展開。

joruriGWの設定

ユーザjoruriが,jorurigwの下のlog/とtmp/にアクセスできるようにパーミッションを修正。


cd /home/joruri/jorurigw
sudo -u joruri -H mkdir tmp
sudo chown -R joruri log/
sudo chown -R joruri tmp/
sudo chmod -R u+rwX  log/
sudo chmod -R u+rwX  tmp/

tmp/socketsとtmp//pidsにjoruriユーザがアクセス出来るようにパーミッションを設定


cd /home/joruri/jorurigw
sudo -u joruri -H mkdir tmp/pids/
sudo -u joruri -H mkdir tmp/sockets/
sudo chmod -R u+rwX  tmp/pids/
sudo chmod -R u+rwX  tmp/sockets/

gemファイルの設定

bundlerがunicornをインストールするように,gemファイルを修正する。

本来は,Gemfile.localを作成して,そこに書き込む方が良いのだが,joruriGwが配布するgemfileがgemfile.localを読み込む設定になっていないので,Gemfileに直接書き込む。

sudo -u joruri -H nano Gemfile

コメントアウトされている,gem 'unicorn'を有効にする。joruriGwの開発側は,unicorn上での動作も想定に入れているのかしら…

gemのインストール

joruriGwの動作に必要なrubyのライブラリをインストールします。


cd /home/joruri/jorurigw
bundle install

データベースの設定

注意点は,config/databases.ymlに,production以外にも,dev_jgw_gwとgwsubの設定も必要なこと。どうしてこうなっているのかはなぞ。

config/database.ymlの設定


production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: production_jgw_core
  pool: 5
username: joruri #←mysqlに設定したユーザ名に合わせる。 password: "password" #mysqlに設定したパスワードに合わせる。
host: localhost ========(中略)============= dev_jgw_gw: adapter: mysql2 encoding: utf8 reconnect: false database: <%= env_prefix %>_jgw_gw pool: 5 username: joruri #productionと同様に password: "password" #productionと同様に host: localhost socket: /var/lib/mysql/mysql.sock gwsub: adapter: mysql2 encoding: utf8 reconnect: false database: <%= env_prefix %>_jgw_gw_pref pool: 5
username: joruri #productionと同様に password: "joruri" #productionと同様に host: localhost socket: /var/lib/mysql/mysql.sock

セキュリティのために,database.ymlをjoruriユーザ以外が読めないようにする。


sudo -u joruri -H chmod o-rwx config/database.yml

データベースに初期データを作成する

joruriGwのインストールマニュアルは,development環境での設定方法を書いてあるので,気をつけてください。通常のrailsのアプリケーションと違って,rakeでDBの設定が出来ないので,sql文を手打ちします。

最初にデータベースを作成します。


mysql -u root -p -e "create database production_jgw_core"
mysql -u root -p -e "create database production_jgw_gw"
mysql -u root -p -e "create database production_jgw_gw_pref"
mysql -u root -p -e "create database production_jgw_bbs_000001"

続いて,テーブルを作成します。


mysql -u root -p production_jgw_core < ./db/development_jgw_core_schema.sql
mysql -u root -p production_jgw_gw < ./db/development_jgw_gw_schema.sql
mysql -u root -p production_jgw_gw_pref < ./db/development_jgw_gw_pref_schema.sql
mysql -u root -p production_jgw_bbs_000001 < ./db/development_jgw_bbs_000001_schema.sql

初期データを登録します。


mysql -u root -p production_jgw_core < ./db/development_jgw_core_init.sql
mysql -u root -p production_jgw_gw < ./db/development_jgw_gw_init.sql
mysql -u root -p production_jgw_gw_pref < ./db/development_jgw_gw_pref_init.sql
mysql -u root -p production_jgw_bbs_000001 < ./db/development_jgw_bbs_000001_init.sql

さらに環境設定のために次のSQL文を実行してください。


mysql -u root -p -e "UPDATE production_jgw_gw.gwbbs_controls SET dbname = 'production_jgw_bbs_000001' WHERE gwbbs_controls.id =1;"

joruri GWの起動


cd /home/joruri/jorurigw
bundle exec unicorn_rails -c config/unicorn.rb -E production -D

ブラウザでアクセスしてログイン画面が表示されればjoruriGwのインストールは成功です。初期設定では,admin/adminで管理者権限でログインできます。unicornを自動起動する方法は,http://mudanakaigi.blogspot.com/2013/10/unicorn_15.htmlを御覧ください。

httpsで動かす方法などは,気が向いたら別途書くかもです。今は,艦これのイベントで忙しいので,後回しにします。

2013年10月15日火曜日

unicornの自動起動スクリプト


追記 13/11/07

statusがうまく機能しないようです。すいません。


ubuntu12.04.03でunicornを使うrubyのアプリを自動起動するスクリプトです。
主にrailsで作ったアプリを想定しています。
参考にした本はこちら:Ruby on Rails環境構築ガイド

なお,unicorn自体の起動コマンドは,下記の通り。

$cd /path/to/rubyapp/
$bundle exec unicorn_rails -c config/unicorn.rb -E production -D


環境
アプリを起動するユーザ:test アプリのホーム:/home/test/rubyapp

最初に,空の起動スクリプトを作成。

sudo nano /etc/init.d/rubyapp



#! /bin/sh

### BEGIN INIT INFO
# Provides:          test  #作成者の名前
# Required-Start:    $local_fs $remote_fs $network $syslog 
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description:   #短い説明
# Description:       starts redmine ( a rails app ) using start-stop-daemon #説明
### END INIT INFO

USER=test  # rubyのアプリを実行するuser名を入れる。
APP_ROOT=/home/test/rubyapp
RAILS_ENV=production
PID_FILE=$APP_ROOT/tmp/pids/unicorn.pid  #unicorn.rbで指定した値を入れる。
CONFIG_FILE=$APP_ROOT/config/unicorn.rb  #unicorn.rbへのパスを入れる。
CMD="/usr/local/bin/bundle exec /usr/local/bin/unicorn_rails" 
# bundleとunicorn_railsへのバスは,whereisで調べられる。railsのアプリじゃない場合は,/usr/local/bin/unicornで良いのでは?
ARGS="-c $CONFIG_FILE -D -E $RAILS_ENV"
export PATH=/usr/local/bin:$PATH

case $1 in
  start)
    start-stop-daemon --start --chuid $USER --chdir $APP_ROOT \
      --exec $CMD -- $ARGS || true
    ;;
  stop)
    start-stop-daemon --stop --signal QUIT --pidfile $PID_FILE || true
    ;;
  restart|force-reload)
    start-stop-daemon --stop --signal USR2 --pidfile $PID_FILE || true
    ;;
  status)
    status_of_proc -p $PID_FILE "$CMD" redmine && exit 0 || exit $?
    ;;
  *)
  echo >&2 "Usage: $0 "
  exit 1
  ;;
esac

保存したら,次のコマンドでファイルのパーミションを変更する。
sudo chmod 755 /etc/init.d/rubyapp
これで,
service rubyapp start
:rubyappの起動
service rubyapp stop
:rubyappの停止
service rubyapp restart
:rubyappの再起動
service rubyapp status
:rubyappのステータス表示 ができるようになる。 サービスに追加してOSの起動時に,自動で起動するようにするには,下記のコマンドを実行。
sudo update-rc.d rubyapp defaults
これで,unicorn上でrubyのアプリの自動起動ができる。

2013年10月7日月曜日

2TB以上のHDDにubuntu12.04LTSをインストール(再び)

2TB以上のHDDでRAID1をくみ,その上で,lvmを使ってubuntu12.04をインストールするときの注意点。

参考にしたのは,さくらインターネットのこのページ。Ubuntu / Debian パーティション設定手順←というか,このページだけで充分。

やりたいこと: 2TB以上のHDD(実際に使ったのは3TBのHDD)2台で,raidを組んで,更に,lvmを構成してubuntuをインストール。

注意点:

  1. 2台のHDDの先頭に,それぞれ,1MBのReserved BIOS boot area(biosgrub)を設定する。
  2. /boot領域を,250MB以上,確保する。

手順:

  1. 2台のHDDの先頭に,1MBのReserved BIOS boot areaを取る。
    1. 2台とも取る。片方だけではダメ。
    2. HDD上の場所は,パーティションを切るときに,BeginningとEndから,Beginingを選択する。
  2. 2台のHDDの残りの領域を使って,raidエリアとしてパーティションを作成する。
  3. raid configurationで,raid1を作成する。
  4. 作成したraid1のエリアを,lvm用のphysical volumeに変える。
  5. lvm configurationで,lvm用のエリアにしたraid1の領域で,volume groupを作成する。
  6. volume group上に,3つのlogial volumeを作成。
    • logical volumeその1:/boot用 250MB以上。
    • logical volumeその2:/ 用 お好きにどうぞ。  
    • logical volumeその3:swap area メモリの2倍だったっけ?適当に。

あとは,インストーラの指示にしたがって,インストールをすすめる。 Reserved BIOS boot areaに気を取られて,/bootを作り忘れないようにしましょう。

gitlab6.1 on ubuntu12.04でメール通知を有効にする

gitlab6.1でメール通知を有効にする方法。

gitlab/config/environments/production.rbを編集する。

sudo nano -u git production.rbで編集。

  config.action_mailer.delivery_method = :sendmail
  # Defaults to:
  # # config.action_mailer.sendmail_settings = {
  # #   location: '/usr/sbin/sendmail',
  # #   arguments: '-i -t'
  # # }

コメントアウトされている,config.action_mailer.sendmail_settings以下を有効にすればよい。

locationは,sendmailの場所を書く。ubuntu上で使う場合には,/usr/sbin/sendmailのままで問題がない。

なお,ubuntuで,postfixをインストールした場合,sendmailの実態は,postfixになる模様。

$man sendmail

DESCRIPTION
       The Postfix sendmail(1) command implements the Postfix to Sendmail com‐
       patibility interface.  For the  sake  of  compatibility  with  existing
       applications,  some  Sendmail  command-line  options are recognized but
       silently ignored.

2013年9月17日火曜日

ubuntu server LTS 12.04.03にgitlabをインストールする

 

gitlab_logo

 

さぞかし難ししいかと思いきや,gitlabの公式のインストールドキュメントを参照すれば,ほぼ問題なくできた。

参照:gitlabのインストールドキュメント

詰まったてんは,「ubuntuに入っているgitのバージョンが古い」という点。

これは,このサイトを見て解決。

ubuntu12.04に最新のgitをインストールする方法

このとき,apt-add-repositoryを使ったppaの追加が必要になるが,これはdefaultのubuntuではできないので,下記のサイトを参照。

apt-add-repositoryを使えるようにする方法

ただ,mail回りの設定と,https接続がまだ手つかずなので,それは今後の課題ということで…。

2013年9月12日木曜日

ubuntuを2TB以上のHDDにインストールするときの注意

ubuntuを2TB以上のHDDにインストールするときには,HDDの先頭にReserved BIOS boot area(biosgrub)を確保ないと起動できない。大きさは1MB程度で良い模様。

ソフトウェアRAIDを組む場合には,各々のHDDの先頭に,biosgrubを確保しないとダメ。

インストール画面のパーティションを作るところで,HDDの先頭に1MBの領域を確保し,用途をReserved BIOS boot areaを選択しておく。

なお,2本のHDDで,ソフトウェアRAIDを使ってraid1を組む場合には,2本とも先頭領域にReserved BIOS boot areaを確保しておくこと。

Reserved BIOS boot areaは,選択時以外には,biosgrubと表示されるので注意すること。

仮想環境でインストールしてスクショを載せようと思ったのだが,2TB以上の仮想ディスクを用意しないと,biosgrubを設定する画面が出てこないことが発覚したので,載せないでおく。仮想環境でbiosgrubが出てこないからネット上に情報が少ないのだと思われる…。

あと,2TB以上のHDDにインストールするときは,boot flagをonにできない模様。boot flagが立たないのジャーといってムキにならずに,さらっと無視しましょう。

こちらのサイトを参考にさせていただきました。 Linux Mania RAIDボリュームからのブートとパーティション