Rubyでワンライナー

まずはPerlのプログラムから

先日、Railsを開発している若者と次のような会話があった。

若者:geditで正規表現を使って「^」を「,」で置換しようとしているのですが(数百行の文字列の行頭にコンマを挿入したいらしい)、うまくいかないんです。Hidemaruだとうまくいったはずなんですが。
私:たぶん、正規表現のHidemaruの独自拡張でできるかもしれないけど、普通はそれじゃ無理だよ。Rubyのワンライナーで置換しちゃえば。

そのことをふと今日思い出して、そもそもワンライナーという言葉とか知っているのかな、今時の若者は、とか思ってしまいました。

と同時に、そういう自分も以前のPerlが全盛の頃だったらワンライナーをよく使っていましたが、今ではほとんど記憶の墓場です(トホホホ)。なので復習がてら、まずはPerlのワンライナーを(思い出しながら)書いてみました。最初はワンライナーではちょっと見づらかったりするので、最初は複数行のスクリプトから。

正規表現的にはPerlでは下のような書き方で、$_という変数内の文字列を置換します($_は後述)。

s/^(.*)$/,\1/"

なので、次のような感じになるでしょうか。

while(<>){
    s/^(.*)$/,\1/;
    print;
}

簡単に説明します。

  1. while(<>)はコマンドラインのスクリプトファイルの後のファイル名をオープンして、文末まで1行ずつ処理する、Perl独自の書き方です。
  2. 1のループで、1行の内容は$_に入っています。
  3. $_ =~ s/^(.*)$/,\1/;」で(Rubyで言うところの破壊的メソッド)置換ができますが、「$_ =~」を省略すると暗黙的に$_が対象になるので、書いてありません。
  4. printで引数を省略すると、$_が出力します。

コマンドラインで、仮にこのスクリプトがtest.plにあり、またtmp.txtに対象の文字列があり、置換後の文字列をtmpp.converted.txtに書き出すとすれば、次のようになるでしょう。

perl test.pl tmp.txt > tmpp.converted.txt

もちろん、これで十分かもしれませんが、Perlにはワンライナーを書くのに便利なオプションがあって、もっと簡潔に書けます。

Perlのコマンドオプション(ワンライナー関係)

  1. -eオプション
    -eオプションに与えられた文字列をスクリプトとして実行します。

    perl -e 'script'
    
  2. -nオプション
    -nオプションをつけると以下のループの内部にスクリプトがあるような動作をします。

     while(<>) {
       script;
       .....
     }
    

    次のように実行します。

    perl -ne 'script' filename
    
  3. -pオプション
    -pオプションをつけると以下のループの内部にスクリプトがあるような動作をします。

     while(<>) {
       script;
       ....
     }continue{
       print $_;
     }
    

    次のように実行します。

    perl -pe 'script' filename
    

    ちなみに、continueブロックはfor文の「for(A;B;C;)」のCにあたり、1回ループが回ったときに実行されるブロックです。

  4. -lオプション
    -lオプションは、n,pオプションと組み合わせて使い、ループの前で、$_をchomp(改行コードの削除)を実施します。

     while(<>) {
       chomp $_;
       script;
       ....
       print $_;
     }
    

    次のように実行します。

     perl -ple 'script' filename
    
  5. -aオプション
    -aオプションは入力された行をsplit(分割)して、@Fという配列にセットします。分割パターンは/\s+/です。

    perl -ane 'print $F[0],"\n"' filename
    
  6. -Fオプション
    -Fオプションは-aオプションで分割する分割パターンを指定します。

    perl -F'/\t/' -ane 'print $F[0],"\n"' filename
    
  7. -iオプション
    これは対象のファイルを破壊的に変えてしまって、元のファイルはバックアップとして保存します。
    -iオプションの後に文字列を指定して、その文字列が拡張子として加えられてバックアップファイルができます。

    perl -i".bak" -pe 's/したがって/従って/g' tmp.txt
    

    tmp.txtファイルに含まれる”したがって”という文字列を”従って”に置換え、オリジナルのファイルをtmp.txt.bakという名前にしてバックアップしてくれます。

オプションにはまだまだありますが、Perl のワンライナーについての個人的なメモあたりを参照ください。

さてさてこれらのオプションの中の「ipe」を使うと

