http://storymate.tistory.com/118

위의 방법으로 했을 때도 한글이 설정이 안되는 경우 (제 경우에 그랬습니다) 에 쓸만한 방법입니다. 저는 그냥 나눔고딕 폰트를 설치해 주니까 한방에 해결됐습니다.

$ sudo apt-get install ttf-nanum


폰트가 설정이 안되서 발생하는 문제처럼 보이더군요. 아 그런데 민트에서는 파이어 폭스가 훨씬 이쁘네요. 전 모든 북마크 세팅이 전부 크롬에 되어 있는지라 크롬을 메인으로 쓰고 있지만 (결국 크롬하고 파폭 두개를 다 쓰게 됐습니다)


  최근 각광받고 있는 Linux Mint 를 설치해봤습니다. 결론은 대 만족입니다.  우분투 또는 리눅스 OS 를 메인으로 사용하고 싶은 사람에게 강력하게 추천합니다.
 
  곁들여서 제 환경을 조금 이야기 하자면 저는 컴퓨터가 5대 있습니다. 집에서 쓰는 데스크탑 1대와 서버 1대 , 그리고 노트북 3대 입니다. 노트북은 각각 Macbook-Air , Macbook-Pro , Sony VAIO 입니다.

제가 컴퓨터를 고르는 기준은 일단 데스크탑은 'Power' 입니다. 강력해야만 합니다. 노트북을 고르는 기준은 '이쁨' 입니다. 진짜 수년동안 노트북을 써왔지만 작고 이쁜게 최고 입니다. 그래서 VAIO 를 사용했었는데 최근 아시는 분은 아시겠지만 돈값을 못합니다. 그래서 애플로 갈아탔습니다. 작고 이쁜 소니에서 작고 이쁜 맥으로 갔을뿐입니다. (저는 애플을 좋아하지는 않습니다)

 
  DeskTop - Windows 7
  Server - Ubuntu 12.04
  MacbookPro - Lion
  Macbook Air - Lion
  Sony VAIO - Ubuntu 12.04


  소니는 도저히 느려서 Windows 7을 사용할 수가 없더군요. CPU 가 무려 셀러론입니다. 이걸 160만원이나 받아 쳐(!)먹다니  소니는 망해야합니다. 60만원대의 사양에 100만원의 디자인 마진을 붙이다니 (이쁘긴 이쁩니다) 제정신이 아닙니다. 그에 비해 애플은 20-30만원정도의 디자인 마진을 붙이더군요. (용서해줄만 합니다)

OS 는 게임을 하고 문서작업을 할 때는 Windows 가 최고로 편하더군요. (제 개인 기준입니다) 그리고 개발을 할 때는 Debian 계열의 리눅스를 따라올 OS 가 없다고 감히 말씀드리고 싶습니다. Weblock 이라고 제가 참여하는 오픈 소스 프로젝트 개발 환경을 윈도즈 계열에서 세팅한 적이 있었는데 8시간 정도 걸리더군요. 그러나 우분투에서 딱 3분 정도 걸리더군요. 이걸 비교를 할 수야 있을까요?
 
  OSX 는 이쁘고 개발환경 세팅도 중간 정도고 몇개 게임은 돌아가는 딱 중간정도의 OS 입니다. 그래서 딱히 애플을 좋아하거나 OSX 를 좋아하지는 않지만 자주 애용을 해주고 있습니다.

  우분투 (Ubuntu)는 정말 많이 이뻐지고 많이 편해졌습니다. 그러나 OSX 를 사용하다가 사용하면 왠지 '구려'보이는 것을 참을 수가 없었습니다. 그런 의미에서 Mint 는 정말 최적의 OS 입니다. Debian 계열의 빠른 개발환경!! OSX 에 필적하게 이쁜 UI !! 두마리 토끼를 훌륭하게 따라잡았습니다.

