Emacs 를 mac 에서 사용하다 보면 몇가지 불편한게 있습니다. 대표적으로 ClipBoard 와 연동문제가 있습니다. 그러다가 Emacs for OSX 라는 것이 있더군요.

https://github.com/railwaycat/emacs-mac-port

위 사이트에서 자세한 설명은 되어 있지만 언제 끝날지 모르는 프로젝트더군요. 설명은 저기서 참조하고 소스는 실제로 작업하는 일본 프로그래머의 사설 git 레파지토리에서 받아서 컴파일을 하면 됩니다.

http://www.math.s.chiba-u.ac.jp/~mituharu/emacs-mac.git

이게 그 사설 git 레파지토리 입니다. 이걸 받으셔서 제가 예전에 올렸던 OSX 에서 컴파일해서 사용하기 를 참조해서 컴파일 하시면 됩니다.

$ ./configure --with-mac

옵션을 줘야 mac용으로 컴파일 됩니다. 그리고 결과는 ./build 안에 있더군요. 아이콘이 멋지게 바껴있는 것을 확인하실 수가 있습니다. 다만 사용하시다 보면 한글 디렉토리명이 깨지는 경우가 있습니다. 이건 예전에 제가 Subversion 에서 한글 파일을 인식못하는 문제 에서 썼듯이 UTF8이 종류가 달라서 그러한 문제가 발생합니다. 이걸 해결 하기 위해서 원작자에게 메일로 문의했더니 답변을 주더군요. (감사 감사)


이렇게 파일 이름들이 깨지는 현상입니다.


.emacs 파일안에다가

