제 개인 서버에 Redmine 설치를 하였습니다.


Redmine은 프로젝트 관리/이슈 트래킹 툴입니다. 

Ruby on Rails 어플로 작고, 가볍습니다.

소규모 팀에서 사용가능하며, 사용법다 간단하며, 기본적인 문서화(위키)를 지원하며 여러개의 프로젝트 지원, 프로젝트마다 저장소 따로 지원 + 다양한 저장소 지원(CVS, SVN, Darcs, Mercurial, Git, Bzr …)

을 합니다.


redmine 설치 방법은 아래링크를 통해 보면 됩니다.

http://www.redmine.org/projects/redmine/wiki/RedmineInstall


Redmine를 설치하였으면 Nginx와 결합하여 사용하는 방법에 대해서 적었습니다.

Nginx + Mongrel cluster

일단은 Nginx 웹서버를 설치를 해야 합니다.

저의 개인 서버구성은 NGINX(Web server)+Ruby on Rails +MySQL(DB) 로 구성하였습니다.

개인적으로 웹서버로는 Apache httpd를 주로 많이 사용했기 때문에 Apache보다 가볍고 경량화된 웹서버인 Nginx를 사용하기엔 약간 멈칫했습니다.

일단 Nginx를 사용해보고 나니 환경설정이 apache보다 매우 쉽기 때문에 nginx를 주로 사용하게 되었습니다.

참조: http://wiki.dgoon.net/doku.php?id=config:installredmine 

Nginx의 8000번 포트를 열고, mongrel-cluster 를 7990~7999 까지 열어서 Redmine과 결합하는 설정을 하였습니다

일단 nginx와 mongrel을 설치합니다.

sudo apt-get install nginx

sudo apt-get install mongrel mongrel-cluster


redmine이 설치된 디렉터리에서,

mongrel_rails cluster::configure -e production -p 7990 -N 10 --user redmine --group redmine --log log -P log



위와 같이 config/mongrel_cluster.yml 환경설정 파일을 만듭니다.


mongrel_rails cluster::start


위와같이 mongrel cluster 를 시작시킵니다.. 7990 ~ 7999 까지 실행되니 이중 하나를 확인해보자. http://blahblah.net:7999 mongrel 이 각 포트에 제대로 떳다면, nginx 환경설정에서 mongrel cluster 부분을 설정해줍니다.

/etc/nginx/sites-available/default

에서 아래 부분을 추가합니다.



upstream mongrel {

    server 127.0.0.1:7990;

    server 127.0.0.1:7991;

    server 127.0.0.1:7992;

    server 127.0.0.1:7993;

    server 127.0.0.1:7994;

    server 127.0.0.1:7995;

    server 127.0.0.1:7996;

    server 127.0.0.1:7997;

    server 127.0.0.1:7998;

    server 127.0.0.1:7999;

}

server {

        listen          8000;

        server_name     redmine.blahblah.net;

        root /home/redmine/public;

        location / {

                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header  Host $http_host;
                proxy_redirect off;
                proxy_read_timeout 300;
                if (-f $request_filename/index.html) {
                    rewrite (.*) $1/index.html break;
                }
                if (-f $request_filename.html) {
                    rewrite (.*) $1.html break;
                }

                if (-f $request_filename.txt) {
                    rewrite (.*) $1.txt break;
                }
                proxy_pass http://mongrel/;
        }

}



설정파일을 수정했으면 nginx 데몬을 재시작합니다.  


sudo /etc/init.d/nginx restart


재시작후엔 http://redmine.blahblah:8000 으로 redmine 초기 화면이 나와야 합니다. 

Mongrel cluster의 시작/중지/재시작은 순서대로 아래와 같은 명령을 사용합니다.


mongrel_rails cluster::start

mongrel_rails cluster::stop

mongrel_rails cluster::restart



Ruby on Rails로 간단한 프로그램 만들어본 사람이면 Rails 사용법은 알기 때문에, Ruby on Rails 기반의 Redmine 운영이 쉬울것입니다.


Buy me a coffeeBuy me a coffee
오래간만에 Uniccard에서 유니크카드를 주문을 하려고 홈페이지에 들어갔다.
이 것이 바로 유니크카드

여기서 Ruby on Rails(RoR)을 처음 접하게 되었던 유니크카드 홈페이지에서 주문을 하려고 로그인을 하였다.
그런데 뭥미?

로그인이 안된다. -_-;;
여기는 오픈아이디(OpenID)로만 로그인 할수 있는데 로그인이 안되니 황당.
로그인을 하는데에 IDtail.com 사이트까지 잘 도착을 하여 로그인 패스워드를 치면 넘어가면서 유니크 카드에 들어가야 하는데 안들어가지더군요.
Ruby on Rails로 만들어진 유니크카드에서 로그인이 안된다는 것은 엄청나게 치명적인 것인데, 로그인이 안되니깐 거의 머리가 미칠정도였습니다. (유니크카드를 모두 소비해서 100장 주문하려고 했더니 이게 로그인 불가?)
RoR에서 사용하는 OpenID library 소개에서 문제가 있는지도 궁금하였음.
하지만 어찌어찌 하다 로그인은 하게 되었습니다.
아래 화면에 있는 사이트에 들어가야만 로그인이 됩니다.