간단하게 캡쳐를 떠 봤습니다.



  그래서 Sony VAIO 에 Ubuntu 를 밀고 Mint 를 설치해줬는데 저사양에도 불구하고 깔끔하게 동작하더군요. 다시 한번 만족했습니다. 저사양에서 윈도우 (Windows) 에 질려서 좀 색다른 OS 를 사용해보고 싶은분들 Mac 은 비싸고 또 새로 사야 해서 귀찮은 분들을 위해서 가지고 있는 '고물형' 노트북에도 완벽하게 깔리는 Mint 를 추천합니다. 게다가 Windows 를 사용하시던 분들을 포섭하기 위해서 Windows  같은 UI 도 존재합니다.


우분투 (11.10) 에서 Emacs 를 콘솔모드로 (Console Mode) 로 사용중입니다. 뭐 다 괜찮다고는 말할 수 없지만 그럭저럭 사용하고 있습니다. 그런데 단어 뒤로 옮기는 명령인 Meta-B 를 누를때마다 (보통은 Alt-B 를 누름) 터미널의 메뉴가 뜨는 것입니다. 당연히 사용하기 짜증이 나겠지요? 그 문제를 해결하는 방법입니다.

터미널 '메뉴' -> 'Edit' -> 'KeyBoard Shortcuts..' 로 이동해서

Enable menu access keys (such as Alt+F to open the File menu) 라는 것 앞의 체크박스를 해제 해 줍니다.


Meta-B 기능을 바로 사용하실 수 있습니다.


힘들게 저번 포스트 에서 정리를 했더니  더 쉬운 방법이 있다고 알려줘서 정리를 해 둡니다. (시작할 때 왜 알려주지 않은건가여.. )

저번과 거의 동일 합니다.

1. 아파치 설치하기 

$ sudo apt-get install apache2


2. 톰캣 설치하기 

$ sudo apt-get install tomcat7 tomcat7-docs tomcat7-admin tomcat7-examples


  설치해두면 언젠가는 쓸모가 있으니 한꺼번에 설치해줍니다. 

3. 제대로 설치됐는지 확인해보기 

   http://localhost  와 http://localhost:8080 

  으로 페이지가 제대로 뜨는지 확인해 줍니다. 만약 페이지가 제대로 뜬다면 apache2 와 tomcat7 은 제대로 설치된 것입니다. 

여기까지는 동일하고 여기서부터 살짝 바뀝니다.

4. 톰캣 에서 커넥터와 연결시키기 

$ sudo emacs /var/lib/tomcat7/conf/server.xml 


   에서 


       <!-- Define an AJP 1.3 Connector on port 8009 -->
       <!--
       <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
       -->


   로 되어 있는 부분에서 주석을 제거해서 

 

     <!-- Define an AJP 1.3 Connector on port 8009 -->
       <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


   로 변경합니다. 이것은 포트 8009 로 날라오는 프로토콜(protocol)이 AJP/1.3 인 것은 8443 포트로 넘기라는 것입니다.  8443은 톰캣 서버가 처리를 하는 포트라고 보시면 됩니다.   


5.  Proxy_AJP 모듈 활성화 시키기

소개해주신 분의 말씀으로는 아파치와 톰캣을 너무 자주 연결시키다 보니 아파치에 아예 포함되서 나오게 됐다고 합니다.

 $ sudo a2enmod proxy_ajp  



이 부분이 저번 포스트에서 언급했던 커넥터 부분과 동일한 기능을 하는 부분입니다.  

6. 아파치 에서 톰캣 연결시키기 

$ sudo emacs /etc/apache2/sites-available/default 


   이 부분에 대한 언급이 없어서 제일 어려웠던 부분입니다. 위의 파일을 열어서 


  

       DocumentRoot /var/www
   <Directory />
     Options FollowSymLinks
 AllowOverride None
   </Directory>
   <Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
  </Directory>


   인 부분을 찾아서 


