|
오라클에서 데이터베이스 인스턴스를 추가/삭제하는 것은 dbca프로그램을 사용하면 편하다. 아마도 $ORACLE_HOME/bin/dbca 에 있을 것있다. 이 프로그램은 자바 기반의 GUI프로그램인데, 한국어를 주 언어로 사용하는 시스템에서는 글자가 다 깨지는 문제가 생길 수도 있다. 원인을 찾아보니 오라클의 내부 프로그램들이 오라클과 함께 딸려온 자체 JDK를 쓰는 것이 문제였다. 10.0.2.1에 딸려온 JDK가 1.4였다. 이놈하고 한글 인코딩하고 잘 안 맞나보다. 내용을 잘 모르던 초기에는 임시로 LANG환경변수를 en_US로 바꾼 다음 실행시켜 최소한 영어로라도 메시지를 보게 했는데, jdk를 1.5로 연결하여 실행시키니 한글이 제대로 나오게 되었다. 프로그램에서 참조하는 JDK경로는 설정파일에 따로 있는게 아니라, 각 실행파일 안에 하드코딩이 되어 있더라. 그래서 $ORACLE_HOME/jdk 디렉토리 이름을 바꾼 다음 내 리눅스의 jdk디렉토리를 가상링크를 걸어주는 것으로 해결했다. 오라클 디렉토리를 보면 jdk/jre가 있고 jre가 또 있다. 왜 이렇게 두 개가 있는지는 잘 모르겠는데 프로그램 두 개 빼고는 다 jdk/jre만을 참조하고 jre는 내부에 버젼 디렉토리가 따로 있고 그래서 jdk만 바꾸는 것으로 처리했다. 단, 실행되는 java버젼이 달라져서 생기는 부작용은 나도 책임을 못 진다. 아직 해결해야할 문제가 좀 더 있다. dbca로 인스턴스를 추가/삭제하는 것은 가능한데, 이미 존재하는 인스턴스의 설정 내용을 바꾸는 것이 잘 안 되더라. 상당수의 설정은 변경 불가로 되어 있던데 이것을 고쳐야한다. CPU를 40%나 쳐먹는 것을 고쳐야하는데 이제는 이 방법을 찾아봐야겠다. 예전에 썼던 iTerm에서 vi 쓸 때 방향키 사용하기에 이은, iTerm과 vim의 트러블슈팅 2탄이다. 쉘에서는 정상 동작하는데, vim에서 키패드의 숫자를 치면 숫자가 안 쳐지고 새로운 줄에서 q r s 등의 문자가 찍혀버린다. 이 것을 수정해보자. 출처는 http://swannie.net/index.php?title=Numeric+keypad+in+iTerm+with+vi&function=viewpage&pageid=24이다. 자세한 설명은 패스하고 /usr/share/vim/vimrc에 이 부분을 추가한다. if &term=="xterm" || &term=="xterm-color" set t_Co=8 set t_Sb=^[4%dm set t_Sf=^[3%dm :imap <Esc>Oq 1 :imap <Esc>Or 2 :imap <Esc>Os 3 :imap <Esc>Ot 4 :imap <Esc>Ou 5 :imap <Esc>Ov 6 :imap <Esc>Ow 7 :imap <Esc>Ox 8 :imap <Esc>Oy 9 :imap <Esc>Op 0 :imap <Esc>On . :imap <Esc>OQ / :imap <Esc>OR * :imap <Esc>Ol + :imap <Esc>OS - endif 맥이 아닌 다른 머신에 접속한 상태에서 vim를 쓰면 여전히 같은 문제가 발생할텐데, 리눅스라면 /etc/vim/vimrc를 고치던지, 자기 계정이 루트가 아니라면 ~/.vimrc파일을 생성(혹은 수정)하자. 이걸 보면 vim설정을 바꾸는 것 보다는 아이텀의 내용을 바꾸는 게 더 효율적이고 이치에 맞아 보이기는 한데... 그것까지 방법을 알아낼 시간 여유가 없어서 일단 놔둔다.
MacOS의 환경변수를 리눅스나 유닉스에서 하던 버릇대로 .profile이나 .rc 계열 파일에 하면 경우에 따라 적용이 안 될 수 있다.
사용자별 개인 환경 변수는 ~/.MacOSX/environment.plist 파일에 설정하면 (아마도 재 로그인 후에) 되는데, 버그인지 의도된 동작인지 Spotlight를 통해 접근하는 프로그램은 이것이 안 먹힌다고 한다. 시스템 전체에 통용되는 환경변수는 /etc/launchd.conf 파일로 설정한다. (재부팅 필요) 이 경우는 Spotlight에서도 잘 동작한다고 한다. 이 두 파일은 따로 설정하지 않으면 존재하지 않는 파일이다. 터미널 쉘에서 직접 생성하던지 하는 방법으로 만들어 쓰면 된다. plist파일은 xml포맷인데 애플의 FAQ를 참고해서 작성하면 될 것 같다. launchd.conf파일은 csh에서 하듯이 setenv형식으로 입력하면 된다. export가 되는지는 나도 테스트를 못 해봤다. 내가 본 블로그에서 setenv만 해 놔서 일단 따라하기만 급급했기 때문이다. 나중에 시간되면 export도 가능한지 확인해볼 생각이다. 약간 부연 설명을 하자면 리눅스는 프로세스가 shell에서 시작하는 것으로 추측이 된다. 그래서 X프로세스도 쉘에서부터 시작하기 때문에 그 환경변수도 그대로 넘어오는 것이 아닌가 싶다. 반면에 맥오에스는 파인더에서 실행되는 프로세스는 쉘을 안 거치고 WindowServer 에서 시작한다고 한다. 그렇기때문에 직접 터미널을 띄워서 실행한 경우를 빼면 profile과 rc파일에 설정한 환경변수가 안 먹히게 된다. 하지만 spotlight에서 실행시킬 때는 WindowServer를 안 거치나보다. 맥오에스의 모든 프로세스의 실제 부모 프로세스는 launchd 라고 하더라. 그래서 /etc/launchd.conf 에 설정을 한다고 한다. 최초의 내용은 http://www.dhptech.com/node/22 에서 봤고 이 쓰레드의 링크를 통해 알아낸 http://www.digitaledgesw.com/node/31 에서 더 자세한 내용을 찾을 수 있었다. 애초 시작은 eclipse에서 System.getenv() 메써드를 실행했을 때 null을 반환하길래 터미널에서 직접 컴파일해 실행해보니 잘 나오는 거였다. 그래서 이클립스 버그인 줄 알고 계정까지 등록해서 버그 리포트를 하려는 찰나, 샘플로 넣을 코드의 환경변수가 나 혼자만 쓰는 거라 모든 사람의 컴퓨터에 다 있을법한 PATH를 넣었는데, 그걸 가지고 실행하니 값이 나오더라ㅡ.ㅡ; 그런데 나온 결과가 내가 설정한 내용과 달리 시스템 처음 깔 때 기본으로 잡힌 내용만 나와서 부랴부랴 더 조사해보니 내가 삽질할 뻔 했다는 것을 알았다. 사실은 이미 getenv가 내가 예상했던 메써드가 아닌가 싶어서 다른 삽질로 코드를 구현해 놨었다ㅡ.ㅡ;; 그거를 다시 getenv써서 하는 것으로 고쳐야한다. ------------- 내용 추가 : 포스트를 쓰고 나서 다른 문제를 발견했다. launchd.conf나 environment.plist에서 정의한 환경 변수는 외부에서 ssh로 접속할 경우 적용이 안 된다. 이것도 나름대로 문제다. 어찌해야할까.
일 때문에 한 대의 머신에서 JEUS와 JBOSS를 동시에 띄워야할 일이 생겼다. 그런데 이 두 놈이 모두 8080포트를 차지하려고 하는 것이다. 그러다보니 당연히 먼저 실행해서 포트를 가져간 놈만 부팅이 되 버린다. 그래서 어느 쪽이던지 기본 포트를 바꾸려고 하려다보니 양쪽 매뉴얼이 다 불친절해서 포트번호 바꾸는 것을 안 가르쳐주더라.
그래도 영어만으로 소통해야하는 JBOSS보다는 제우스가 좀 더 친절할 거 같아서 문의를 했고 그 답을 얻었다. $JEUS_HOME/webserver/config/ws_engine.m 이 파일에서 포트를 바꾸면 된다. 물론 이 포트만 바꾼다고 제대로 두 개를 띄울 수 있는 것은 아니다. 다른 서비스에서도 포트 충돌이 나기 때문에 그것들도 모두 다른 포트로 설정해 주어야한다. 하지만, 천릿길도 한 걸음부터라고 일단 기본부터 해결했으니 다른 것도 하나하나 고쳐봐야겠다.
|
메뉴릿
메모장
카테고리
최근 등록된 덧글
이글루 링크
|