제가 보았을때에는 RoR OpenID library에 뭔가 이상이 있는 것 같습니다.


제가 다른 아이디로 사용해보았는데 다른 아이디는 다 되더군요. 근데 특정 아이디가 로그인 안되는 문제점이 -_-;;

Ruby on Rails소스코드 내부의 문제 같은데 이거 구글링하니깐 이런 문제에 대한 글이 없더군요 ㅠㅠ

Buy me a coffeeBuy me a coffee
이번 제 5회 다음 DevDay에 RoR(ruby on Rails)를 이용하는 것으로 참여하려고 준비를 하고 있습니다.

오픈 API를 가지고 프로그래밍을 하려고 하니 Ruby에 대해서 공부를 하게 되면서 metaWeblog에 대해 공부를 하게 되었습니다.

metaWeblog란?
blogger의 단점을 보완하기 위해 Dave Winer 에 의해 2002년도에 만들어진 블로그를 다루기 위한 interface API입니다.
The MetaWeblog API is an application programming interface created by software developer Dave Winer that enables weblog entries to be written, edited, and deleted using web services.
- Wikipedia : metaWeblog

XML-RPC API들
  1. metaWeblog.newPost (blogid, username, password, struct, publish)  
  2. metaWeblog.editPost (postid, username, password, struct, publish)  
  3. metaWeblog.getPost (postid, username, password)  
  4. metaWeblog.newMediaObject (blogid, username, password, struct)  
  5. metaWeblog.getCategories (blogid, username, password)  
  6. metaWeblog.getRecentPosts (blogid, username, password, numberOfPosts) 
metaWeblog API를 가지고 블로그을 쓸수 있고 볼수 있고 수정을 할수 있다고 하는 SPEC입니다.
위의 API를 적용하여 프로그램을 만든 것이 Windows Live writer등이 있습니다.

위의 API를 가지고 Ruby로 tistory에 글을 올려 보게 하였습니다.
여기서는 BlogAPI가 필요합니다. BlogAPI에 대한 것은 [기타설정] BlogAPI 를 활용해봅시다를 참조하시면 됩니다.
사용자 삽입 이미지

관리자 메뉴에서 BlogAPI사용여부를 통해서 외부에서도 글을 쓸수있다.



티스토리 블로그 관리자 페이지에서 'BlogAPI 세팅주소' 와 ' BlogAPI Blog ID'를 얻을 수 있다.
티스토리에서 BlogAPI를 사용할 떄에 인자값으로 주는 username, password, blogid는 아래와 같이 사용하면 됩니다.
  1. username은 티스토리 관리자로 로그인할 때 사용하는 이메일 주소
  2. password는 티스토리 관리자로 로그인할 때 사용하는 비밀번호
  3. blogid는 ' BlogAPI Blog ID'
metaWeblog.newPost (blogid, username, password, struct, publish) 메소드를 이용해서 티스토리에 글을 올릴 수 있습니다.
newPost()에서 인자값으로 주는 것에 대한 설명입니다.
  1. blogid는 'BlogAPI Blog ID'
  2. username은 티스토리 관리자로 로그인할 때 사용하는 이메일 주소
  3. password는 티스토리 관리자로 로그인할 때 사용하는 비밀번호
  4. struct는 새로운 포스트를 작성할때의 구조체
  5. publish는 글을 작성할때 공개인지, 비공개인지를 확인해주는 인자값 (true, false)
metaWeblog.newPost()를 이용하여 ruby로 글을 올리는 테스트를 해보았습니다.

아래는 ruby code입니다.
require "xmlrpc/client"
api_address = '[자신의 BlogAPI 세팅 주소]'

server = XMLRPC::Client.new2(api_address)
post = {
"title" => "Ruby를 이용하여 Tistory에 글쓰기",
"categories"=> ["컴퓨터"],
"description" => "Ruby를 이용하여 Tistory에 글 쓰고 있습니다.<br/>
MetaWeblog라는 API를 가지고 Tistory에 글을 쓰고 올리니깐 재미가 있군요<br/>
이번에 제 5회 다음 DevDay에 신청을 한다고 Ruby를 가지고 Test를 하고 있습니다.<br/>
여성쿼터제가 있다는데 여성분 모아서 갈 수 있을 것 같기도 하고 아이디어가 시급 ㅠㅠ<br/>
Tistory를 활용한 API등을 생각을 하다 Flickr API를 사용할까 Daum API를 사용할까 고민중 @.@
<br/>2008.8.8<br/>
- Written by StudioEgo (성대현)",
}
server.call('metaWeblog.newPost','[BlogAPI ID]', '티스토리 로그인 메일주소','티스토리 로그인 비밀번호', post, true)