perl -i".bak" -pe "s/^(.*)$/,\1/" tmpp.txt

これで、tmpp.txtの全ての行頭に「,」が挿入され、オリジナルのファイルはtmpp.txt.bakで保存されます。

Rubyだってワンライナーが当然できるだろう

そこで、Rubyでも当然ワンライナーを書けるだろうと思って調べたら、当然ありました。

というか、上記に出ているPerlのオプションはRubyでも同じだし「$_」も同じようなので、私には、覚えなおす必要もなくラッキーです!とすると、こんな感じでできちゃいます。
注意すべきは、ダブルクォーテーションの中に「\」があるので、これをエスケープしているところでしょうか。

それからPerlではs/A/B/の「s」が置換の意味になり、「$_ =~ s/A/B/;」の「=~」で正規表現のマッチングをさせますが、Rubyの場合はsubメソッドを使って置換することと、デフォルトが破壊的メソッドじゃないRubyでは「sub!」で「!」が必要なところあたり注意が必要ですね($_自体が変更されないとダメなので)。

ruby -i'.bak' -pe '$_.sub!(/^(.*)$/, ",\\1")' tmpp.txt

さあ、これで変換終了です。慣れれば、10秒ぐらいで作業が終了しますw

あれ、題名が「Ruby ワンライナー」と言いながら、Rubyのところがあまりにも少ない(>_<)!

終了。

JRubyがやってくる(やあ、やあ、やあ)

Windowsで、Jrubyを使って(Tomcatも)、Redmine(Rails)を動かす

JRubyが誕生してだいぶ経ちます。しかし、やがてRuby2にも対応した正式リリースが間近、ということもあり、さらに、RailsではなくJRuby on Railsを選ぶ理由とは?あなたがCRubyではなくJRubyを使うべき理由にもあるように、JRubyが、むしろ、いけているようなんです。

そこで、JRubyでRailsで有名なRedmineをWindowsにインストールしてみました。以下がそのメモ書きです。

Javaのインストール

今回はMacBook AirにParallelを使って、Windows8.1がインストールされているので、こちらにインストールしてみます。

※私のMacBookAir5,2スペック

項目
機種名 MacBook Air
機種ID MacBookAir5,2
プロセッサ名 Intel Core i7
プロセッサ速度 2 GHz
プロセッサの個数 1
コアの総数 2
二次キャッシュ(コア単位) 256 KB
三次キャッシュ 4 MB
メモリ 8 GB

ParallelのWindows8.1を立ち上げておき、そのIEでjdk-7u67-windows-x64.exeからダウンロードして、ファイルを実行します。Program Filesにインストールされるのがちょっと嫌なので、

C:/jdk1.7.0_67/

にインストールさせました(もちろんデフォルトでもOK)。JAVA_HOMEとかの環境変数は設定されているので、これで終了。

MySQLのインストール

次に、Redmineで利用するDBをMySQLとすると、MySQL Community Server 5.6.20からダウンロードしてきて、実行します。すべてデフォルでインストールしても大丈夫だと思います。

ただ、最後にrootのパスワードを聞いていきますので、しっかり覚えておいて、後で書き込む必要があります。もしくは、ユーザーaddできるので、addした場合はユーザー名とパスワードを覚えておいてください。

Tomcatのインストール

Tomcatもインストールします。32-bit/64-bit Windows Service Installer (pgp, md5)をダウンロードして、実行します。これもまたデフォルトでOKですが、私は

C:\Tomcat 8.0

にインストールしました(そこだけデフォルトにあらず)。

JRubyのインストール

次に、Jrubyをインストールします。JRuby 1.7.13 Windows Executable (x64) (md5, sha1)からファイルをダウンロードして、実行します。これもデフォルトでOKでしょう。

試しに、Dosプロンプトで

C:\Users\chikkun>jruby -v
jruby 1.7.13 (1.9.3p392) 2014-06-24 43f133c on Java HotSpot(TM) 64-Bit Server VM
1.7.0_67-b01 [Windows 8.1-amd64]

とバージョンが出れば、完了。

Redmineのダウンロード

次はRedmineのダウンロード。redmine-2.5.2.tar.gzからダウンロードしたファイルを解凍させます。どこでもOKですが、とりあえずできたディレクトリーを

c:\redmine-2.5.2

