항상 빌어먹을 맥이라고 부르지만, 맥북이 편한 것 중에 한가지는 개발 환경 세팅하는 것이 편하다는 장점일 듯합니다. 물론 리눅스(우분투) 만큼 편하지는 않지만, 각기의 장점이 있습니다. 

우부투는 설치가 편합니다. 항상 마법의 커맨드인 apt-get 을 이용해서 설치 할 수가 있습니다. 반면에 맥북계열은 이미 설치가 되어 있는 경우가 많습니다. 이번에 알아볼 php 도 역시 설치가 미리 되어 있습니다.

아파치를 구동시켰다는 가정하에

/etc/apache2/httpd.conf

파일을 오픈해서

#LoadModule php5_module        libexec/apache2/libphp5.so 



이부분을 찾아서 앞의 # 부분을 제거해주고 아파치를 리스타트 해주면 됩니다.

sudo /usr/sbin/apachectl restart



일반적인 리눅스(우분투) 와 조금 다르지요?

(sudo /etc/init.d/apache2 restart ) <--  이게 리눅스 방식입니다. 

이렇게만 해주면 바로 php 프로그래밍이 가능해집니다.

조금 추가를 하자면 MYSQL 설정을 해줘야 합니다. 기본적으로 OSX 에서는 리눅스와는 달리 mysql 소켓을 다른걸 쓰기 때문입니다. 

cd /etc
sudo cp php.ini.default php.ini
sudo chmod 666 php.ini
php.ini 를 쓸 수 있게 바꾸어 줍니다. 

그리고 php.ini 파일을 열어서 다음과 같이 수정해 줍니다. 

pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
  /var/mysql/mysql.sock 으로 되어 있는 부분을 지우고 /tmp/mysql.sock 으로 바꾸어 주면 됩니다. 

그리고 당연히 아파치는 리스타트 해주셔야 합니다.

 

sudo /usr/sbin/apachectl restart




별로 어려운 것도 아니지만 방법을 글로 남깁니다. 

'System Preference' 에서 다음 그림과 같이 '공유' 를 선택합니다. 



 그러면 나오는 화면에서 '인터넷 공유'를 켜줍니다. 

 
그러면 무엇을 선택할 것인지 나옵니다. 아이폰이나 아이패드를 연결해서 사용할 것이니까 공항(AirPort)로 설정해 줍니다. 이렇게만 설정해 주면 끝입니다.

아이폰이나 아이패드에서 무선 인터넷 고르는 부분을 가 보면 방금 설정해 준 무선 공유의 이름이 보입니다. 바로 선택해주고 연결해주면 바로 인터넷을 사용할 수 있습니다.


 
간단한 파일하고 설정만으로 매킨토시 컴퓨터에 SVN 서버를 설정할 수 있습니다. 