여기서 struct로 이용하는 post는 글을 올릴때 사용합니다.
title는 포스트에 넣을 제목
categories는 포스트에 넣을 카테고리, 본인이 만든 카테고리의 이름을 넣으면 됨. 없는 카테고리 쓰면 분류없음으로 나옵니다.
description 은 포스트에 넣을 본문입니다.

티스토리서 제공하는 metaWeblog API를 이용하여 Ruby 코드를 넣어보니 글 올라가는 것에 신기했지요.
그러나 비밀번호를 직접 넣어야 하는 것에 약간은 보안의 위험성이 있는 것 같습니다.
누가 패킷스니핑하여 티스토리 로그인 메일주소와 티스토리 로그인 비밀번호를 알아 내서 주인 몰래 글을 지우고등의 일이 일어날 가능성이 있지요.
이글루스에서는 비밀번호를 직접 넣지 않고 보안에 신경을 쓴 듯 API Key를 제공하여 암호 대신 사용하더군요.

Tistory관계자분게서는 암호를 직접 넣는 것 대신에 API Key를 사용하여 넣는 것이 보안에 좋을 듯한 생각을 해보았습니다.

metaWeblog로 사용하는 Windows Live Writer도 암호를 넣는 문제때문에 갑자기 쓰기가 껄끄러워지더군요.


Referrence
MetaWeblog API specification

ps. Ruby를 이용하여 블로그도 만들어보고 별에 별 기능들을 사용해보니, ruby에 대해서 전반적으로 모르고도 가독성이 좋아서 금방 배울 수 있어서 좋더군요. 제 5회 다음 DevDay에 붙었으면 하는 바람이 있습니다.
Buy me a coffeeBuy me a coffee

에이콘출판사 - 웹 개발 2.0 루비 온 레일스

웹 개발 2.0 루비 온 레일스
카테고리 컴퓨터/인터넷
지은이 황대산 (에이콘출판, 2007년)
상세보기

 예전에 루비가 대세라는 말이 뜨면서 작년인 2007년 12월 20일에 사본 책이다.

책에 있는 예제를 따라하면서 루비가 엄청 쉽구나를 알게 되었지만, 프레임워크(Framework)이라는 용어도 생소하고, MVC라는 용어도, Model, View, Controller[각주:1]의 역할에 대해 이해 못한채로 따라만 하고 덮은 책이였다.

Ruby라는 언어라는 것을 처음 알게 된 책이면서, 책을 열심히 보면서 Ruby란 언어가 예전에 써보았던 Perl의 강력한 정규표현식처리, Prolog의 함수형 프로그래밍언어의 내용, C++, JAVA에서 볼 수 있는 객체지향성을 통합시킨 것을 알게 되었다.

Perl을 써보면서 강력한 문자 처리에 감동하고 이번 학기 프로그래밍 과제하는데 Perl을 가지고 파일 옮기고 유사도 검사를 해보았던 생각을 해보면서 루비로도 해볼까라는 생각을 해보았다. Prolog와 같이 다른 함수를 정의하는 함수를 정의하는 함수를 작성하는 프로그래밍기법을 사용하여 다양한 종류의 함수 정의를 자동화 시키는 기법에 대해서도 신기하게 느꼈다.
(프로그래밍언어 시간에 Prolog로 과제 하다 함수정의하다 이해안되는 부분때문에 몇일동안 고생한 기억이 나서 Prolog에 대해서 기억이 안좋다만, Ruby를 다뤄보니 Prolog과 유사한 부분이 많아서 신기했음)

프로그래밍 언어인 Ruby의 문법을 보면서 일본사람이 정말 Ruby란 언어 잘만들었다는 생각이 들었다.

이분이 Ruby를 만드신 마츠모토 유키히로(松本 行弘, Yukihiro Matsumoto)

이번에 다시 루비언어를 다시 기억을 다시 되살린다고 책을 다시보게 되었다. (루비를 써봐야 하는 입장이 되어서 급하게 책을 펼쳐보았다.)

책에 있는 예제를 그대로 따라하는데에 오류가 생긴 것이다. ㅠㅠ

책에 있는 내용대로 따라해서 ruby 1.8.4를 설치한 다음에 rails를 gem으로 설치하는 것인데 gem으로 rails를 설치하면 책에서 설치하는 것 같은 rails-1.2.2가 설치되지 않고 rails-2.0으로 설치되는 것이다.
rails-2.0으로 설치가 되니 rails-1.2에서 없는 문제가 생겼다.

그것은 책에서 쓰는 scaffold가 rails-2.0에는 없다는 치명적인 에러이다.

그래서 책의 예제를 따라하기 위해서는 책에 있는 내용을 아래와같이 수정을 해야할 것 같다.

c:\> gem install rails --include-dependencies

현재 위에서 같이 쓰여진 책의 내용을 쓰면 rails-2.0이 깔려져서 책의 예제를 따라하기 어렵다. 책의 예제를 따라하기 위해서 (특히 scaffold 부분의 경우) 레일스 1.2.3을 다시 설치해야 한다.

c:\> gem uninstall rails
c:\> gem install rails --version '= 1.2.3' --include-dependencies

위의 설치명령어로 설치를 하면 책에 있는 예제가 잘 될 것이다.