に移動させます。

Railsに必要なもののインストール

そして、コマンドプロンプトで次のようなコマンドを1つ1つ実行していきます。

cd c:\redmine-2.5.2
jruby -S gem install rails
jruby -S gem install jruby-openssl
jruby -S gem install activerecord-jdbcmysql-adapter
# jruby -S gem install activerecord-jdbcpostgresql-adapter#必要に応じて
jruby -S gem install warbler

若干時間がかかりますが、気長に待ちましょう。

インストールが終わったら

c:\redmine-2.5.2\config\database.yml.example

c:\redmine-2.5.2\config\database.yml

としてコピーし、次のように書き換えます。MySQLのインストールの最後で設定したrootのパスワード、もしくは、ユーザーをaddしたのであれば、そのユーザー名とパスワードにします(下の例はrootです)。

production:
adapter: mysql2
database: redmine
host: localhost
username: root
password: "*****"
encoding: utf8

development:
adapter: mysql2
database: redmine_development
host: localhost
username: root
password: "*****"
encoding: utf8

test:
adapter: mysql2
database: redmine_test
host: localhost
username: root
password: "*****"
encoding: utf8

そして、以下のコマンドを、やはり、DOSプロンプトで実行します。カレントディレクトリは「c:\redmine-2.5.2」です。

jruby -S bundle install --without test development
jruby -S rake db:create RAILS_ENV=production
jruby -S rake db:migrate RAILS_ENV=production
jruby -S bundle exec rake generate_secret_token
Prepending `bundle exec` to your command may solve this.

が出たらGemfileのrakeのバージョンを上げて

jruby -S bundle update rake

とすると良いかもしれません(今回は出ませんでしたが、以前やったときは出ました)。

warble config

そうすると、以下のようなファイルが作成されています。

c:\redmine-2.5.2\config\warble.rb

この中身はすべてコメントアウトされていますが、以下をコメントをはずして、少々書き換えます。

config.gems += ["activerecord-jdbcmysql-adapter", "jruby-openssl", "i18n", "rack"]
config.webxml.rails.env = 'production'
config.webxml.jruby.compat.version = "1.9"

あとは、warファイルを以下のようにして作成するだけです。

warble

DOSプロンプトで実行すれば、

redmine-2.5.2.war

が作成されますが、これを

redmine.war

にリネームします。そして、これをTomcatをインストールした

C:\Tomcat 8.0\webapps

にコピーします。そしてデスクトップのタスクトレイにある、下の図の左下に見える三角印のアイコンを右クリックして、Stop→Startを行ってください(Tomcatの再起動)。

tomcat_icon

そしてブラウザで下のURL

http://localhost:8080/redmine/

にアクセスして、次の画面が見えたら、無事インストール終了です。
redmine

Ruby On Rails4 の開発を始められるまで その1

Ruby On Rails4 の開発を始められるまで その1

posted at 2014/01/14 by chikkun@コワーキングスペース町田

Ruby On Rails4の基本を、自分のメモも兼ねて、3回シリーズでご報告します。

今日はその第1回目(2回目はdeviseを使った認証機能の追加。3回目はRspecやCucumberを利用したテストの予定です)。

Railsを使って開発する直前までをまとめます。ただ一応、環境と目標とするのは以下のようです。OSの違いや、仮に同じOSでも微妙にバージョンで違ったりする場合もあるのでご注意下さい。

  1. OSはCentOS6.5とする(MarvericksにParallelsを利用して、SDカードにインストールしたもの—ほとんど何もインストールされていない)。
  2. アプリ名は「comachi」。
  3. Apache2+Passengerを利用し、標準で付いているWEBrickは利用しない。
  4. Railsは4とする。
  5. DBはPostgreSQLを利用する。
  6. 外見はTwitter Bootstrapを使用する。
rbenvのインストール

CentOS6ですとRubyが2系ではないので、まずはRuby2をインストールします。というのもRails4はRuby2を推奨しているからです。

ただ今後1.9等も必要になることが予想されるので、便利なrbenvを使ってRubyのバージョンを変えられるようにします。ただrbenvをインストールする前に、RubyやPassenger等で必要になりそうなものを事前にyumでインストールします。