DocumentRoot /var/lib/tomcat7/webapps/ROOT
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/lib/tomcat7/webapps/ROOT/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

        ProxyPass /servlet/ ajp://localhost:8009/servlet/
        ProxyPassMatch ^/.*\.(jsp|do)$ ajp://localhost:8009/

 로 바꾸어 줍니다. 즉 /var/www 을 /var/lib/tomcat7/webapps/ROOT 로 바꾸어 주는 것입니다. 그리고 아래쪽에 

ProxyPass /servlet/ ajp://localhost:8009/servlet/
ProxyPassMatch ^/.*\.(jsp|do)$ ajp://localhost:8009/

를 추가해줍니다. 부연 설명을 하자면 아파치(apache)가 바라보고 있는 DocumentRoot 와 톰캣이 바라보고 있는 webapps/ROOT 를 같은 곳을 바라보게 해주는 것입니다. 그리고 맨 아래에 추가해 준것은 jsp 와 do 로 끝나는 파일은 ajp 프로토콜로 8009 번 포트로 리다이렉션 해주라는 것입니다. 

 
7. 테스트페이지를 만들어 봅니다. 

$ sudo emacs /var/lib/tomcat7/webapps/ROOT/hello.jsp 


   내용은 

  

<HTML>
   <BODY>
   Hello!  The time is now <%= new java.util.Date() %>
   </BODY>
   </HTML>


  로 채우고 저장합니다. 

8. 톰캣과 아파치 재시작 (Restart)

$ sudo /etc/init.d/tomcat7 restart
  $ sudo /etc/init.d/apache2 restart



9. 브라우저에서 
   
    http://localhost  와 http://localhost/hello.jsp 로 테스트 해봅니다.


 
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 


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

 
RedHat Linux kernel 2.4.9 에서 JDK 1.4.1_01JDK 1.4.2_05 버젼을 돌릴때 보안 모듈에서 버그가 있습니다. Java 의 Secure Random 에서는 SSL 라이브러리를 쓰는데 이것에 버그가 있는 것입니다.

$JAVA_HOME/jre/lib/security/java.security 파일을 열어서

securerandom.source = file:/dev/random


securerandom.source=file:/dev/urandom

으로 수정해 주면 됩니다. 





서버(unix 계열) 일은 해야겠고 그러자고 Linux 를 깔자니 귀찮고,
그렇다고 항상 서버에 접속해서 일을 할 수는 없는 것이고.. 이럴때를 위한
획기적인 방법이 존재합니다.

바로 colinux 라는 솔루션입니다. vmware 에 가깝다고 보시면 되는데 가상의
리눅스 머신을 윈도안에서 띄우는 솔루션이지요. 자 이제 이것을 설치하면
서버머신이 없더라도 윈도에서 놀면서(!) 서버일을 할 수 있는 멋진 장점이
있습니다.

http://www.colinux.org/ 에서 좌측 프레임의 Downloads 링크를 따라가면
나오는 페이지에서 coLinux-0.7.3.exe 를 받아서 설치합니다.
설치중에 어디에다 설치할 것인지 물어보는 부분이 있는데 기본으로
"c:\Program Files\colinux" 입니다. "c:\colinux" 가 여러모로 편하다고
하지만 기본으로 해도 별 지장은 없습니다.

root file system 을 다운 받을까 하는 물음이 있습니다. 나중에 따로
받기가 매우 귀찮을 꺼라는 생각이 팍팍 들더군요. 다루기 쉬운 애로
받아서 깔도록 하지요. 전 'Debian XXX' 를 선택해서 받았습니다.

설치가 끝나고 '시작메뉴' 나 '프로그램 설치정보'를 찾아봐도 colinux 가
설치됐다는 정보가 없습니다. 조금 더 뒤져보면 "c:\Program
Files\colinux' 관련 파일들이 있다는 것을 알게 됩니다.