책은 잘 써진 것 같은데 버전 문제가 껄끄럽긴 합니다. 책 쓸 당시에는 이렇게 바뀔줄은 몰랐기 때문이라고 생각됩니다.

Ruby on Rails를 프로그래밍을 해야할 상황인데 Ruby를 빠르게 배우고 싶다면 이 책을 추천하긴 한데 책의 내용을 약간 바뀌어서 내야 할것 같다.

아래는 Rails Framework에 대한 출판사의 설명이다.

[ 레일스 프레임워크에 대해 ]

레일스는 루비 프로그래밍 언어로 만들어진 웹 개발 프레임워크로 덴마크의 데이빗 해너마이어 한슨(David Heinemeier Hansson)에 의해 2004년 7월 처음 공개되었다. 지난 3년간 레일스는 전 세계적으로 빠르게 확산되어 왔으며, 현재까지 레일스로 구축된 B2C 사이트만도 수백여개에 이르고 있다.

레일스가 이처럼 빠른 성공을 거둘 수 있었던 데에는 몇 가지 이유가 있다. 첫째로 오늘날의 웹 개발은 너무나도 복잡해져서 수많은 개발자들이 웹 개발에 넌더리를 내고 있었다. 자바, PHP, .NET 등 개발 환경을 막론하고 많은 웹 개발자들은 뭔가 새로운 것을 시도해 볼 마음의 채비를 하고 있었다.

둘째로 레일스는 개발자의 생산성을 획기적으로 높여 준다. 레일스는 ORM(객체/관계 매핑, Object/Relational Mapping), 코드 생성(Code Generation), 메타프로그래밍 등 최신 프로그래밍 기법을 사용해 개발자가 코딩에 들이는 시간을 현저히 줄여주고 있다. 비슷한 코드를 계속해서 반복적으로 작성하는 일은 개발자의 사기를 떨어뜨리는 일이다. 레일스는 위에서 언급한 프로그래밍 기법을 활용하여, DRY(반복적인 코딩 작업은 피하시오, Don’t Repeat Yourself) 원칙을 적극적으로 장려하고 있다.

셋째로 레일스는 웹 2.0 애플리케이션의 개발에 최적화된 프레임워크이다. 레일스에는 Ajax와 웹 서비스 개발을 위한 컴포넌트가 포함되어 있어서 웹 2.0 서비스를 구축하는 작업을 매우 편리하게 해준다. 실제로 레일스에서는 Ajax 애플리케이션을 개발하기 위해 자바스크립트를 직접 코딩하는 일은 하지 않아도 된다.

마지막으로 레일스를 사용한 웹 개발은 즐겁다. 지금 이 글을 읽는 독자는 다소 회의적인 생각이 들지도 모르겠지만, 이는 레일스를 접해본 수많은 웹 개발자들의 공통된 반응이다. 이 책을 통해 독자 여러분이 레일스가 선사하는 즐거운 웹 개발의 세계를 발견하게 된다면 필자는 그보다 더 큰 보람이 없을 것 같다.
  1. MVC에 대해서는 소프트웨어공학시간에 나오는 개념이다. Model, View, Controller의 약자로서 애플리케이션 코드를 기능별로 분산하여 관리하는 프로그래밍을 말한다. 코드를 분산해서 관리하는 이유는 용도에 따라서 코드의 형태나 구성이 달라지기 때문이다. 결국 이렇게 코드를 나눠 작업함으로써 코드를 좀더 효율적으로 관리하게 되면서 프로그래밍 개발이 효율적으로 진행된다. 자세한 내용은 소프트웨어공학책에 나옵니다. (뇌이버 검색하면 MVC패턴에 대해서 나옵니다.) [본문으로]
Buy me a coffeeBuy me a coffee


다음 캘린더가 Ruby on rails로 만들었다는 소리를 듣고 나서 자료를 찾아보았다가 김대현이라는 분이 만들었다고 하더군요.
(참고로 제 이름은 성대현)
Ruby on Rails로 동영상/이미지 검색 만들기 - 김대현(루비 전문가, Daum 캘린더 개발자)
김대현(루비 전문가, Daum 캘린더 개발자)
저랑 이름이 비슷한 사람 발견해서 신기하였고, 이 분이 루비 전문가라는 것이 부러웠어요.

저도 열심히 하면 루비 전문가가 될까요?
요즘 하라는 공부는 하지 않고 루비 책을 보고 있는데 저도 저기에 들어갈 경지에 들아가고 싶군요. ㅎㅎ

결론. 미친듯이 공부하자.


'생각들' 카테고리의 다른 글

뉴라이트는 어디 소속인가?  (5) 2008.06.07
나는 기본기가 충실한가?  (0) 2008.05.26
커뮤니티와 그 적敵들  (0) 2008.05.16
아는 것과 알려주는 것  (0) 2008.05.03
취향테스트 결과  (0) 2008.02.28
Buy me a coffeeBuy me a coffee

Ruby On Rails Linux Setting Log

 이번에 학교 연구실 Linux서버에 Ruby on rails를 설치하게 되었다.

