기존 계정에서 실행하는 것은 문제가 없는데 , 네트워크 상에서 (즉 WorkGroup 으로 묶인 계정으로) 로그인 해서 사용할려고 실행할 때 발생하는 에러를 해결하는 방법 입니다.

   
  Debugger entered--Lisp error: (error "The directory ~/.emacs.d/server is unsafe")
     signal(error ("The directory ~/.emacs.d/server is unsafe"))
     error("The directory %s is unsafe" "~/.emacs.d/server")
     server-ensure-safe-dir("~\\.emacs.d\\server\\")
     server-start(nil)
     call-interactively(server-start t nil)
     execute-extended-command(nil)
     call-interactively(execute-extended-command nil nil)


대충 이런 식으로 에러가 발생합니다. 붉은색 으로 표시된 디렉토리 이름은 상황에 따라 다르게 나옵니다. 제 경우에는 위와는 살짝 다르게 "C:\Users\sdssss\AppData\Roaming\.emacs.d\server" 이런식으로 표시 됐습니다.

이유는 간단합니다. 붉은색 으로 표시되는 디렉토리의 소유자 (Owner)가 다르기 때문입니다. 소유자를 바꿔주던가 하는 식으로 해결하는 방법도 있지만 저는

.emacs 파일을 열어서 맨 아래쪽에 다음과 같이 추가해 줍니다.

  
(require 'server)
   (when (and (= emacs-major-version 23)
           (= emacs-minor-version 1)
           (equal window-system 'w32))
   (defun server-ensure-safe-dir (dir) "Noop" t))
   (server-start)


간단하게 설명하자면 server-ensure-safe-dir 이라는 함수가 안전한지 여부를 확인하는 함수인데 소유자 건으로 이 함수에서 에러를 뱉어 내는 것입니다. 이 함수를 무조건 t 만 리턴하는 거수기 함수로 바꿔버리면 모든 것은 간단하게 끝이 납니다.

그리고 추가로 "C:\Users\sdssss\AppData\Roaming\.emacs.d\server"  이 디렉토리 의 마지막 즉 server 디렉토리를 $HOME/.emacs.d 안으로 복사해줍니다. 이건 또 왜 해주냐면, server-ensure-safe-dir 함수가 거수기가 되 버려서 , $HOME 밑에서 server 의 존재를 찾습니다. 따라서 복사해주면 모든 것이 OK 입니다.





무엇인가를 해 볼려면 역시 설치부터!! 정말 하둡 초 간단 따라하기 식 설치에 대해서 알아봅니다. 

시작전에 환경세팅이 필요합니다. 어떤 OS 기반위에 설치할 것인가를 정해야 하는데 저는 그냥 리눅스로 정했습니다. 환경세팅자체도 쉽고 하둡도 리눅스를 추천하고 있기 때문입니다. 그래서 가장 최근에 릴리즈된

우분투 11.10 (Ubuntu 11.10) - 다운로드 페이지

로 정했습니다.

하둡 설치 형태는 3가지로 나뉩니다.

1. StandAlone
 - 하둡 파일 시스템을 띄우지 않은 상태에서 동작하는 것만 테스트 해 볼 수 있는 상태이다. 
 

2. Pseudo Distribution
 - 하둡 파일 시스템을 구동시키고 한 컴퓨터에서 모든 데몬들을 띄워서 동작하는 것을 테스트 해볼 수 있는    상태 

3. Cluster
 - 
실제로 파일 시스템을 만들고 각 클러스터가 독립적인 기계로 동작하는 방식 

 
이중 StandAlone 과 Pseudo Distribution 을 싱글노드 (Single - Node ) 방식이라고 합니다. 즉 한대의 컴퓨터에서 설치해서 동작시킬 수 있기 때문입니다.  이중 정말 간단한 StandAlone 방식으로 설치해 보겠습니다.

Linux 에서 '터미널' 프로그램을 실행한 후에 

$ sudo apt-get install ssh 
$ sudo apt-get install rsync


위와 같이 입력해서 SSH 서버와 Rsync 를 설치해줍니다. Rsync 는 일반적으로 설치가 되어 있습니다. 기본 준비가 되어 있으면 다음은 하둡을 설치해줄 시간입니다. 

http://ftp.daum.net/apache//hadoop/common/stable/

위 주소를 클릭해서 다운을 받습니다. 최신버젼을 안 쓰고 안정화 버젼을 쓰는 것은 어찌보면 당연합니다. 어디서 문제가 생길지 모르는 버젼보다는 이미 많이 밝혀져서 안정화 버젼을 쓰는 것이 정신 건강상 좋기 때문입니다.

하둡을 실제로 실행하기 전에 환경 변수를 챙겨줘야 합니다. $HOME 에 있는 .profile 파일을 열어서 다음과 같은 내용을 추가해줍니다.

export JAVA_HOME="/usr/lib/jvm/default-java"
export HADOOP_HOME="/home/crazia/work/hadoop-0.20.203.0"


HADOOP_HOME 에서  'crazia' 는 본인의 아이디로 대체 합니다. 
그리고 다시 '터미널' 창에서 다음과 같이 입력해서 변경점을 적용해줍니다. 

$ source ~/.profile 


그리고 $HADOOP_HOME/conf/hadoop-env.sh 파일을 열어서 

# export JAVA_HOME=/usr/lib/j2sdk1.5-sun


위와 같은 부분을 찾아서 그 밑에 

export JAVA_HOME=/usr/lib/jvm/default-java


라고 추가해 줍니다. 이제 여기까지 따라 했으면 준비가 끝났습니다. 간단하게 테스트 해보기로 하겠습니다.

터미널 프로그램에서 $HADOOP_HOME 으로 이동해서 
 

$ mkdir input 
$ cp conf/*.xml input 
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 
$ cat output/*


위와 같이 입력해. 그리고 결과를 확인해 봅니다. 만약 결과가 나온다면 설치는 성공한 것입니다.

사실 여기까지는 정말 별거 아닙니다. 다음 설치를 위한 준비과정이라고 생각하시면 됩니다. 그냥 부담 없이 처음부터 끝까지 쭈욱 따라가기만 하면 설치됩니다. 그리고 다시 한번 개발을 위해서라면 리눅스(Linux) 특히 그중에 우분투( Ubuntu )를 강력 추천합니다.


  
 
  
 


예전의 복잡했던 방법에서 탈피해서 MS 의 CoreFonts 들을 쉽게 설치할 수 있는 방법이 열렸습니다. 너무 쉬어서 쓰기도 부끄럽군요. 

 우분투 (Ubuntu) 11.10 에서 테스트 했습니다. "Oneiric Ocelot"(몽환적 시라소니) 라고도 하지요. 
 
$sudo apt-get install cabextract



로 다운 받으시면 됩니다.  제 경우에는 이미 설치되어 있더군요. 
 
그리고  스크립트를 한개 만듭니다.  vista-fonts-installer.sh 로 만들어 줬습니다. 다음은 그 파일에 저장될 내용입니다.




#!/bin/sh
# Copyright (c) 2007 Aristotle Pagaltzis
# 
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.

set -e

exists() { which "$1" &> /dev/null ; }

if ! [ -d ~/.fonts ] ; then
	exec 2>&1
	echo 'There is no .fonts directory in your home.'
	echo 'Is fontconfig set up for privately installed fonts?'
	exit 1
fi

# split up to keep the download command short
DL_HOST=download.microsoft.com
DL_PATH=download/f/5/a/f5a3df76-d856-4a61-a6bd-722f52a5be26
ARCHIVE=PowerPointViewer.exe
URL="http://$DL_HOST/$DL_PATH/$ARCHIVE"

if ! [ -e "$ARCHIVE" ] ; then
	if   exists curl  ; then curl -O "$URL"
	elif exists wget  ; then wget    "$URL"
	elif exists fetch ; then fetch   "$URL"
	fi
fi

TMPDIR=`mktemp -d`
trap 'rm -rf "$TMPDIR"' EXIT INT QUIT TERM

cabextract -L -F ppviewer.cab -d "$TMPDIR" "$ARCHIVE"

cabextract -L -F '*.TT[FC]' -d ~/.fonts "$TMPDIR/ppviewer.cab"

( cd ~/.fonts && mv cambria.ttc cambria.ttf && chmod 600 \
	calibri{,b,i,z}.ttf cambria{,b,i,z}.ttf candara{,b,i,z}.ttf \
	consola{,b,i,z}.ttf constan{,b,i,z}.ttf corbel{,b,i,z}.ttf )

fc-cache -fv ~/.fonts


그리고 


$ chmod a+x ./vista-fonts-installer.sh 




를 해주고 자신의 $HOME 에서 임시 폰트가 저장될 위치를 만들어 줍니다. 


$mkdir ~/.fonts




그리고 파일 다운로드를 위해서 curl 이라는 명령을 설치해줘야 합니다. 


$sudo apt-get install curl 




그리고 마지막으로 위에서 만들어준 스크립트를 실행시켜 줍니다. 


$ ./vista-fonts-installer.sh



만약 에러가 발생한다면 다음 명령을 수동으로 한번 실행해줍니다.

fc-cache -fv ~/.fonts




이상입니다. 이렇게 하면 아주 간단하게 폰트가 설치됩니다. 




Ubuntu natty (11.4) 에 오라클을 설치하는 방법입니다. 

만약 설치할려는 서버의 메모리가 1기가 보다 적을 때는 포기하기로 하자 

$ sudo dd if=/dev/zero of=/swpfs1 bs=1M count=1000
$ sudo mkswap /swpfs1
$ sudo swapon /swpfs1


를 입력해서 스왑을 지정해 줍니다. 그리고 다음과 같이 입력해서 
  

$ sudo emacs /etc/apt/sources.list


를 열어서 제일 아래쪽에 

deb http://oss.oracle.com/debian unstable main non-free


이걸 추가해 주고 , 그리고 GPG Key 값을 추가해 줍니다. 

$ wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -


소스 리스트에 오라클 배포 사이트를 추가해주고 , 키를 등록해 줬으니 이제 소스리스트를 업데이트 해줄 시간입니다.

$ sudo apt-get update


자 이제 어떤 것이 있는지 조사해 볼까요?  

$ apt-cache search oracle


를 입력하면 가장 아래쪽에 
 
   oracle-xe - Oracle Database 10g Express Western European Edition
   oracle-xe-client - Oracle Client 10g Express Edition
   oracle-xe-universal - Oracle Database 10g Express Universal Edition
 
이 세가지가 눈에 띄는군요. oracle-xe 는 유럽 버젼인 듯 하니 oracle-xe-universal 을 깔아줘야 하겠죠?

$ sudo apt-get install oracle-xe-universal 


실수로 oracle-xe 를 설치할 뻔 했는데 universal 버젼이 대략 50메가 정도 용량이 더 크더군요.  다 설치됐으면 설명에 따라서 다음과 같이 설정을 해줍니다. 

$ sudo /etc/init.d/oracle-xe configure 

 

Specify the HTTP port that will be used for Oracle Application Express [8080]:


 오라클 데이타베이스 홈페이지에 접속할 포트 번호를 물어보는 것입니다. 그냥 디폴트로 설정해 줍니다. Enter 

 Specify a port that will be used for the database listener [1521]:


   유명한 오라클의 포트 번호지요? Enter 눌러서 설정해줍니다. 
   

   Specify a password to be used for database accounts.  Note that the same
   password will be used for SYS and SYSTEM.  Oracle recommends the use of 
   different passwords for each database account.  This can be done after 
   initial configuration:
   Confirm the password:


SYS 나 SYSTEM 의 비밀번호 설정에 관한 질문입니다. 걍 기억하기 편하게 , root 라고 입력하죠 한번 더 입력하는 부분이 있으니 똑같이 root 로 입력해 주죠.

 Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:


시작할 때 오라클 데이타베이스를 띄울 것인가에 관한 질문입니다. y 를 입력해줍니다. 

매우 쉽게 오라클 설정이 끝났습니다. 역시 진리의 우분투(Ubuntu) 입니다. 
잘 설치되었는지 확인을 해 줘야 겠지요? 

웹브라우져를 열고 "http://127.0.0.1:8080/apex" 를 입력해 줍니다. 잘 나오시나요? 

만약 안나오신다면 

 $ sudo /etc/init.d/oracle-xe force-reload 

 
한번 실행시켜주시면 됩니다. 

또 다른 이슈? 만약 톰캣 하고 충돌이 일어난다면 

 
 저는 이러한 그림이 뜨는군요. 톰캣이 8080 포트를 점유하고 있어서 그렇습니다. 
   
 /etc/tomcat6/server.xml 파일을 열어줍니다. 그리고 다음과 같은 부분을 찾아줍니다. 

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               URIEncoding="UTF-8"
               redirectPort="8443" />


그리고 8080 을 다른 값으로 바꿔줍니다. 8008 이 괜찮겠군요. 수정했으면 저장하고 빠져나와서 톰캣을 재시작 해줍니다. 

 $ sudo /etc/init.d/tomcat6 restart


톰캣을 재시작 해주고 

 

 $ sudo /etc/init.d/oracle-xe force-reload 


를 실행시켜주시면 됩니다.
 

 
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


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


새로운 것을 좋아하는 후배가 책까지 사주면서 보라고 해서 결국 Clojure를 설치하기로 했습니다.

Mac port 이용해서 Clojure 설치 하기

가장 쉬운 방법으로는 mac port 를 이용하는 방법이 있습니다.

sudo port install clojure


하면 너무나 손쉽게 설치됩니다. 하나 이러한 방법을 쓰면 나중에 Emacs 나 Slime 과 연동 설치할 때 귀찮아 지기 때문에 수동 설치를 하려고 마음을 먹었습니다.

Clojure 수동 설치 하기

참조 사이트: http://riddell.us/ClojureOnUbuntu.html

위에 링크한 사이트는 제가 여러모로 도움을 받는 사이트 입니다. 역시나 클로져도 우분투에 편하게 설치하는 방법이 잘 정리되어 있더군요. "그냥 사이트 보세요" 만큼 형편없는 도움말은 없겠지요. 그래서 거기 나와 있는 내용을 조금 제 형편에 맞게 정리해 볼까 합니다.

기본적으로 osx 는 자바가 설치되어 있습니다. 따로 설치해줄 필요 없으니 자바는 생략하고요. git 역시 설치되어 있다고 가정하지요. 제가 어떻게 설치했는지 기억이 안나는 군요..Maven 은 설치해준 기억이 없는데 설치되어 있는것을 보니 어영 부영 설치되어 있는 것 같습니다.

Ant 설치
 Ant 는 아마 기본으로 설치가 안되어 있을 것입니다.

~$ sudo port install ant


Clojure 설치

최신 버젼을 받아서 컴파일 해서 설치해 주면 됩니다.

~$ mkdir ~/work

~$ cd ~/work

~$ git clone git://github.com/richhickey/clojure.git

~$ cd clojure

~$ ant

~$ mkdir ~/.clojure

~$ cp clojure.jar ~/.clojure


저는 기본적으로 코드 관련 소스들은 work 밑에 저장하기 때문에 work 를 썼습니다. 코드 관련 폴더를 하나씩 만들어서 쓰시는 것을 추천합니다.

Clojure 테스트 하기

~$ cd ~/.clojure

~$ java -cp clojure.jar clojure.lang.Repl

user=> (+ 1 41)

42


Ctrl-d 를 누르면 REPL 을 빠져 나갑니다.

clojure-contrib 설치 하기

clojure-contrib 은 공식적인 클로져 확장 라이브러리 모음집 같은 것입니다.

~$ cd ~/work

~$ git clone git://github.com/richhickey/clojure-contrib.git

~$ cd clojure-contrib

~$ mvn package

~$ cp target/clojure-contrib*.jar ~/.clojure/clojure-contrib.jar


자 이제는 편하게 REPL 로 들어가는 스크립트를 만드는 순서 입니다.

~/.bash_profile 아래쪽에 다음과 같은 내용을 채워 넣습니다.

export CLOJURE_EXT=~/.clojure

PATH=$PATH:~/work/clojure-contrib/launchers/bash

alias clj=clj-env-dir


저장하고 Terminal 창을 종료했다가 다시 열어서 테스트를 해 줍니다.

~$ clj
Clojure 1.2.0-master-SNAPSHOT
user=> (System/getProperty "java.class.path")
"/Users/crazia/.clojure/clojure-contrib.jar:/Users/crazia/.clojure/clojure.jar"
user=>


위처럼 clojure.jar 와 clojure-contrib.jar 의 위치가 표시되면 만사 OK 입니다.

Clojure 와 clojure-contrib 의 업데이트는 굳이 설명할 필요가 없을 듯 하여 생략합니다.

+ Recent posts