(require 'ucs-normalize)
(set-file-name-coding-system 'utf-8-hfs)

와 같은 식으로 적어주면 문제가 해결이 됩니다.




요세미티가 나왔습니다. 공짜더군요.. 이건 뭐 깔아달라고 지옥의 저편에서 울부짖는 거나 다름이 없는 것입니다. 안 깔아주면 예의가 아닌듯 하여 바로 깔아줬습니다. 압축 안하고 5기가 정도 되는거 다운받고 설치하면, 표시상으로는 '2분'이지만 실제로는 거의 한시간 반정도에 해당하는 2분이 지나가면 설치가 됩니다. 


설치가 잘 된건 마음에 들었지만 일단 외형이 (특히 아이콘이) 마음에 들지 않더군요. 전 iOS 의 최근 아이콘 스타일이 마음에 안들었는데 그 스타일로 밀었더군요. 게다가 VMWare 5.0 을 잘 쓰고 있었는데 동작하지 않더군요. 눈물을 머금고 7.0 을 사줘야 합니다. 심지어 다른 버젼은 (6.0 등등) 설치도 안된다고 해서 이번에 VMWare 가 시원하게 욕을 먹고 있습니다. 뭐 여기까지는 봐줄만 합니다. 저는 어차피 콘솔모드를 자주 쓰니.. 


느립니다. 이상하게 느립니다. 산왕전의 강백호마냥 어딘가 따끔 따끔 거리며 느립니다. 이럴 때 쉽게 해결하는 방법이 있어서 소개합니다. 


1. 전원을 완전히 끕니다. 


2. 부팅시 Command+R 을 꾹 눌러서 복구 모드로 들어갑니다. 


3. 디스크 유틸리티를 실행합니다. 




'디스크 권한 복구' 와 '디스크 복구'를 차례 차례 눌러줍니다.


4. 다시 재부팅 해줍니다. 


끝!! 다시 빨라진 OSX 와 만나십시오. 

Slime 이 무엇인지 Emacs 를 사용하시는 분들은 대충 아시리라 봅니다. REPL (Read Eval Print Loop)형태를 지원하는 언어에 대한 최적의 개발 환경이라고 보시면 됩니다. (물론 부정하는 분들도 많습니다) 

저는 Common Lisp , Clojure 등을 Slime 을 이용해서 개발환경을 구축해 두었습니다. 이번에 프로젝트를 Node.js 로 진행하게 되어서 (Node.js 또한 REPL 을 지원합니다) Emacs + Slime 으로 환경을 구축할려고 알아보았습니다. 

역시나 괜찮은 솔루션이 하나 등장하더군요. https://github.com/swank-js/swank-js

Slime 은 Swank 라는 방식으로 각기 언어별로 소켓 접속이 가능한 방식으로 서버를 띄우면 Emacs 에서 slime-connect 를 이용하여 서버에 붙어서 정보를 가져오고 전달하는 방식으로 구동됩니다. 이러한 점 때문에 원격에 swank 서버를 띄워도 마치 local 에 붙는 것처럼 붙어서 동작할 수가 있습니다. 

설치하는 방법 (OSX - Mountain Lion 기준 입니다)

1. Node.JS 와 npm 을 설치합니다. (Ubuntu 설치는 예전 포스트 참조 )

     

 $ sudo port install nodejs 
 $ sudo port install npm 


2. swank-js 설치 합니다. 
       

 $ sudo npm install -g swank-js 


swank-js 는 node.js 로 만들어진 swank 모듈입니다. 위에서 잠깐 언급한 slime 이 접속할 수 있는 서버를 띄워주는 모듈입니다. npm install 시에 -g 옵션을 주면 전역으로 설치하라는  명령입니다. 이제 어디서나 swank-js 명령으로 swank 서버를 띄워줄 수가 있습니다. 

3. SLIME 을 설치해야 할 시간입니다.

$ cd ~/.emacs.d/
$ cvs -d :pserver:anonymous:anonymous@common-lisp.net:/project/slime/cvsroot co slime


위와 같은 방식으로 다운 받는 것이 속도가 가장 빠르더군요. git 사이트는 생각보다 많이 느립니다. 


4. js2-mode 를 받아야 합니다. 

http://code.google.com/p/js2-mode/ 에서 js2-20090723b.el 을 다운 받아서 js2-mode.el 로 이름 변경해서 적당한 곳 (저는  ~/.emacs.d/ 밑에다 가져다 뒀습니다) 에 옮겨두고 byte-compile-file 을 해줍니다. 

Emacs 를 실행하고 
       

M-x byte-compile-file 


로 js2-mode.el 을 지정하면 됩니다. 이때 꼭 명심해야 할 사항은 절대 js2-mode.el 을 버퍼에 올려둔 상태로 컴파일 진행하면 안된다는 것입니다. (올려둔 상태로 컴파일 하면 에러가 발생함)

.emacs 파일을 열고 다음과 같은 내용을 추가해 줍니다. 

       (autoload 'js2-mode "js2-mode" nil t)
       (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))



5. 적당한 곳에 swank-js 프로젝트를 다운 받습니다. 
       
     

 $ cd ~/work
 $ git clone git://github.com/swank-js/swank-js.git



6. slime-js.el 의 심볼릭-링크 를 만들어 줍니다. 

$ cd ~/.emacs.d/slime/contrib
$ ln -s ~/work/swank-js/slime-js.el slime-js.el
$ cd ~/.emacs.d/
$ ln -s ~/work/swank-js/slime-js.el slime-js.el


7. .emacs 에 slime-js.el 을 require 해주고, 몇가지 추가 설정을 더 해줍니다. 

       (require 'slime-js)
       
       (add-hook 'js2-mode-hook
          (lambda ()
            (slime-js-minor-mode 1)))
       
       (add-hook 'css-mode-hook
          (lambda ()
            (define-key css-mode-map "\M-\C-x" 'slime-js-refresh-css)
            (define-key css-mode-map "\C-c\C-r" 'slime-js-embed-css)))



8. Emacs 를 다시 띄우고 Terminal.app 를 실행하시고 node.js 프로젝트 만들려고 마음 먹은 곳 위치에서 

$ cd ~/work
$ mkdir node-projects
$ cd node-projects
$ swank-js


이렇게 해주면 swank-js 서버가 구동됩니다. swank-js 명령만 쳐도 되는 것은 'sudo npm install -g swank-js' 해 줬기 때문입니다. 

Emacs 에서 

M-x slime-connect


해 주고 기본적으로 127.0.0.1 과 4005 번 포트로 접속 하는 것을 선택해 주시면 됩니다. (Enter x 2 번)

추가로 어떤 기능이 되는지는 https://github.com/swank-js/swank-js 사이트 참조하시면 됩니다.  
가지고 있던 맥북 프로를 지금 일하는 곳에 묶이게 되버려서 새로 노트북을 장만했습니다. 맥북 에어를 장만 했는데  Lion 이 기본으로 설치되어 있습니다. 아무 생각 없이 Mac port 를 설치해 줬는데 동작을 안하는 것입니다. 그래서 예전 기억을 더듬어 봤더니 XCode 를 설치해 줘야지만 동작했던 게 기억이 났습니다.

그래서 App Store 에서 XCode 4.3 을 설치하고 돌려봤지만 여전히 동작을 안합니다. 이유를 알아봤더니만 예전에 추가로 설치해 줬던 'System Tools' 가 없기 때문에 발생하는 문제였습니다.

XCode 4.3 가 설치되어 있다고 가정합니다.

1. XCode 를 실행시키고 메뉴중에서 "XCode" -> "Preferences..." 을 선택합니다.

2. "Downloads" 탭 (Tab) 으로 이동합니다.


3. 위 그림에서 보는 바 와 같이 "Command Line Tools" 를 클릭해서  설치해 줍니다.

이상입니다
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


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


+ Recent posts