여기서는 Ruby on rails를 설치한 일대기를 기록해보기로 한다.

Linux는 Fedora Core 7을 사용하였다.

어떻게 설치를 하였나?

 황대산님이 쓰신 웹개발 2.0 루비 온 레일스 라는 책에서는 Windows와 MAC OS에서 설치하는 방법만 나와있어서 Linux에서 설치하려고 할때에는 어떻게 설치하는지 몰라서 홈페이지에서 찾아보았다.

이번에 Ruby, Ruby on rails 설치는 링크(http://www.dreamincode.net/forums/index.php?showtopic=30705&hl)를 참고로 설치를 하였다.

 

필요한 Fedora package설치

우선 설치하기 전에 httpd와 mysql은 기본적으로 깔려있어야 한다.

혹시나 모를까봐 httpd(웹서버)와 Mysql(DB-데이터베이스)가 설치가 되었는지를 확인해본다.

[root@localhost ~]# yum install httpd mysql-server mysql

깔려져있다는 것을 확인을 하였다.

[root@localhost ~]# yum install httpd mysql-server mysql
Setting up Install Process
Parsing package install arguments
Package httpd - 2.2.8-1.fc7.x86_64 is already installed.
Package mysql-server - 5.0.45-6.fc7.x86_64 is already installed.
Package mysql - 5.0.45-6.fc7.x86_64 is already installed.
Nothing to do
[root@localhost ~]#

readline 라이브러리가 이 Linux에 깔려있다는 것을 확인하였다.

[root@localhost ~]# yum install readline
Setting up Install Process
Parsing package install arguments
Package readline - 5.2-4.fc7.i386 is already installed.
Package readline - 5.2-4.fc7.x86_64 is already installed.
Nothing to do
[root@localhost ~]#

깔려 있다는 것을 확인하였다.

 

Ruby Package 설치

Ruby는 우선 Fedora core 7 배포판에 있는 것으로 사용하기로 하였다.

[root@localhost ~]# yum install ruby
fedora                    100% |=========================| 2.1 kB    00:00
macromedia                100% |=========================| 1.9 kB    00:00
updates                   100% |=========================| 2.3 kB    00:00
primary.sqlite.bz2        100% |=========================| 3.9 MB    01:59
adobe-linux-i386          100% |=========================|  951 B    00:00
Setting up Install Process
Parsing package install arguments
Package ruby - 1.8.6.114-1.fc7.x86_64 is already installed.
Nothing to do
[root@localhost ~]#

이미 설치가 되어 있다는 것을 확인하였다 -_-;; (언제 깔았는지는 나도 잘 모른다.  컴퓨터를 받은 3월초에 Ruby를 사용한답시고 설치했을듯 하다.)

 

그리고 나서 RubyGems(루비젬)을 설치해보자.

루비젬(RubyGems)은 루비의 각종 라이브러리를 자동으로 설치하고 관리해주는 패키지 관리 유틸리티로 레일즈 설치에 사용된다.

루비젬은 Fedora Core 7 배포판에서 받아 설치를 한다.

 [root@localhost rubygems-1.1.1]# yum install rubygems

설치하면 아래와 같이 다른 프로그램도 깔리게 된다. 이것도 깔아야 설치가 된다.

[root@localhost rubygems-1.1.1]# yum install rubygems
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package rubygems.noarch 0:0.9.4-1.fc7 set to be updated
--> Processing Dependency: ruby-rdoc for package: rubygems
--> Running transaction check
---> Package ruby-rdoc.x86_64 0:1.8.6.114-1.fc7 set to be updated
--> Processing Dependency: ruby-irb = 1.8.6.114-1.fc7 for package: ruby-rdoc
--> Running transaction check
---> Package ruby-irb.x86_64 0:1.8.6.114-1.fc7 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 rubygems                noarch     0.9.4-1.fc7      updates           498 k
Installing for dependencies:
 ruby-irb                x86_64     1.8.6.114-1.fc7  updates           274 k
 ruby-rdoc               x86_64     1.8.6.114-1.fc7  updates           342 k

Transaction Summary
=============================================================================
Install      3 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 1.1 M
Is this ok [y/N]:

y(yes)를 입력하고 나서 설치를 한다.

설치를 하면 아래와 같은 글자들이 나온다.

Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: ruby-irb                     ######################### [1/3]
  Installing: ruby-rdoc                    ######################### [2/3]
  Installing: rubygems                     ######################### [3/3]

Installed: rubygems.noarch 0:0.9.4-1.fc7
Dependency Installed: ruby-irb.x86_64 0:1.8.6.114-1.fc7 ruby-rdoc.x86_64 0:1.8.6.114-1.fc7
Complete!
[root@localhost ~]#

그리고는 Complete!라 나오면서 설치가 끝난다.

그리고 나서 나머지도 설치를 한다.

[root@localhost ~]# yum install install ruby ruby-devel ruby-irb ruby-libs ruby-rdoc ruby-ri rubygems

아래와 같이 설치가 된다.

[root@localhost lib]# yum install install ruby ruby-devel ruby-irb ruby-libs ruby-rdoc ruby-ri rubygems
fedora                    100% |=========================| 2.1 kB    00:00
macromedia                100% |=========================| 1.9 kB    00:00
updates                   100% |=========================| 2.3 kB    00:00
primary.sqlite.bz2        100% |=========================| 3.1 MB    00:15
adobe-linux-i386          100% |=========================|  951 B    00:00
Setting up Install Process
Parsing package install arguments
No package install available.
Package ruby - 1.8.6.114-1.fc7.x86_64 is already installed.
Package ruby-irb - 1.8.6.114-1.fc7.x86_64 is already installed.
Package ruby-libs - 1.8.6.114-1.fc7.x86_64 is already installed.
Package ruby-rdoc - 1.8.6.114-1.fc7.x86_64 is already installed.
Package rubygems - 0.9.4-1.fc7.noarch is already installed.
Resolving Dependencies
--> Running transaction check
---> Package ruby-libs.i386 0:1.8.6.114-1.fc7 set to be updated
---> Package ruby-devel.i386 0:1.8.6.114-1.fc7 set to be updated
---> Package ruby-ri.x86_64 0:1.8.6.114-1.fc7 set to be updated
---> Package ruby-devel.x86_64 0:1.8.6.114-1.fc7 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 ruby-devel              i386       1.8.6.114-1.fc7  updates           770 k
 ruby-devel              x86_64     1.8.6.114-1.fc7  updates           778 k
 ruby-ri                 x86_64     1.8.6.114-1.fc7  updates           2.0 M
Installing for dependencies:
 ruby-libs               i386       1.8.6.114-1.fc7  updates           1.7 M

Transaction Summary
=============================================================================
Install      4 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 5.2 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): ruby-devel-1.8.6.1 100% |=========================| 778 kB    00:06
(2/4): ruby-ri-1.8.6.114- 100% |=========================| 2.0 MB    00:05
(3/4): ruby-devel-1.8.6.1 100% |=========================| 770 kB    00:03
(4/4): ruby-libs-1.8.6.11 100% |=========================| 1.7 MB    00:05
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: ruby-libs                    ######################### [1/4]
  Installing: ruby-devel                   ######################### [2/4]
  Installing: ruby-ri                      ######################### [3/4]
  Installing: ruby-devel                   ######################### [4/4]

