Tag Archives: 리눅스

[Linux/Floating Point] Shell Script로 부동소수점 연산하기

리눅스 쉘스크립트 프로그래밍은 간단하면서도 매우 강력한 능력을 발휘하는 언어(?)입니다. 여기서 부동소수점 연산을 시도해 볼려고 하면 다음과 같은 문제들이 있습니다.

[code]> i=1+2
> echo $i
1+2[/code]
생각했던데로 나오지 않는군요. 하지만 쉘에서 사용할 수 있는 expr이라는 명령이 있습니다.

[code]> i=`expr 1 + 2`
> echo $i
3[/code]
여기서 expr을 사용할때 숫자와 연산자 사이에 공백이 들어간다는것을 유의합시다. 연산이 정상적으로 이루어짐을 알 수 있습니다.

[code]> i=`expr 1.2 + 2.5`
expr: non-numeric argument[/code]
하지만 부동소수점 연산이 안되는군요. 큰일입니다. 어떻게 방법이 없을까요.

[code]> i=`echo “1.2 + 2.5″|bc`
> echo $i
3.7[/code]
bc를 이용해서 해결해보았습니다.

[code]> i=`echo “1.22 2.51″|awk ‘{printf “%.2f”, $1 + $2}’`
> echo $i
3.73[/code]
이번엔 자체적으로 부동소수점 연산을 지원하는 awk를 이용하여 해결해 보았습니다. 출력포맷의 %.2f를 사용하여 소수점 이하 2번째 자리까지 사용하여 반올림 하도록 하였습니다.

[Redmine] 프로젝트 관리 시스템 레드마인 설치하기

사용자 삽입 이미지
중소규모 프로젝트를 운영중인 회사라면 Trac을 쓰는것을 추천한다는 글을 쓴적이 있습니다. 하지만 레드마인을 몇일 경험해본 결과 Trac과는 비교할 수 없을정도로 심플하고 강력하다는것을 느꼈습니다. 레드마인 역시 Trac에 견줄만큼 다양한 플러그인을 지원하고 꽤 괜찮은 한글화를 지원합니다. (단, 일감이라는 말이 조금 거슬리네요)

지금 부터 레드마인의 설치에 대해 알아보도록 합시다.

1. Ruby on Rails 설치

우선 시스템에 Ruby&Rails 프레임워크가 설치되어있어야 합니다.  해당 사이트에 방문하셔서 소스를 다운받아 설치하도록 합시다. 우선 Ruby부터 설치해 보겠습니다.

wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz
tar -zxvf ruby-1.8.7-p174.tar.gz
cd ruby-1.8.7-p174
./configure --prefix=/usr/local/ruby
make;make install

설치후에는 /usr/local/ruby/bin 위치를 PATH에 잡아주도록 합시다. 다음으로는 Rails 프레임워크를 설치할 것인데 RubyGem이라는것을 이용하면 정말 쉽게 설치할 수 있습니다.

ruby setup.rb
gem install rails

자 위와 같이 간단하게 Rails 프레임워크를 설치할 수 있었습니다. 잘 설치가 되었는지 테스트를 해봅니다.

ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]

2. Redmine (+MySQL) 설치

우선 RubyGem을 이용하여 MySQL 플러그인을 설치해 줍시다.

gem install mysql

이제 MySQL에 데이터베이스를 생성해 줍니다.

CREATE DATABASE redmine CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'password'

[이곳]에서 redmine을 다운받아 적절한 위치에 설치하도록 합니다.

tar -zxvf redmine-0.9.3.tar.gz
cd  redmine-0.9.3

config/database.yml.example 파일을 config/database.yml로 변경한 후 production 설정을 변경합니다.

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: password

이제 다음의 마이그레이션 명령을 수행하여 관리자 계정을 생성하도록 합니다.

rake generate_session_store
RAILS_ENV=production rake db:migrate

이제 기본설정을 데이터베이스에 로드하는 명령을 수행합니다. 언어를 물어볼 시 ko를 선택합니다.

RAILS_ENV=production rake redmine:load_default_data

다음의 디렉토리의 권한을 바꾸어 줍니다. 이때 아파치 웹서버의 쓰기 권한이 가능하도록 owner를 설정합니다.

chmod -R 755 files log tmp public/plugin_assets

3. 실행

다음과 같은 명령을 통해 바로 실행해 볼 수 있습니다. 포트는 기본적으로 3000이 사용됩니다.

ruby script/server webrick -e production

4. 아파치 연동

아파치 웹서버에 연동하는 방법은 여러가지가 있지만 심플한 방법으로는 Phusion Passenger를 사용하는 방법을 추천합니다. Proxy Balancer등을 사용하는 mongrel의 경우에는 아파치 버젼의 제약이 있지만 이건 자유롭게 사용할 수 있습니다. 사내 인트라넷 목적으로 사용하는 이상 부족함도 없고요. 다음과 같은 명령을 사용하여 설치하고 아파치에 연동시킬 수 있습니다.

gem install passenger
passenger-install-apache2-module

사용자 삽입 이미지
설치마지막엔 위와같은 메시지가 뜨는데 저기에 모든 설치방법에 대해 나와있습니다. 다음과 같이 아파치에 설정을 추가하도록 하겠습니다. /var/www/redmine 에 레드마인이 설치되어있다고 가정하겠습니다.

LoadModule passenger_module /usr/local/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.11
PassengerRuby /usr/local/ruby/bin/ruby

<VirtualHost *:80>
  ServerName redmine.theeye.pe.kr
  DocumentRoot /var/www/redmine
  <Directory /var/www/redmine>
    AllowOverride all
    Options -MultiViews
  </Directory>
</VirtualHost>

이제 웹브라우저를 이용하여 접속하셔서 레드마인을 즐기시면 됩니다^^