やってみたlog

主にPC関連でやってみたことのlog

lubuntu12.04にapt-getでnode.jsを導入(ついでにnpmでexpressとcoffee-scriptも)

https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

基本はここのubuntuのとおり

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:chris-lea/node.js
$ sudo apt-get update
$ sudo apt-get install nodejs

これで、node.jsとnpmインストール完了、以下のコマンドで確認

$ node -v
v0.10.1
$ npm -v
1.2.15

表示できたらパスも通ってます。

次にexpressとcoffee-scriptをnpmで導入

$ sudo npm install -g express coffee-script

-gオプションによりシステム全体にインストールされます。 -gを指定したくない場合は、自分でパスを通す必要があるみたいです。

で、確認

$ coffee -v
CoffeeScript version 1.6.2
$ express --version
3.1.0

ちなみに、場所はここに入ってます。

$ which express
/usr/bin/express
$ which coffee
/usr/bin/coffee

HTMLのテンプレートエンジンとかも入れようかと思ったけど、たくさんありすぎてこれ!って決められないのでやめました。。

redmineをapache2とpassengerで動かす

redminerailsアプリなのでrailsを動かす環境を導入すればOK! ということで、apacheとその上でrailsアプリを動かすモジュールのpassengerの組み合わせでredmineを動作させます。

redmine2.1.4をruby1.9系でyumを使ってawsに入れる際の手順 の続きという前提になっています。

下準備
$sudo yum install -y gcc-c++ curl-devel zlib-devel httpd-devel

  • passengerのインストール
    $gem1.9 install passenger

$passenger-install-apache2-module
この時に足りないものがあった場合はさらに追加 こう表示されるはず なければ、yumってください。

 * GNU C++ compiler... found at /usr/bin/g++
 * Curl development headers with SSL support... found
 * OpenSSL development headers... found
 * Zlib development headers... found
 * Ruby development headers... found
 * OpenSSL support for Ruby... found
 * RubyGems... found
 * Rake... found at /home/ec2-user/bin/rake
 * rack... found
 * Apache 2... found at /usr/sbin/httpd
 * Apache 2 development headers... found at /usr/sbin/apxs
 * Apache Portable Runtime (APR) development headers... found at /usr/bin/apr-1-config
 * Apache Portable Runtime Utility (APU) development headers... found at /usr/bin/apu-1-config
  • 以下の内容が表示されているので、passenger用の設定ファイルを作成 $sudo vim /etc/httpd/conf.d/passenger.conf
   LoadModule passenger_module /home/ec2-user/.gem/ruby/1.9.1/gems/passenger-3.0.18/ext/apache2/mod_passenger.so
   PassengerRoot /home/ec2-user/.gem/ruby/1.9.1/gems/passenger-3.0.18
   PassengerRuby /usr/bin/ruby1.9

awsのユーザーネームをデフォルトにしている人はこれがそのまま表示されるはずです。 これは人によって代わる可能性があるので自分で確かめて作成してください。

  • /etc/httpd/conf/httpd.confの一番下に、VirtualHostの設定をコピペしてカスタマイズ
   
      ServerName 指定ドメイン.com
      # !!! Be sure to point DocumentRoot to 'public'!
      DocumentRoot /var/www/redmine-2.1.4/public
      
         # This relaxes Apache security settings.
         AllowOverride all
         # MultiViews must be turned off.
         Options -MultiViews
      
   

ServerNameにひもづいてるドメイン名を書く

確認する
$sudo /etc/init.d/httpd start

redmine2.1.4をruby1.9系でyumを使ってawsに入れる際の手順

awsにてawsのインスタンスを作る

下準備

  • まず、yumを最新にする
    $sudo yum -y update

  • ruby1.9系を入れる
    $sudo yum install -y ruby19

  • ruby1.9の開発キット
    $sudo yum install -y ruby19-devel

  • makeする際に必要(わからなくても入れる)
    $sudo yum install -y make

  • cのコンパイルに必要(rubyはcでできている)
    $sudo yum install -y gcc

  • 今回はデータベースにmysqlを使う(redmineが推奨しているため。postgresqlsqliteでも可)
    $sudo yum install -y mysql-server mysql-devel

  • mysqlサーバーを起動しておく
    $/etc/init.d/mysqld start

  • mysqlに入る
    $mysql -u root

  • mysqlのセットアップ
    create database redmine character set utf8;
    create user 'redmine'@'localhost' identified by 'my_password';
    grant all privileges on redmine.* to 'redmine'@'localhost';

ダウンロード作業

http://rubyforge.org/frs/?group_id=1850
* 上記URLからredmineの最新版(今回は2.1.4)をダウンロード
$wget http://rubyforge.org/frs/download.php/76589/redmine-2.1.4.tar.gz

  • tarファイルを解凍
    $tar zxvf redmine-2.1.4.tar.gz

  • ディレクトリを移行
    $sudo mv redmine-2.1.4 /var/www/

インストール作業

  • redmine-2.1.4ディレクトリで作業するためにそちらに移動
    $cd /var/www/redmine-2.1.4

  • fedora17系のrailsのバグがあるためGemfileのgemが並んでるところに下記内容を追記
    $vim Gemfile
    gem "bigdecimal" , "~> 1.1.0"
    gem "minitest"
    なんでバグるのかわかんないですが、これやったら直ります。
    パッケージ多すぎて何が何に効いてるのか調べるのはまた今度

  • Redmineはgemの依存関係を管理するために Bundlerを使う(これ使わないと絶対バグる)
    $gem1.9 install bundler --no-rdoc --no-ri
    ドキュメントとか英語で読めないので、インストールしないために[--no-rdoc --no-ri]を入れる。
    docをインストールしてるとものすごく時間がかかるのでgemいれるときはやったほうがいいです。

  • redmineに必要なgemをbundle経由でダウンロード(いらないものはwithoutで設定する)
    $bundle install --without development test rmagick postgresql sqlite

  • rakeの指定先が古いrubyのままなので、1.9のほうに指定しなおす
    $vim /home/ec2-user/bin/rake
    1行目
    旧: #!/usr/bin/env ruby
    新: #!/usr/bin/env ruby1.9

  • DBの設定ファイルをコピー
    $cp config/database.yml.example config/database.yml

  • DB設定ファイルを編集
    $vim config/database.yml
    production:
    adapter: mysql2
    database: redmine
    host: localhost
    username: redmine
    password: my_password
    :の後にスペースをいれないとエラーになる

  • セッションストア秘密鍵
    $rake generate_secret_token

  • DB上にテーブルを作成
    $RAILS_ENV=production rake db:migrate

  • デフォルトデータをDBに登録
    $RAILS_ENV=production rake redmine:load_default_data
    言語選択が出たらjaと入力してエンター

確認 * WEBrickで起動してみる。
$ruby1.9 script/rails server webrick -e production

  • 3000のポートをあける awsにて操作のため省略

  • 確認する
    http://指定ドメイン:3000

redmineが写れば成功 WEBrickは開発確認用のwebサーバらしいので、実運用は別のwebサーバを使う予定
現在、apacheとpassengerで動かそうとしているが苦戦中

unknown escape sequence: '\216'

c言語でコンパイルした時に出たエラー

どうやら「表示」という日本語を含んだ行をコンパイルしようとすると出るエラーらしい。

unknown escape sequence: '\216'

ソースコード内の「表示」という文字を、「表\示」のように変更するとエラーがでななくなる。 でもなんででるんだろ。 ちゃんとしたunix互換環境下ならでないのかな。

環境 os:windows7 ide:netbeans コンパイラ:cgywinのgcc