$ yum -y install  yum-plugin-priorities zlib zlib-devel readline readline-devel openssl openssl-devel libxml2 libxml2-devel libxslt libxslt-devel httpd httpd-devel curl-devel bison gcc gcc-c++ git emacs
  • ※↑は1行です。
  • ※最後のemacsは、好みでvimなどでもw
  • ※上記のいくつかは、gitやapache、Passengerのインストールに必要なもの等も入っています。Passengerの場合は必要なものをインストール時に教えてくれるので、仮に足らなくても大丈夫です。
  • ※CentOSのバージョンによっては「–enablerepo=remi,epel」オプションを入れる必要があるかもしれません(6.5では必要はありませんでした)。

これで準備が出来たので、早速rbenvのインストールです。

# 必要に応じてsuなりsudoをして下さい
$ cd /usr/local
$ git clone git://github.com/sstephenson/rbenv.git rbenv
$ groupadd rbenv
$ chgrp -R rbenv rbenv
$ chmod -R g+rwxXs rbenv
$ cd rbenv
$ mkdir plugins
$ cd plugins
$ git clone git://github.com/sstephenson/ruby-build.git ruby-build
$ chgrp -R rbenv ruby-build
$ chmod -R g+rwxs ruby-build
環境変数の設定

rbenvのインストールは終わりましたが、環境変数を設定しないと使えません。

そこで環境変数を/etc/profileに設定します(「/etc/profile」を直接編集したくない場合は「/etc/profile.d/rbenv.sh」等に書くのも手です)。

$ emacs /etc/profile #viでも

で、一番下に以下のように環境変数を設定します。

export RBENV_ROOT="/usr/local/rbenv"
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"

これを書き込んで、それら環境変数を読み込みます。

$ source /etc/profile
Autoconfのバージョンアップ

最新のRuby2.2-devのインストールでは、autoconfのバージョンが低いと怒られるので、m4とAutoconfの上書きバージョンアップを行います。

$ wget ftp://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz
$ tar xvzf m4-1.4.17.tar.gz
$ cd m4-1.4.17
$ ./configure --prefix=/usr
$ make
$ make install
$ cd ..
$ wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
$ tar xvzf autoconf-2.69.tar.gz
$ cd autoconf-2.69
$ ./configure --prefix=/usr
$ make
$ make install
インストール可能なRubyの確認

インストール可能なRubyのパッケージを確認する。

$ rbenv install -l
...
  1.9.3-rc1
  2.0.0-dev
  2.0.0-p0
  2.0.0-p195
  2.0.0-p247
  2.0.0-p353
  2.0.0-preview1
  2.0.0-preview2
  2.0.0-rc1
  2.0.0-rc2
  2.1.0
  2.1.0-dev
  2.1.0-preview1
  2.1.0-preview2
  2.1.0-rc1
  2.2.0-dev
...

バージョンはお好みで。とりあえずここでは「2.2.0-dev」をインストールします。

$ rbenv install 2.2.0-dev #時間はそこそこかかります
$ rbenv rehash # これをやる必要があります
$ rbenv global 2.2.0-dev
インストールできたか確認
$ ruby -v
ruby 2.2.0dev (2014-01-12 trunk 44563) [x86_64-linux]

OKのようですw

PostgreSQLのインストール

yum.postgresql.orgに行って「pgdg-centos93-9.3-1.noarch.rpm」を持ってきて、rpmを実行します。

wget http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm
rpm -ivh pgdg-centos93-9.3-1.noarch.rpm

すなわち、wgetでダウンロードし、rpmでrepositoryのファイルをインストールします。そして次にyumでPostgreSQLをインストールします。

yum install -y postgresql93-server postgresql93-devel postgresql93-contrib

次にお決まりの「initdb」をし、サーバーを立ち上げます。またOSを再起動しても自動で立ち上げるためにchkconfigし、ついでにapacheも自動起動するようにします。

さらに、postgresユーザのパスワードを作成し、新しいユーザ(chikkun)、データベース(comachi)を作成します。

$ /etc/init.d/postgresql-9.3 initdb
$ /etc/init.d/postgresql-9.3 start
$ chkconfig --level 345 postgresql-9.3 on
$ chkconfig --level 345 httpd on
$ su postgres
$ psql
% alter role postgres with password 'hogehoge'; #postgresユーザにパスワードを設定
% \q
$ createuser -P -s chikkun
Enter password for new role: 
Enter it again:
createdb comachi
$ exit