1. 저장소 만들기 
    
     mkdir /Users/crazia/svn 
     cd /Users/crazia/svn
     svnadmin create super_ultra

     chown -R www:www /Users/crazia/svn/*


svn 레파지토리가 될 디렉토리를 생성하고, svnadmin 을 이용해서 프로젝트를 생성합니다. 지금 보여지는 예제로는 super_ultra 가 되겠군요. 그리고 chown 을 이용해서 www:www 로 바꿔줍니다. 


2. 설정파일 만들기 
   
sudo emacs /etc/apache2/other/svn.conf 


 -- svn.conf -- 
   
 
    LoadModule dav_svn_module /usr/libexec/apache2/mod_dav_svn.so

     <Location /svn>
       DAV svn
       SVNParentPath /Users/crazia/svn

       AuthType Basic
       AuthName "Subversion repository"
       AuthUserFile /etc/apache2/svn-auth-file
       Require valid-user

     </Location>

자신이 즐겨 쓰는 에디터 (vi, nano, emacs) 로 svn.conf 를 정해진 위치에다가 생성합니다. 그리고 그 안에 들어가는 내용을 아래와 같이 정리합니다. 


3. svn 계정만들기 

  sudo htpasswd -cm /etc/apache2/svn-auth-file crazia

svn 계정에 쓰일 (여기서는 crazia) 패스워드를 입력합니다. 


4. 아파치 재시작 

sudo apachectl restart 


 만약 에러 발생시 

sudo emacs /usr/sbin/apachectl

apachectl 파일에서 

     ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"

 부분을  

     ULIMIT_MAX_FILES=""

 로 수정 하고 다시 아파치를 재시작합니다. 

  sudo apachectl restart 

 아파치 에서 에러가 발생하는 것을 알아보려면 
     
     tail -f /var/log/apache2/error_log

로 에러가 발생한 것을 알아본다. 







osx snow leopard (10.6) 에 mysql 64bit 5.5.8 버젼을 설치하는 방법을 설명합니다. 

빌어먹을 osx 스노우 레오파드 (snow leopard) 에는 mysql 도 제대로 설치가 되지 않습니다. 물론 이건  mysql 측에서 제대로 만들어 줘야 하는 문제인거 같기는 하지만 짜증나는건 마찬가지입니다. 
   

위 사이트에서 "Mac OS X ver. 10.6 (X86 , 64-bit), DMG Archive" 를 받아서 설치해 줍니다. 그리고 
  
mysql -uroot 

 하면 아무일도 안 일어날 것입니다. 그래서 조금의 삽질 끝에 설치하는 법을 알아냈습니다. 

    * 참조 사이트 를 참조했습니다. 


   1. ~/.bash_profile 파일을 에디터로 열어서 다음과 같이 추가한다.     

      export PATH=/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH

   2. 그리고 .bash_profile 파일을 다시 인식시킨다.  Terminal 콘솔 창에서 다음과 같은 명령을 실행한다. 

      source ~/.bash_profile

   3. 제대로 설정됐는지 확인해본다 역시 터미널 창에서 
      
      echo $PATH

      /usr/local/bin 이 앞에 출력되면 된다. 

   4. 다음 파일을 다운 받는다. 

      com.mysql.mysqld.plist (내 블로그에 링크되어 있다)
      
      아니면 

      curl -O http://hivelogic.com/downloads/com.mysql.mysqld.plist

      로 다운 받는다. 

   5. 데몬 관리 부분에 넣어두고 owner 를 루트로 바꾸어 준다. 

      sudo cp com.mysql.mysqld.plist /Library/LaunchDaemons/
     sudo chown root /Library/LaunchDaemons/com.mysql.mysqld.plist

   6. 띄우기 (스크립트로 만들어 두면 좋습니다) 역시 터미널 창입니다. 

      sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist

      테스트를 해보기로 합니다. 

      mysql -uroot 

      ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

      이런식으로 나오면 곤란합니다. 

      - /tmp/mysql.sock 에러 발생 해결하기 
100% 권한 (Permission) 문제입니다. 

sudo chown user_id /tmp/mysql.sock 

해주면 됩니다. (user_id 는 자기 아이디)
   

   7. 중지 시키기 
      
      sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist


이제 편하게 사용하시면 됩니다. 


OSX 에서 별다른 프로그램 설치 없이 쉽게 NTFS 파티션(partition)을 읽고 쓸 수가 있습니다. 기본으로 OSX 에서 Read - Write 하게 하면 좋을 텐데 꼭 이렇게 귀찮게 만듭니다. 

1. Terminal 프로그램을 실행합니다. 


2. 'diskutil info /Volumes/(볼륨 이름)' 을 터미널 (Terminal)에서 입력합니다. 
 - (볼륨 이름) 은 현재 쓰이고 있는 볼륨 파티션의 이름입니다. 
 - 보통 'BOOTCAMP' 일 것입니다. 


3. 2번 과정에서 나온 내용중에서 'Volume UUID' 값을 복사해 둡니다. 
 - 'File System' 이 NTFS 인 것을 확인 하실 수 있습니다. 



4. 아마도 /etc/fstab 에 별다른 작업을 안해 주셨다면 /etc/fstab.hd 라는 파일 하나만 존재할 텐데요. 무시하시면 됩니다. 


5. 'sudo nano /etc/fstab' 라고 입력해주시고 비밀번호를 입력하시면 편집 화면이 나옵니다. 


6. 다음과 같이 입력해 주시면 됩니다. 



 - 'UUID=' 다음에 존재하는 값은 3번에서 복사해둔 값 입니다. 


7. 편집된 fstab 을 저장하고 nano 에디터를 종료합니다. 
 - 'Control X' 누르시고 그 다음에 'Y' 누르시고 'Enter' 키 한번 누르시면 됩니다. 


8. 시스템을 재 부팅 해줍니다. 


 OISX를 잘 쓰기란 귀찮고도 귀찮은 일입니다. 



snow leopard 의 세상이 왔습니다. 

EDITED: 온지는 한참 됐습니다.... 예전 글 갱신한 것이라서요

진짜 왔는가는 별도로 하고 배달된 스노우 레오파드를 깔아줬습니다. 저는 맥빠가 아니니 표범 그려진 껍데기 보면서 하앍거리는 일은 전혀 없었구요

기존의 깔려 있는 osx leopard 위에 걍 덮어서 씌웠습니다. 처음에는 별 감흥없이 돌아가더군요 메뉴바 같은게 바뀐거 같긴 한데 잘 모르겠고 암튼 그냥 새로운 '맥'이겠거니 하고 사용하고 있었는데 결국 문제가 발생했습니다.

svn 이 깔리면서 기존에 제가 패치해둔게 동작을 안하더군요. 스노우 레오파드가 되면서도 그 문제 많은 utf-8 문제를 해결을 안했더군요 (아마 영원히 안할듯 싶네요..) 그래서 깔려있던 subversion source 를 컴파일 해서 다시 사용하려고 했는데 기존에 깔려 있던 라이브러리들이 32bit 라 링크에서 문제가 생기더군요.

이거저거 하다가 귀찮아서 가비얍게 기존 버젼을 포맷해주고 다시 '스노우 레오파드'를 깔아줬습니다. 그리고 다시 시작하는 마음으로 경건하게 svn 을 돌려봤는데 기존에 제가 포스팅 했던 문제가 고쳐지지 않았더군요. 그래서 다시 subversion 을 다운 받았습니다.

1. subversion 소스만 받아서 컴파일을 해보니 컴파일이 되지가 않더군요.

2. subversion - depends 소스 까지 받아서 합쳐서 컴파일 하니 'svn st' 쓸 때마다 segmentation fault 가
발생하더군요.

3. mac port 를 이용해서 subversion 을 설치하면 새로 컴파일 된 버젼이 깔리기는 하는데 snow leopard 안에
포함된 버젼과 똑 같은 svn 이 설치되더군요.

자 여기까지는 사족이고 이제부터가 진짜입니다.

== snow leopard 에 한글 파일 문제 없는 subversion 설치하기 == 

EDITED: subversion 1.6.15 로 업그레이드에 맞춰서 다시 적용합니다

1. mac port 로 dependency 문제를 해결한다.  snow leopard 안에 포함된 subversion 과 같은 svn 이
설치됩니다. (1.6.15 버젼이 설치됨)

sudo port install subversion

2. 이곳 에서 소스를  받습니다. subversion-deps-1.6.15.tar.gz 와 subversion-1.6.15.tar.gz 를 각각 다운 받고 다른 폴더 에 저장합니다.

subversion-1.6.15 가 각각 생기는데 subversion-deps-1.6.15.tar.gz 를 압축 풀었을 때 생기는 subversion-1.6.15 밑의 neon 디렉토리를 subversion-1.6.15.tar.gz 를 압축 풀었을 때 생기는 디렉토리로 이동시킨다.

neon 을 포함시켜주는 이유는 http 나 https 방식으로 접근이 가능한 클라이언트를 만들기 위해서 입니다.

3. 예전 방식 을 이용해서 소스를 패치해줍니다. (아래쪽에 1.6.15 버젼에 맞춘 패치 파일 있음)

patch -p0 < utf8_mac.patch
cd subversion-1.6.15
./configure --with-ssl
make
sudo make install

make 에서 테스트 진행중에 error 가 발생해서 build 가 멈추지만 무시하시고 바로 다음 명령을 진행하시면
됩니다. (버클리 디비 없다고 어쩌구 에러 생기면 무시해 주세요)


매번 패치하는 것도 지겨운데 애플이나 subverion 이나 한국이 관심 대상 밖인 것은 알지만 이 문제는 CJK
들의 공통적인 문제일텐데 왜 아무런 대책이 없나 궁금합니다.





SSH 를 이용해서 원격에 접속해서 Emacs 를 구동할 때 Meta Key 가 설정되어 있지 않아서 ESC 를 써야 하는 불편함이 있었습니다. 정말 빠르게  Option Key 를 메타키로 설정하는 방법을 알려드립니다. 


터미널 설정창을 열고 '키보드' 탭에 가시면 아래쪽에 'option을 메타 키로 사용' 체크 박스에 체크만 하시면 됩니다. 

이 간단한 걸 가지고 계속 ESC 를 썼다니 흑흑.. 제 환경은 SnowLeopard 입니다. 보통때 Emacs Client 는 Aquamacs 를 사용하지만 서버 작업할 때는 원격지 접속을 해야 하는 관계로 터미널을 씁니다. 



OSX Snow Leopard 에서 Rails 개발하게 됐습니다. 환경 세팅이 되야 본격적으로 개발을 진행 할 테니 이 글은 개발 환경 세팅에 관한 글입니다. 

1. Emacs Client 는 OSX 에서 사용하는 Aquamacs 입니다. Ruby-mode 는 내장된 것을 사용함 
2. 색 배정은 Color Theme 를 사용합니다. 
3. Rails Helper 는 Rinari 를 사용합니다. 
4. snippet 기능은 yasnippets 를 사용합니다. 
5. ruby-mode 에서 complete 기능은 ri-emacs 기능을 사용합니다. 


Aquamacs 는 설치가 되어 있다고 가정합니다. 

1. ~/Library/Preferences/Aquamacs Emacs/http://github.com/zhannes/Aquamacs-Emacs 에서 받은 파일들을 복사해 넣습니다. 



2. ~/Library/Preferences/Aquamacs Emacs/Preferences.el 을 열어서 다음과 같이 수정해 줍니다. 



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; load ruby-mode.el                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;loads ruby-mode.el - activate with M-x ruby-mode
(add-to-list 'load-path "~/Library/Preferences/Aquamacs Emacs/emacs_includes/plugins/ruby-mode.el")

; loads ruby mode when a .rb file is opened.
(autoload 'ruby-mode "ruby-mode" "Major mode for editing ruby scripts." t)
(setq auto-mode-alist  (cons '("\\.rb$" . ruby-mode) auto-mode-alist))
;;(setq auto-mode-alist  (cons '(".rhtml$" . html-mode) auto-mode-alist))
(setq auto-mode-alist  (cons '(".rhtml$" . rhtml-mode) auto-mode-alist))

(add-to-list 'load-path "~/Library/Preferences/Aquamacs Emacs/emacs_includes/plugins/ruby-electric.el")


rhtml 확장자 파일이면 rhtml-mode 로 연결될 수 있도록 수정합니다.




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; load emacs-code-browser           ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;Allows syntax highlighting to work, among other things

;; ;These lines are required for ECB
;; (add-to-list 'load-path "~/Library/Preferences/Aquamacs Emacs/emacs_includes/plugins/eieio")
;; (add-to-list 'load-path "~/Library/Preferences/Aquamacs Emacs/emacs_includes/plugins/speedbar")
;; (add-to-list 'load-path "~/Library/Preferences/Aquamacs Emacs/emacs_includes/plugins/semantic")
;; (setq semantic-load-turn-everything-on t)
;; (require 'semantic-load)
;; ; This installs ecb - it is activated with M-x ecb-activate
;; (add-to-list 'load-path "~/Library/Preferences/Aquamacs Emacs/emacs_includes/plugins/ecb")
;; (require 'ecb)

ECB 관련해서는 전부 comment 처리합니다. ECB 버젼이 낮아서 최신 버젼을 깔아주는 것이 좋겠더군요. 
 


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; load rails-mode.el                ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


; needed for rails mode
(require 'snippet)
(require 'find-recursive)
; The rails require needs to go after ECB
; otherwise it loads a new incompatible speedbar
; (add-to-list 'load-path "~/Library/Preferences/Aquamacs Emacs/emacs_includes/plugins/emacs-rails")

; blik.it's rhtml enhancements
;; (add-to-list 'load-path "~/Library/Preferences/Aquamacs Emacs/emacs_includes/plugins/rhtml/")
;;(add-to-list 'load-path "~/Library/Preferences/Aquamacs Emacs/emacs_includes/plugins/emacs-rails/")
(require 'nxml-mode)
;; (require 'rhtml-mode)
;;(require 'rails)


기존에 포함된 emacs-rails 헬퍼부분을 comment 처리합니다. 이렇게 하는 이유는 Rinari 를 헬퍼로 사용하기 위해서 입니다. 

rhtml-mode 는 사용하는 모드인데 .emacs 에서 최신버젼으로 설정해 주기 위해서 기존 것을 로딩하는 부분을 comment 처리해 줍니다.

;(load "~/Library/Preferences/Aquamacs Emacs/nxhtml/autostart.el")

nxhtml-mode 는 검은색을 바탕으로 하는 색 테마에는 어울리지가 않더군요. comment 처리해 줍니다. 


(cua-mode t) -> (cua-mode nil) 

로 수정해 줍니다. 

3. ri-emacs 는 http://rubyforge.org/projects/ri-emacs/ 에서 다운 받아서 "~/.emacs.d/ri-emacs" 안에 내용을 풀어줍니다. 
.emacs 안에 


(add-to-list 'load-path "~/.emacs.d/ri-emacs")
(autoload 'ri "~/.emacs.d/ri-emacs/ri-ruby.el" nil t)
(setq ri-ruby-script (expand-file-name "~/.emacs.d/ri-emacs/ri-emacs.rb"))


와 같이 세팅해 줍니다. 

4.yasnippet 은 http://code.google.com/p/yasnippet/ 에서 다운 받을 수 있습니다. 오른쪽 중간쯤에 필요한 파일들이 나열되어 있는데요. yasnippet-bundle-0.6.1c.el.tgz 파일을 받아서 푸시고 "~/.emacs.d/plugins" 에 복사합니다. 그리고 .emacs 파일에 



(add-to-list 'load-path
             "~/.emacs.d/plugins")
(require 'yasnippet-bundle)

와 같이 지정해 주면 됩니다. 

5. rhtml-modehttp://github.com/eschulte/rhtml 에서 다운 받아서 "~/.emacs.d/rhtml" 에 압축을 풀어 줍니다. 그리고 .emacs 에 



(add-to-list 'load-path
             "~/.emacs.d/rhtml")
(require 'rhtml-mode)
(add-hook 'rhtml-mode-hook
          (lambda () (rinari-launch)))

와 같이 설정해 줍니다. 

6. yasnippet 모드에서 Rails 를 지원하기 위한 추가 팩입니다. http://github.com/eschulte/yasnippets-rails 에서 다운 받아서  "~/.emacs.d/plugins" 에 풀어줍니다
. 그리고 .emacs 에 


(load-file "~/.emacs.d/plugins/setup.el")
(add-hook 'rinari-minor-mode-hook
          #'(lambda ()
              (setq yas/mode-symbol 'rails-mode)))

와 같이 설정해 줍니다. 

7. ECB 파일을 따로 설치해 줍니다. 굳이 따로 설명을 드리지 않겠습니다. 다만 제 .emacs 파일에서는 



(add-to-list 'load-path "~/.emacs.d/cedet/common")
(add-to-list 'load-path "~/.emacs.d/cedet/contrib")
(require 'cedet)

(add-to-list 'load-path
                   "~/.emacs.d/ecb")
(require 'ecb)


이렇게 설정되어 있습니다. 

8. Rinari 모드를 설치해야 합니다. 이건 ELPA 방식으로 설치하는 것이 가장 편합니다. *scrach* 버퍼로 이동해서 모드를 lisp-interaction-mode 로 변경합니다. 그리고 다음 과 같은 내용을 버퍼에 삽입합니다. 



(let ((buffer (url-retrieve-synchronously
      "http://tromey.com/elpa/package-install.el")))
  (save-excursion
    (set-buffer buffer)
    (goto-char (point-min))
    (re-search-forward "^$" nil 'move)
    (eval-region (point) (point-max))
    (kill-buffer (current-buffer))))

내용 마지막에 커서를 위치시키고 C-xC-e 를 눌러서 버퍼를 실행시킵니다. 그리고 M-x package-list-packages 를 실행합니다. 


인스톨하고 싶은 패키치에 마우스나 커서를 위치시키고 (여기서는 Rinari) 'I' 키로 인스톨 대상을 확인 시키고 'X' 키로 인스톨을 실행합니다. 

9. html.erb 확장자 를 rhtml 모드로 동작시키기 위해서 .emacs 에 다음과 같은 내용을 채워 줍니다. 



(setq auto-mode-alist
      (cons '("\\.rhtml$" . rhtml-mode)
   auto-mode-alist))
(setq auto-mode-alist
      (cons '("\\.erb$" . rhtml-mode)
   auto-mode-alist))
(setq auto-mode-alist
      (cons '("\\.html\\.erb$" . rhtml-mode)
   auto-mode-alist))

10. ruby-mode 에서 yasnippets 확장을 쓰기 위해서 TAB 키에 바인딩된 함수 기능을 풀어줍니다. .emacs 에서 다음 과 같은 내용을 추가합니다. 


(add-hook 'ruby-mode-hook
          #'(lambda ()
              (define-key ruby-mode-map (kbd "TAB") nil)
              (define-key ruby-mode-map [(control return)]  'ri-ruby-complete-symbol)
              (define-key ruby-mode-map [(shift return)]  'ri-ruby-show-args)
              ))



여기까지 세팅을 하면 기본적으로 잘 동작이 될 것입니다. yasnippets 에 자주 쓰는 기능들을 등록시켜가면서 (추후에 몇개 공개하겠음) Rails 개발을 하면 Emacs 사용자로서 보람도 느끼고 상용 Rails 개발툴이 안 부러울 것입니다. (왜냐하면 우리는 이맥션 이기 때문이지요 캬오!!) 그런데 발생하는 중대한 문제가 있습니다. rhtml-mode 로 yasnippets 로 사용하다 보면 erb block 안에 { } <-- 이게 들어갈 때 문제가 발생하기 시작합니다. unclosed tag 에러가 발생하기 시작하는데 이거 수정이 매우 어렵습니다. 처음에 정규표현식을 바꿔서 수정해 볼까 하다가, 나중에는 포기하고 그냥 rhtml-mode 자체를 수정하기로 결심했습니다. 

rhtml-mode.el 파일을 열어줍니다. 제 경우에는 ~/.emacs.d/rhtml/rhtml-mode.el 에 있습니다. 


(define-derived-mode rhtml-mode
;  html-mode "RHTML"
  html-helper-mode "RHTML"
  "Embedded Ruby Mode (RHTML)"
  (interactive)
  (abbrev-mode)
  ;; disable if you don't want it...
  (rhtml-activate-fontification))

html-mode "RHTML" 을 
html-helper-mode  "RHTML" 로 수정

rhtml-mode 가 html-mode 에서 상속받은 형태의 mode 였는데 이것을 html-helper-mode 에서 상속받게 바꾸어 주기만 하면 됩니다. 에 게다가 바꾸는 김에 조금 더 바꿔줍니다. rhtml-mode 일때 erb-block 을 highlight 시키는데 이게 눈에 상당히 거슬립니다. 

rhtml-fonts.el 파일을 열어줍니다. 제 경우에는 ~/.emacs.d/rhtml/rhtml-fonts.el 에 있습니다. 



(defface erb-face
  '((((class color) (min-colors 88) (background dark))
;     :background "#383838")
    :background "black")
    (((class color) (min-colors 88) (background light))
     ;; :background "azure")
     :background "snow2")
    (((class color) (min-colors 16) (background dark))
     :background "blue3")
    (((class color) (min-colors 16) (background light))
     :background "azure")
    (((class color) (min-colors 8))
     :background "blue")
    (((type tty) (class mono))
     :inverse-video t)
    (t :background "gray"))
  "Default inherited face for ERB tag body"
  :group 'rhtml-faces)

이렇게 수정해 줍니다. 즉 

:background "#383838") 을 
:background "black") 으로 수정

자 이제 마지막으로 erb block 이 시작되는 델리미터까지 깔끔하게 수정해 주기로 합니다. rhtml-fonts.el 파일에서 



;; (defface erb-out-delim-face
;;   `((((background dark)) :foreground "#aaffff" :background "#383838")
;;     (t (:inherit erb-delim-face :weight bold :foreground "darkred")))
;;   "Basic face for Ruby embedded into HTML"
;;   :group 'rhtml-faces)

(defface erb-out-delim-face
  `((((background dark)) :foreground "#aaffff" :background "black")
    (t (:inherit erb-delim-face :weight bold :foreground "darkred")))
  "Basic face for Ruby embedded into HTML"
  :group 'rhtml-faces)


전체를 comment 처리한 것으로 보이지만 :background "#383838" 부분을 "black" 으로 바꿔주기만 한 것입니다. 

조금 길지만 충분히 따라할 만한 설정입니다. 즐겁게 Rails 코딩하세요 ~ 



책에서 나온대로 레일즈 프로젝트 따라하기 중인데 

depot> rake db:migrate 

명령을 치라는 부분을 치니, gem 에 mysql 이 기본으로 포함이 안되어 있다는 메시지가 발생 하더군요. 
시키는 대로 해도 몇몇 에러가 발생하더군요. 이래저래 돌아다니면서 알아보니 

처음에 발생한 에러 메시지 입니다. 

(in /Users/crazia/Documents/workspace/rails/depot)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
no such file to load -- mysql

그래서 

gem install mysql 

라고 입력했습니다. 

crazia$ gem install mysql
WARNING:  Installing to ~/.gem since /Library/Ruby/Gems/1.8 and
 /usr/bin aren't both writable.
WARNING:  You don't have /Users/crazia/.gem/ruby/1.8/bin in your PATH,
 gem executables will not run.
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
ERROR: Failed to build gem native extension.

이런 에러가 발생하더군요. 

그래서 ~/.bash_profile 에 

export PATH=$PATH:/opt/local/bin:/opt/local/sbin:/usr/local/mysql/lib:~/.gem/ruby/1.8/bin

추가해줬습니다. 그리고 다시  gem install mysql 을 실행 

 gem install mysql
Password:
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
ERROR: Failed to build gem native extension.

다시 에러 입니다. 잠깐의 구글링을 통해서 헤더랑 라이브러리를 지정해줘야 하는것 같더군요. 

gem install mysql -- --with-mysql-include=/usr/local/mysql/include/mysql --with-mysql-lib=/usr/local/mysql/lib --with-mysql-config=/usr/local/mysql/bin/mysql_config 

이런식으로 입력하니 다시 에러 찾아보니 스노우레오파드의 아키텍쳐를 명시해줘야 한다고 합니다. 

env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-include=/usr/local/mysql/include/mysql --with-mysql-lib=/usr/local/mysql/lib --with-mysql-config=/usr/local/mysql/bin/mysql_config 

이렇게 등록해 주면 됩니다. mysql 은 스노우레오파드에 디폴트로 포함되어 있는 버젼입니다. 

그리고 다시  rake db:migrate 

crazia$ rake db:migrate
(in /Users/crazia/Documents/workspace/rails/depot)

성공!! 즐겁게 레일즈 코딩하세요 ~








XCode 는 강력한 통합 IDE 입니다. 자체 에디터도 쓰기 편리하고 아이폰이나 맥 어플리케이션 개발에 최적화 되어 있습니다. 하지만 이맥스 유저들은 텍스트 에디팅 자체를 다른 툴에서 하라고 하면 몸에 두드러기가 발생하나 봅니다. (아 저만 그런가여? ㅎㅎ) 그래서 에디팅 자체를 Emacs 에서 할 수 있는 방법이 있습니다.


Preferences 에서 "text" 라고 되어 있는 부분을 외장 에디터로 설정할 수가 있습니다. 저 같은 경우에는 Aquamacs 로 지정해 줬습니다.

그리고 .emacs

(setq ns-pop-up-frames 'nil)


와 같이 추가해주면 소스 파일을 클릭했을 때 새 Frame 에서 창이 열리는 것을 막아줍니다.


+ Recent posts