Debian-4.0r0-etch.ext3.1gb.bz2 이게 위에서 다운 받은 루트 이미지
입니다. 이것을 압축 해제 하고 나온 파일의 이름을 root_fs
수정합니다. 물론 이 파일은 colinux 가 설치된 곳에 저장이 되어야
합니다.여기까지 기본 준비는 끝나고 이제 실행에 옮겨보기로 하지요

"c:\Program Files\colinux" 로 이동해서 콘솔상에서
'colinux-daemon.exe @example.conf'

라고 실행합니다. 이건 어플리케이션 형태로 colinux 를
실행하는 방식인데, 뭔가 될려고 하다가 중지됩니다. "c:\colinux" 밑에
설치했다면 제대로 동작하지만 "c:\Program Files\colinux" 밑에 설치했으면
동작하지 않습니다. example.conf 파일을 열어보기로 하지요.
cobd0="c:\coLinux\root_fs" 라고 되어 있는 부분을 다음과 같이 바꾸어
줍니다.  cobd0="c:\Program Files\coLinux\root_fs" 다시 콘솔에서

'colinux-daemon.exe @example.conf'

라고 실행하면 colinux 가
부팅됩니다. 아이디 패스워드는 루트로 바로 접속이 가능합니다. root/root
이니 로긴해서 사용 아이디 만들어서 사용하시면 됩니다.

저는 어플리케이션 형태로 실행하는걸 테스트 목적으로 쓰고, 그 다음부터는
서비스 형태로 등록해서 필요할때만 서비스를 실행시켜서 리눅스를 부팅하고
사용하는 방법을 즐겨 합니다.  colinux 가 설치되어 있는 디렉토리
콘솔창에서

colinux-daemon.exe @example.conf --install-service "coLinux"

라고 입력합니다. 이러면 'coLinux' 라는 이름으로 서비스가 등록됩니다.

colinux-daemon.exe @example.conf --remove-service "coLinux"

하면 서비스가 해제됩니다.
서비스가 등록되어 있는 상태에서 리눅스를 부팅시키려면

net start "coLinux"

라고 콘솔에서 입력하시면 리눅스가 부팅이 됩니다. 그러면

colinux-console-nt.exe

를 실행해서 콘솔로 연결해서 사용이 가능합니다.



그냥 컴파일 하면 에러가 발생합니다.

> g++ -o test test.cpp -lcppunit
> ./libcppunit.so: undefined reference to `dlclose'
> ./libcppunit.so: undefined reference to `dlopen'
> ./libcppunit.so: undefined reference to `dlsym'
> collect2: ld returned 1 exit status
> make: *** [test] Error 1



이런 에러 인데 , 기존의 윈도우 체제랑은 달라서 조금 당황합니다. 침착하게 -ldl 옵션을 link 옴션에서 추가해 주시면 무리 없이 컴파일 됩니다.
제가 무식한 탓인지 저는 리눅스의 가장 기초적인 쉘을 잘 못 씁니다.
편리한 툴에만 익숙해져 있기 때문입니다. (그렇다고 쉘이 편하지 않다는게 아닙니다!!)

유닉스 친구계열들을 보면 환경변수에 값들을 등록시켜서 쓰는데 그 문법이

crazia>NAME=crazia
crazia>export NAME

식으로 등록합니다. 이걸 편하게 하기 위해서 shell 로 여러가지 환경 변수를 등록시키기 위해서 shell 로 작성을 합니다.

#!/bin/bash

export NAME=crazia
export HOBBY=game
export HOBBY2=sleep

이 shell 을 my.sh 라고 작성해서 실행 옵션을 줘서 실행시키면 아무 동작을 안합니다.

결국 이거저거 시도하다가 알아낸 방법은
source ./my.sh 라고 해주면 바로 적용이 됩니다.

이 글은 나중에라도 혹시 또 명령어를 까 먹을까봐 글을 남기는 것입니다 ^^;

+ Recent posts