それから、/var/lib/pgsql/9.3/data/pg_hba.confを少々書き換えます。

local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

のpeer、identをmd5にします。

local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

そして再起動。

/etc/init.d/postgresql-9.3 restart

たぶん、PostgreSQLのRuby用のモジュールでインストールで失敗するので、先にオプションを付けて、インストールしていまいます。

gem install pg -- --with-pg_config=/usr/pgsql-9.3/bin/pg_config
  • ※上の「–」が余計に見えますが、これがないと「そんなオプションはないよ」と言われます(というか、言われ続けました・涙)。
Railsのインストール

さてさて、何はなくともRailsをインストールします。

$ gem install rails
$ rbenv rehash
$ rails -v
Rails 4.0.2

どうやら大丈夫そう。

passengerのインストール

次に、gemを使ってpassengerをインストールします。

gem install passenger
passenger-install-apache2-module

先回りして、必要なものをインストールしているので全く同じ環境ならば大丈夫ですが、環境が違っていたりすると、足らないものが出たりします。

しかし、そのような場合は、以下のようなメッセージで、必要なもののリストをyumコマンド付きで教えてくれるので、インストールしたら再度「passenger-install-apache2-module」を実行します。

Installation instructions for required software

 * To install C++ compiler:
   Please install it with yum install gcc-c++

無事コンパイルが始まって、終了すると以下のようなメッセージが出ます。このうち、最初の頃のLoadModuleの部分と、最後の辺りにあるVirtualHostの部分が必要になります。

The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /usr/local/rbenv/versions/2.2.0-dev/lib/ruby/gems/2.2.0/gems/passenger-4.0.33/buildout/apache2/mod_passenger.so
   PassengerRoot /usr/local/rbenv/versions/2.2.0-dev/lib/ruby/gems/2.2.0/gems/passenger-4.0.33
   PassengerDefaultRuby /usr/local/rbenv/versions/2.2.0-dev/bin/ruby

After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!

Press ENTER to continue.


--------------------------------------------

Deploying a web application: an example

Suppose you have a web application in /somewhere. Add a virtual host to your
Apache configuration file and set its DocumentRoot to /somewhere/public:

   <VirtualHost *:80>
      ServerName www.yourhost.com
      # !!! Be sure to point DocumentRoot to 'public'!
      DocumentRoot /somewhere/public    
      <Directory /somewhere/public>
         # This relaxes Apache security settings.
         AllowOverride all
         # MultiViews must be turned off.
         Options -MultiViews
      </Directory>
   </VirtualHost>

And that's it! You may also want to check the Users Guide for security and
optimization tips, troubleshooting and other useful information:

  /usr/local/rbenv/versions/2.2.0-dev/lib/ruby/gems/2.2.0/gems/passenger-4.0.33/doc/Users guide Apache.html

http://www.modrails.com/documentation/Users%20guide%20Apache.html

Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)

https://www.phusionpassenger.com

Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.

すなわち

LoadModule passenger_module /usr/local/rbenv/versions/2.2.0-dev/lib/ruby/gems/2.2.0/gems/passenger-4.0.33/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rbenv/versions/2.2.0-dev/lib/ruby/gems/2.2.0/gems/passenger-4.0.33
PassengerDefaultRuby /usr/local/rbenv/versions/2.2.0-dev/bin/ruby

<VirtualHost *:80>
   ServerName www.yourhost.com
   # !!! Be sure to point DocumentRoot to 'public'!
   DocumentRoot /somewhere/public    
   <Directory /somewhere/public>
      # This relaxes Apache security settings.
      AllowOverride all
      # MultiViews must be turned off.
      Options -MultiViews
   </Directory>
</VirtualHost>

が必要になります。もっと具体的には、上のものはそのままhttpd.confにコピペ、下のものは自分の環境に合わせて書き換えた後にhttpd.comfに追記します。

実際には私の場合以下のようにしました。

<VirtualHost *:80>
    ServerAdmin hoge@fuga.com
    DocumentRoot /var/www/html/rails/comachi/public
    ServerName www.comachi.com
    ErrorLog logs/comachi.error_log
    CustomLog logs/comachi.access_log common
    RackEnv development
    <Directory /var/www/html/rails/comachi/public>
        Options -MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