Installed: ruby-devel.i386 0:1.8.6.114-1.fc7 ruby-devel.x86_64 0:1.8.6.114-1.fc7 ruby-ri.x86_64 0:1.8.6.114-1.fc7
Dependency Installed: ruby-libs.i386 0:1.8.6.114-1.fc7
Complete!
[root@localhost lib]#

설치를 다 하였으면 아래 명령어로 rails를 설치하자.

[root@localhost ~]# gem install rails --include-dependencies

아래와 같이 설치가 된다.

[root@localhost ~]# gem install rails --include-dependencies
Bulk updating Gem source index for: http://gems.rubyforge.org
Successfully installed rails-2.0.2
Successfully installed rake-0.8.1
Successfully installed activesupport-2.0.2
Successfully installed activerecord-2.0.2
Successfully installed actionpack-2.0.2
Successfully installed actionmailer-2.0.2
Successfully installed activeresource-2.0.2
Installing ri documentation for rake-0.8.1...
Installing ri documentation for activesupport-2.0.2...
Installing ri documentation for activerecord-2.0.2...
Installing ri documentation for actionpack-2.0.2...
Installing ri documentation for actionmailer-2.0.2...
Installing ri documentation for activeresource-2.0.2...
Installing RDoc documentation for rake-0.8.1...
Installing RDoc documentation for activesupport-2.0.2...
Installing RDoc documentation for activerecord-2.0.2...
Installing RDoc documentation for actionpack-2.0.2...
Installing RDoc documentation for actionmailer-2.0.2...
Installing RDoc documentation for activeresource-2.0.2...
[root@localhost ~]#

rails를 설치를 하였으면 mongrel를 설치하기로 한다.

아래와 같이 명령어 쳐서 설치하면 된다.

[root@localhost ~]# gem install gem_plugin daemons capistrano --include-dependencies

[root@localhost ~]# gem install mongrel mongrel_cluster railsmachine --include-dependencies

아래와 같이 설치가 된다.

