사용중인 iMac G5와 PowerBook G4를 포맷하면서 부가적인 어플리케이션 설치 과정을 까먹거나 빼먹는 경우가 종종 있었기에 메모 차원에서 작성되었습니다.
제가 기술한 내용들은 MacPorts (a.k.a. DarwinPorts) 또는 Fink를 사용하지 않고 Custom Build하기 위해서 입니다. 이러한 과정이 귀찮거나 지루하신 분들은 정목님의 Mac에서 Rails 개발환경 구축하기를 참고하시기 바라며, 설치 환경은 Mac OS 10.4 Tiger 기준으로 작성되었습니다.
참고한 사이트
A List Apart에서 System Developer로 활동중인 Dan Benjamin의 블로그, Apple Developer Center, PHPMac, Matías Giovannini, AFP548.com, TextDrive Weblog 등을 참고하였습니다.
어플리케이션과 라이브러리
아래의 목록과 설치에 대한 설명 순서는 절대적인 순서가 아닙니다. 중간에 부가적인 선택적인 어플리케이션이나 라이브러리가 있으므로, 자신의 환경에 맞게 설치하시면 됩니다.
Terminal 환경
처음 Mac OS X을 설치한 상태에서 Terminal을 실행하게 되면 기본적인 설정만 되어 있는 상태이므로, 아래의 경로의 .profile 파일을 열어 ANSI 컬러 사용과, Command Prompt, Path 지정을 위해 아래와 같이 코드를 추가 입력합니다.
vi ~/.profile
export LC_CTYPE=en_US.UTF-8
export TERM="xterm-color"
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad
PS1="\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] "
export PATH="/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
stty erase ^H
alias ls="ls -v"
한글을 사용할 수 있도록 .inputrc 파일을 생성합니다.
vi ~/.inputrc
set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
"\e[3~": delete-char
아래와 같이 명령어를 실행합니다.
source ~/.profile
bind -f ~/.inputrc
backspace 키와 forward delete 키가 올바르게 동작하도록 Terminal.app의 Keyboard 섹션에서 Delete key sends backspace 활성화하고 del (forward delete) 맵의 값을 아래와 같이 지정합니다.
\033[3~
기본적인 Shell 환경 설정이 끝났으면, 소스를 다운로드할 디렉토리를 생성해야 합니다.
sudo mkdir -p /usr/local/src
sudo chgrp admin /usr/local/src
sudo chmod -R 775 /usr/local/src
cd /usr/local/src
Xcode
소스를 빌드하고 컴파일하기 위해서 Xcode를 설치해야 합니다. Xcode는 ADC 회원이어야만 다운로드가 가능하므로 회원가입을 하고 받으면 됩니다.
cURL
이제 본격적인 설치에 들어가게 되겠습니다. 순서는 Download, Unzip, Configure, Compile, Install 순으로 진행하게 됩니다.
curl -O http://curl.haxx.se/download/curl-7.16.1.tar.gz
tar xzvf curl-7.16.1.tar.gz
cd curl-7.16.1
./configure --prefix=/usr
make
sudo make install
cd ..
Readline
Ruby 설치에 앞서서 어플리케이션 빌드를 서포트해주는 Readline Library를 설치해줍니다.
curl -O ftp://ftp.cwru.edu/pub/bash/readline-5.2.tar.gz
tar xzvf readline-5.2.tar.gz
cd readline-5.2
./configure --prefix=/usr/local
make
sudo make install
cd ..
Ruby
이제 루비를 설치할 차례입니다.
curl -O ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.6.tar.gz
tar xzvf ruby-1.8.6.tar.gz
cd ruby-1.8.6
./configure --prefix=/usr/local --enable-pthread --with-readline-dir=/usr/local
make
sudo make install
sudo make install-doc
cd ..
위의 과정을 거치게 되면 Mac OS X Tiger에 설치되어 있던 Ruby 1.8.2 (2004-12-25) 버전은 최신 버전으로 교체가 됩니다. ruby -v 커맨드로 버전을 확인할 수 있습니다.
$ ruby -v
ruby 1.8.6 (2007-03-13 patchlevel 0) [powerpc-darwin8.9.0]
RubyGems
RubyGems는 루비 패키지 설치를 관리하는 커맨드라인 툴입니다.
curl -O http://rubyforge.rubyuser.de/rubygems/rubygems-0.9.2.tgz
tar xzvf rubygems-0.9.2.tgz
cd rubygems-0.9.2
sudo /usr/local/bin/ruby setup.rb
cd ..
Ruby on Rails
RubyGems가 설치되었으면, 아래의 커맨드로 Rails를 설치합니다.
sudo gem install rails --include-dependencies
Mongrel
Mongrel은 빠르고, Stand-alone HTTPD 라이브러리이며 FastCGI, SCGI, LightTPD, Apache와 같은 루비를 위한 서버입니다. Rails 어플리케이션을 컴파일 과정없이 실행하도록 해줍니다.
sudo gem install mongrel --include-dependencies
Capistrano
Rails 어플리케이션의 Deployment를 자동화 시켜주는 어플리케이션입니다.
sudo gem install capistrano --include-dependencies
sudo gem install termios --include-dependencies
Ruby on Rails Test
여기까지 RoR 환경에 대한 커스텀 빌드가 끝났으면 마지막으로 테스트 단계를 해보겠습니다. 아래의 커맨드를 입력해서 Mongrel 서버를 시작합니다.
rails testapp
cd testapp
script/server
제대로 서버가 시작되었다면, 웹 브라우저에서 http://localhost:3000/를 입력하여 제대로 동작하는지 확인할 수 있습니다.
Expat
curl -O http://nchc.dl.sourceforge.net/sourceforge/expat/expat-2.0.0.tar.gz
tar xzvf expat-2.0.0.tar.gz
cd expat-2.0.0
./configure --prefix=/usr --mandir=/usr/share/man
make
sudo make install
cd ..
zlib
curl -O http://www.zlib.net/zlib-1.2.3.tar.gz
tar xzvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure --prefix=/usr --shared
make
sudo make install
cd ..
libpng
curl -O ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.16.tar.gz
tar xzvf libpng-1.2.16.tar.gz
cd libpng-1.2.16
cp scripts/makefile.darwin Makefile
vi Makefile
# Where the zlib library and include files are located
ZLIBLIB=/usr/local/lib
ZLIBINC=/usr/local/include
#ZLIBLIB=../zlib
#ZLIBINC=../zlib
make
sudo make install
export srcdir=.; ./test-pngtest.sh
cd ..
libjpeg
curl -O ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
tar xzvf jpegsrc.v6b.tar.gz
cd jpeg-6b
ln -s `which glibtool` ./libtool
export MACOSX_DEPLOYMENT_TARGET=10.4
./configure --enable-shared
make
sudo make install
cd ..
freetype2
curl -O http://download.savannah.gnu.org/releases/freetype/freetype-2.3.2.tar.gz
tar xzvf freetype-2.3.2.tar.gz
cd freetype-2.3.2
vi include/freetype/config/ftoption.h
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
./configure
make
sudo make install
cd ..
GD
sudo ln -s /usr/X11R6/include/fontconfig /usr/local/include
curl -O http://www.libgd.org/releases/gd-2.0.34.tar.gz
tar xzvf gd-2.0.34.tar.gz
cd gd-2.0.34
./configure
make
sudo make install
GD Test
./gdtest test/gdtest.png
./gdtestft /Library/Fonts/Zapfino.dfont
open test/*.jpg
cd ..
FastCGI (Optional)
curl -O http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure --prefix=/usr/local
make
sudo make install
cd ..
PCRE (Optional)
Intel 칩셋 맥을 사용중일 경우에만 CFLAGS=-O1 설정을 추가하고, PPC일 경우 설정하지 않습니다.
curl -O ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.0.tar.gz
tar xzvf pcre-7.0.tar.gz
cd pcre-7.0
./configure --prefix=/usr/local CFLAGS=-O1
make
sudo make install
cd ..
LightTPD (Optional)
curl -O http://www.lighttpd.net/assets/2007/2/4/lighttpd-1.5.0-r1605.tar.gz
tar xzvf lighttpd-1.5.0-r1605.tar.gz
cd lighttpd-1.5.0-r1605
./configure --prefix=/usr/local --with-pcre=/usr/local
make
sudo make install
cd ..
MySQL
아래의 패키지를 설치하고 난 뒤 Terminal에서 다음과 같이 커맨드를 입력해 줍니다.
unlink /usr/local/mysql
sudo mv /usr/local/mysql-5.0.37-osx10.4-* /usr/local/mysql
MySQL Native Bindings Gem (Optional)
MySQL/Rails에서 10-15% 퍼포먼스 향상될 수 있도록 해줍니다.
sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
PostgreSQL and PAM (Optional)
curl -O ftp://ftp.us.postgresql.org/pub/mirrors/postgresql/source/v8.2.3/postgresql-8.2.3.tar.gz
tar xzvf postgresql-8.2.3.tar.gz
cd postgresql-8.2.3
./configure \
--prefix=/usr/local/pgsql \
--enable-recode \
--enable-syslog \
--enable-unicode-conversion \
--enable-multibyte=UNICODE \
--with-bonjour \
--with-CXX \
--with-includes=/usr/local/include \
--with-libraries=/usr/local/lib \
--with-pam
make
sudo make install
cd ..
Apache2
curl -O http://apache.oc1.mirrors.redwire.net/httpd/httpd-2.2.4.tar.gz
tar xzvf httpd-2.2.4.tar.gz
cd httpd-2.2.4
./configure \
--prefix=/usr/local/apache2 \
--enable-rewrite \
--enable-proxy \
--enable-proxy-balancer \
--enable-proxy-http \
--enable-mods-shared=all
make
sudo make install
cd ..
Subversion (Optional)
오픈소스 Version Control System입니다.
curl -O http://subversion.tigris.org/downloads/subversion-1.4.3.tar.gz
tar xzvf subversion-1.4.3.tar.gz
cd subversion-1.4.3
./configure --prefix=/usr/local --with-openssl --with-ssl --with-zlib
make
sudo make install
cd ..
PHP
curl -O http://www.php.net/distributions/php-5.2.1.tar.gz
tar xzvf php-5.2.1.tar.gz
cd php-5.2.1
./configure \
--prefix=/usr \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--sysconfdir=/etc \
--enable-cgi \
--enable-cli \
--enable-dbx \
--enable-exif \
--enable-ftp \
--enable-mbstring \
--enable-sockets \
--enable-wddx \
--enable-xslt \
--enable-yp \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/etc \
--with-curl \
--with-expat \
--with-freetype \
--with-gd \
--with-iodbc \
--with-jpeg \
--with-kerberos \
--with-ldap \
--with-mysql \
--with-png \
--with-pgsql \
--with-openssl \
--with-xml \
--with-xmlrpc \
--with-zlib
make
sudo make install
cd ..
Python (Optional)
Packages for Universal Python 2.5.x, Mac OS X 10.3.9 and later
Recent Comments