という感じです。

  • ※実際にの「DocumentRoot」は違っていて、CentOS自体がSDカードに入っていて、そのSDカード自体にRailsアプリを置いてあるので、実際には/media/psf/UBUNTU/rails/publicで「UBUNTU」はSDカードのボリューム名です。

そこで、/etc/httpd/conf/httpd.confのLoadModuleを記載している最後に(今回の例では217行あたり)上記の3行を追加します。

そして、VirutualHostの設定はhttpd.confの最後に(ディストリビューションによっては別ファイルのことも)上記のを参考に追記します。

ここではrailsのアプリの場所が「/var/www/html/rails/comachi」としていますが、適宜置き換えて下さい。また、Rails的にはdevelopmentにしてあります。

もう1つ。SELinuxが悪さしてApacheが立ち上がらないので(というか必要なことなんでしょうが、開発ではいらないので)「/etc/selinux/config」を

SELINUX=disabled

とし、これは再起動後もdisabledにするものなので、コマンドラインでも

setenforce 0

として、現在も無効にします。そして

$ /etc/init.d/httpd restart

します。

最後にVirtualHostを使っているので、「/etc/hosts」の最初の行のローカルホストの部分に「www.comachi.com」を追記します。すなわち

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 www.comachi.com

さてさてあとは、railsのアプリを作成するだけです。

comachiアプリを作成

とりあえず今回のアプリ名を「comachi」と名付け、まずは何はなくともrailsコマンドのnewを実行します(comachiを作成する親ディレクトリにcdしてから)。

cd /var/www/html/rails
$ rails new comachi -d postgresql -T

※-Tはunit testを作成しないオプションで、Rspec等を使う場合には必要ないので付けました。

DBはsqliteがデフォルトなので、「-d postgresql」を付けてPostgreSQLを利用するようにします。ここで「Javascriptライブラリがない云々」とか怒られます。「therbyracer」を入れないとダメで、後で必要になるかもしれない「execjs」も含めて、GemFileに以下の2行を書き込みます。

gem 'therubyracer', platforms: :ruby
gem 'execjs'

そして

bundle install

を実行します。

外見はTwitter Bootstrap

Twitter Bootstrapを使ってデザインするので、Gemfileに以下を書き込みます(と思ったですが、後にこれは利用するBootstrapが2で、それ以外にgemなどで3が簡単に使えるようにならないか探したのですが、結局良さげなのがないのと「stackoverflow」であっさり、「ダウンロードしてvendor/assetに置くだけなんだから、自分でやれ」みたいなのを見て、全くその通りと思い、この方法をやめます)。

gem "twitter-bootstrap-rails"
gem "less-rails"

なので、↑はless-railsだけ残して、まずはBootstrapのダウンロードに行って、最新版をダウンロードして、解凍すると、

dist/
    css/
        bootstrap-theme.css
        bootstrap-theme.min.css
        bootstrap.css
        bootstrap.min.css ※
    fonts/
        glyphicons-halflings-regular.eot
        glyphicons-halflings-regular.svg
        glyphicons-halflings-regular.ttf
        glyphicons-halflings-regular.woff
    js/
        bootstrap.js
        bootstrap.min.js ※

というようなファイルが出てくるので、↑の※のファイルを(必要に応じて、追加します)

vendor/
    assets:
        javascripts/
            bootstrap.min.js
        stylesheets/
            bootstrap.min.css

というように、コピーします(vendorでなくても、「app/assets」でも大丈夫です)。
そして「app/assets/stylesheets/application.css」に

*= require bootstrap.min

を書き加えます。

また「app/assets/javascripts/application.js」に

//= require bootstrap.min

を書き込みます。

これで終了wtwitter-bootstrap-railsは使わないので、

gem "less-rails"

そして、以下を実行。

bundle install
最後にconfig/database.ymlの編集

データベースのinitdb で、作成したユーザやデータベース名に併せて、今回はdevelopment環境なので以下のように書き換えます。

development:
  adapter: postgresql
  encoding: utf8
  database: comachi
  pool: 5
  username: chikkun
  password: hogehoge

これで、ブラウザで http://www.comachi.com で次のような画面が見られたらOKです。

ok

これで開発が始められそうですw