[root@localhost ~]# gem install gem_plugin daemons capistrano --include-dependencies
Successfully installed gem_plugin-0.2.3
Installing ri documentation for gem_plugin-0.2.3...
Installing RDoc documentation for gem_plugin-0.2.3...
Successfully installed daemons-1.0.10
Installing ri documentation for daemons-1.0.10...
While generating documentation for daemons-1.0.10
... MESSAGE:   Unhandled special: Special: type=33, text="All"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/daemons-1.0.10/ri --quiet lib README Releases TODO
(continuing with the rest of the installation)
Installing RDoc documentation for daemons-1.0.10...
Successfully installed capistrano-2.3.0
Successfully installed net-ssh-2.0.1
Successfully installed net-sftp-2.0.0
Successfully installed net-scp-1.0.0
Successfully installed net-ssh-gateway-1.0.0
Successfully installed highline-1.4.0
Installing ri documentation for capistrano-2.3.0...
While generating documentation for capistrano-2.3.0
... MESSAGE:   Unhandled special: Special: type=33, text="Notes"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/capistrano-2.3.0/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for net-ssh-2.0.1...
While generating documentation for net-ssh-2.0.1
... MESSAGE:   Unhandled special: Special: type=33, text="This"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/net-ssh-2.0.1/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for net-sftp-2.0.0...
While generating documentation for net-sftp-2.0.0
... MESSAGE:   Unhandled special: Special: type=33, text="Net::SFTP"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/net-sftp-2.0.0/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for net-scp-1.0.0...
While generating documentation for net-scp-1.0.0
... MESSAGE:   Unhandled special: Special: type=33, text="Provides"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/net-scp-1.0.0/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for net-ssh-gateway-1.0.0...
While generating documentation for net-ssh-gateway-1.0.0
... MESSAGE:   Unhandled special: Special: type=33, text="A"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/net-ssh-gateway-1.0.0/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for highline-1.4.0...
While generating documentation for highline-1.4.0
... MESSAGE:   Unhandled special: Special: type=33, text="A"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/highline-1.4.0/ri --title HighLine Documentation --main README --quiet lib README INSTALL TODO CHANGELOG LICENSE
(continuing with the rest of the installation)
Installing RDoc documentation for capistrano-2.3.0...
Installing RDoc documentation for net-ssh-2.0.1...
Installing RDoc documentation for net-sftp-2.0.0...
Installing RDoc documentation for net-scp-1.0.0...
Installing RDoc documentation for net-ssh-gateway-1.0.0...
Installing RDoc documentation for highline-1.4.0...
[root@localhost ~]#
[root@localhost ~]# gem install mongrel mongrel_cluster railsmachine --include-dependencies
Select which gem to install for your platform (x86_64-linux)
 1. mongrel 1.1.4 (ruby)
 2. mongrel 1.1.4 (java)
 3. mongrel 1.1.4 (x86-mswin32-60)
 4. mongrel 1.1.3 (java)
 5. mongrel 1.1.3 (i386-mswin32)
 6. mongrel 1.1.3 (ruby)
 7. Skip this gem
 8. Cancel installation
> 1
Select which gem to install for your platform (x86_64-linux)
 1. fastthread 1.0.1 (mswin32)
 2. fastthread 1.0.1 (ruby)
 3. fastthread 1.0.1 (i386-mswin32)
 4. Skip this gem
 5. Cancel installation
> 2
Building native extensions.  This could take a while...
Building native extensions.  This could take a while...
Successfully installed mongrel-1.1.4
Successfully installed fastthread-1.0.1
Successfully installed cgi_multipart_eof_fix-2.5.0
Installing ri documentation for mongrel-1.1.4...
Installing ri documentation for fastthread-1.0.1...

No definition for dummy_dump

No definition for dummy_dump

No definition for rb_queue_marshal_load

No definition for rb_queue_marshal_dump
Installing ri documentation for cgi_multipart_eof_fix-2.5.0...
Installing RDoc documentation for mongrel-1.1.4...
Installing RDoc documentation for fastthread-1.0.1...

No definition for dummy_dump

No definition for dummy_dump

No definition for rb_queue_marshal_load

No definition for rb_queue_marshal_dump
Installing RDoc documentation for cgi_multipart_eof_fix-2.5.0...
Successfully installed mongrel_cluster-1.0.5
Successfully installed railsmachine-1.0.0
[root@localhost ~]#

For the last install, it may ask which version you want, choose the latest ruby versions.

마지막 설치에서 어떤 버전을 원하는지를 물어보는데 나는 최신 Ruby 버전을 선택하였다.

Select which gem to install for your platform (x86_64-linux)
 1. mongrel 1.1.4 (ruby)
 2. mongrel 1.1.4 (java)
 3. mongrel 1.1.4 (x86-mswin32-60)
 4. mongrel 1.1.3 (java)
 5. mongrel 1.1.3 (i386-mswin32)
 6. mongrel 1.1.3 (ruby)
 7. Skip this gem
 8. Cancel installation
> 1
Select which gem to install for your platform (x86_64-linux)
 1. fastthread 1.0.1 (mswin32)
 2. fastthread 1.0.1 (ruby)
 3. fastthread 1.0.1 (i386-mswin32)
 4. Skip this gem
 5. Cancel installation
> 2

이유는 간단하다. 웹페이지에 쓰여져 있기 때문이다. 물어보는것도 Platform을 어떤 것으로 하는 가를 물어보기 때문에 선택할 것이 Ruby밖에 없었다. (Ruby 설치하는 법도 잘 모르므로 -_-;; 자세한 것은 고수님 Help~)

 

 

Mongrel 설정

root권한에서 설정을 하였다.

* Creating a mongrel user to run mongrel as: /usr/sbin/adduser -r mongrel
* Create mongrel conf directory: mkdir /etc/mongrel_cluster
* Symlink mongrel initscript
ln -s /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d/mongrel_cluster
* Make it executable chmod 755 /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster
* Add it to chkconfig chkconfig --add mongrel_cluster
* Enable it in chkconfig chkconfig mongrel_cluster on

여기서 중요한 점은 mongrel_cluster 버전이 뭔가에 따라 폴더이름이 다르다. 이 점을 유의해야 한다.

 

후기

설치는 링크(http://www.dreamincode.net/forums/index.php?showtopic=30705&hl)를 참고로 설치를 하였다.

나도 웹에서 보고 찾은 내용들을 한글로 정리하니까 뿌듯(?)까지는 아니지만 한글 Rails문서를 쓴다는 것에 보람을 느낀다.

말로만 듣던 Ruby on Rails를 나도 개발하게 되는 것인가? ㅎㅎ

 

이 글은 스프링노트에서 작성되었습니다.

Buy me a coffeeBuy me a coffee
요즘 잡지(마이크로소프트웨어)나 여러 기사들을 보면 Ruby란 것을 많이 듣게 됩니다.
제가 많이 쓰는 Me2day나  스프링노트, 스프링로그, 다음 캘린더 등등 여러 Web Application들이 Ruby on Rails를 이용하여 만들었다는 것을 알게 됩니다.

이런 추세를 보아할때 Ruby, Ruby on railsJAVA보다 더 많이 유행 할 것같은 예감도 듭니다.

실제로 Ruby on Rails관련 책을 읽어볼때마다, Perl같은 언어의 간결함에 놀라고, 코딩할때의 삽질이 많이 없다는 것에 놀랍니다. (그렇다고 Ruby에 익숙해지기 위해선 오랜 시간이 걸리긴 합니다.)
Perl이나 함수형언어인 Prolog를 처음 접해보았을때 당황했던 기억을 Ruby에서 경험한다는 말이죠. ㅎ

참고로 Ruby, Ruby on rails에 대해서 알아볼까요?
Ruby는 1995년 마츠모토 유키히로(松本行弘, Matsumoto Yukihiro) 가 소개한 OOP(객체지향프로그래밍 언어)입니다.
※ 국내에 번역된 책들을 보면 Ruby 창시자를 유키히로 마츠모토라고 하는데 영어를 무작정 번역하다 보니 이름-성을 부르는 것이다.
2001년도 데이브 토마스와 앤드류 헌트의 『Programming Ruby』출판을 계기로 전세계에 알려지기 시작하여 웹어플리케이션작성 언어로 많이 쓰여지는 것 같다.

Ruby는 Smalltalk, 함수형언어인 Lisp, Perl의 영향을 받았으며, C나 자바같은 언어에서 찾아볼수 없는 여러가지 강력한 기능을 제공한다.

Rails는 Ruby 프로그래밍 언어로 만들어진 웹 개발 프레임워크로 덴마크의 데이빗 해너마이어 한슨(David Heinemeier Hansson)에 의해 2004년 7월 처음 공개되었다.

다들 Ruby on rails라 하니 대세를 따라 Ruby on rails를 공부하게 되었습니다.
요즘 제가 보고 있는 Ruby on rails 책이다.
웹 개발 2.0 루비 온 레일스 상세보기
황대산 지음 | 에이콘출판 펴냄
즐겁고 빠른 웹 개발! 차세대 웹 개발 프레임워크 레일스와 함께! 루비 온 레일스 입문서. 이 책은 레일스 1.2를 중심으로 기초부터 활용까지 다양한 예제를 중심으로 설명한다. 레일스 개발에 필요한 각각의 메뉴와 블로그 애플리케이션 만들기 실전 예제 등을 담았다. 또한 책 뒤편에는 루비 주요 클래스 API와 레일스 명령어, 메소드 요약표를 함께 설명한다.


책을 보면서 Ruby on rails를 프로그래밍을 습득을 할수 있지만 웹사이트에서 15분간 투자를 하면 Ruby를 맛볼수 있는 사이트가 있는 것을 알았습니다.
http://tryruby.hobix.com/

http://tryruby.hobix.com 사이트 화면

http://tryruby.hobix.com/ 사이트 화면입니다. Ruby에 대해 15분만에 알수 있는 사이트라고 합니다.


위 사이트에서는 Ruby를 15분만 투자해보면 금방 배울수 있다고 하더군요.
한번 해보니까 책을 보고 타이핑하는 것보다 재미가 있습니다.
저는 Ruby의 세계에 빠져보아야 할듯 합니다. ㅎㅎ

'컴퓨터 > 프로그래밍' 카테고리의 다른 글

Android SDK 설치  (0) 2008.12.14
오랜만에 만져본 JAVA  (2) 2008.12.02
MVC Pattern  (1) 2008.07.21
내가 보아야 할 Ruby 관련 책들  (2) 2008.05.14
10.Raw Socket  (0) 2008.04.29
Buy me a coffeeBuy me a coffee

+ Recent posts