윈도우즈 같은 곳에서 파일이름에 한글이 포함된 파일들을 압축해서
이것을 linux에서 unzip으로 풀면 한글파일이름이 깨진다.
정석은, unzip을 패치해서 다시 컴파일해서 설치하면 된다. (하지만,
대부분의 프로그램이 패키지로 설치된 마당에 이 놈만 컴파일해서
깐다는 것이 귀찮고, 이걸 패키지로 만들어서 설치하자니 더 귀찮다. -.-;;)

다른 꽁수로 아래의 글이 도움이 된다.

http://free4u.wowdns.com/weblog/stories.php?story=03/06/08/6481394

이곳에 그냥 옮기자면, zip -F archived.zip 과 같은 식으로 한글파일이름이
포함돼 있는 압축파일을 처리하면 적당히 처리를 해준다.
이후에는 그냥 unzip 으로 압축 풀면 한글이 잘 나온다.
  
트랙백   |  댓글   |
exim4에서는 보내는 메일 요청이 들어올 때 요청을 한 컴퓨터에
ident 서비스를 요청한다. 요청에 대한 답이 없으면 10여초간 기다렸다가
메일을 보낸다. 그런데 문제는 대부분의 windows 머신은 저 ident 라는
포로토콜을 처리해주지 않는다. 그러니 메일 보낼 때마다 10여초씩 기다려야
한다. 짜증이다.

windows의 문제긴 하지만 해결은 해야 한다.

exim4 설정파일 (/etc/exim4/exim4.conf) 에서
---------------
#rfc1413_hosts = *
#rfc1413_query_timeout = 30s
---------------
이런 부분을 찾아서
---------------
rfc1413_hosts = *
rfc1413_query_timeout = 0s
---------------
이렇게 바꿔준다. 그러면 ident call을 하지 않는다. 결과적으로 메일을
바로바로 보낸다.
  
트랙백   |  댓글   |
/etc/c-client.cf 라는 파일을 하나 만들고 거기에 다음의 한 줄을 추가한다.

set disable-plaintext nil

그런데, debian에서라면 문제가 좀 거시기하다. 웹 서치를 해 본 결과
데비안 개발자들이 생각하기에 저 방법이 너무 쉽다고 한다. -.-;;
그래서 데비안에서라면 한줄을 더 추가해야 한다.

I accept the risk
set disable-plaintext nil

이렇게 하면 된다. -.-;;;;;;;; 데비안이 여태껏 제일 선호하는 배포판이었는데
저것때문에 실망했다. 뭐, 어쨌든 그래도 데비안 쓸 거긴 하지만...
  
트랙백   |  댓글   |
windows와 linux는 default charset encoding이 다르다.
그래서 그냥은 한글 파일 이름들이 호환이 안된다.
/etc/samba/smb.conf 에 다음과 같은 한줄을 [global] 어디엔가에 추가한다.

unix charset = euc-kr
  
트랙백   |  댓글   |
Debian의 mysql 설정 파일 중에 /etc/mysql/my.cnf 에 보면

# For compatibility to other Debian packages that still use
# libmysqlclient10 and libmysqlclient12.
old_passwords = 1

이라는 줄이 있다. 바로 위의 comment 내용은 옛 버젼의 다른
관련 패키지와의 backward compatibility를 위해서 저 line을
삽입했다는 것인데, 이것이 최근 버젼의 mysql 패키지에서 인식하지
못하는 옵션이라는 것이 문제다. 그래서 패키지 업데이트할 때마다
mysql이 안 떠서 손수 저 line을 comment 처리하고 mysql을
새로 시작해 주어야 한다. Debian bug tracking system에도 올라와
있다는데 언제 제대로 고쳐질런지. 쩝...
  
트랙백   |  댓글   |
원래 기숙사에서 사용하던 neoworld.lbird.net이라는 머신에서는
이메일을 보내고 받고 하는 데에 Mutt라는 녀석을 사용했었다.
neoworld 머신이 Debian/Linux라서 gpg나 mutt를 설치하는 데에
별로 신경 쓸 것이 없고 mutt의 설정파일에 몇 줄만 추가해주면
바로 gpg를 통해서 PGP 기능을 쓸 수 있었다.

그런데 얼마전부터 gmail을 제외한 모든 메일을 랩에 있는 컴(Win XP)에서
Mozilla Thunderbird를 통해서 사용하는데 Thunderbird는 기본적으로는
PGP를 지원하지 않는다. 찾아보니 Enigmail이라는 Mozilla/Netscape/Thunderbird
용의 Extension이 나와 있었다. 그래서 설치한 과정을 좀 설명해 보도록 하겠다.

1. download
http://enigmail.mozdev.org/download.html 에서 Enigmail을 download한다.
download할 것은 다음의 두 가지이다:
http://downloads.mozdev.org/enigmail/enigmail-0.86.1.xpi
http://brunschwig.net/enigmail/enigmime-0.86.1-tb-win32.xpi
만약 웹 브라우져로 Mozilla Firefox를 사용한다면 저 파일들을
그냥 마우스로 왼쪽 클릭하면 안된다. 그러면 Firefox의 extension으로 간주하고
설치하려 들기 때문이다. 그러니 Save Link As.. 를 선택해서 하드디스크에
다운로드한다.

이외에 gpg를 설치하기 위해서 www.gnupg.org에서 gpg의 win32 버젼을
다운로드한다:
http://www.gnupg.org/(en)/download/index.html#auto-ref-1
위의 페이지에 가면 win32 용으로 컴파일 된 binary를 다운로드할 수 있고,
아래의 링크를 이용해도 된다.
ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-1.2.5.zip

2. gpg install
우선 gpg를 설치한다. setup.exe를 실행하면 자동으로 설치되는 형식이
아니라서 수동으로 설치해야 한다. 하지만 설치는 상당히 쉽다.

gnupg-w32cli-1.2.5.zip 라는 압축파일을 푼다. 다양한 방법으로 압축을
풀 수 있겠지만 읽는 사람이 알아서 잘 할 수 있으리라 본다. 압축은
일단 아무 데나 풀어도 된다.

이제 그 폴더에서 gpg.exe, gpgkeys_ldap.exe, gpgv.exe 의 세가지 파일을
C:\WINDOWS 와 같은 곳에 복사해 넣는다. 저 위치에 넣어야 하는 이유는
없는데, 다른 데에 넣어도 어차피 Enigmail에서 gpg.exe의 위치를 지정하도록
되어 있기 때문이다. 뭐, 그래도 일단 gpg의 설치 가이드에 따라서 일단
path가 걸려 있는 저 위치에 넣는다.

마지막으로 keyring (열쇠고리)이 저장될 장소를 골라야 한다. 나의 경우는
D:\lbird\gnupg 라는 위치에 넣기로 했다. 이 장소는 아무데나 고르면 된다.
일단 위와 같은 폴더를 생성한 다음에 registry를 약간 손봐야 한다.

윈도우 메뉴의 "실행"에서 regedit를 실행하고
HKEY_CURRENT_USER -> Software -> GNU -> GnuPG 의 위치에 항목 하나를
추가해야 하는데, Software 까지는 이미 있을 것이고, 그 아래에 GNU라는
항목이 없다면 하나 만든다. 오른쪽 클릭해서 "새로 만들기 => 키"를
선택하고 GNU라고 입력한다. GNU라는 키가 생겼고 이제 이 아래에
GnuPG라는 키를 만들어야 한다. GNU를 클릭한 다음에 오른쪽 클릭, 그리고
"새로 만들기 => 키"를 선택하고 GnuPG라고 입력한다. 이제 GnuPG를
선택하고 오른쪽 클릭 "새로 만들기 => 문자열"을 선택한다. 문자열의 이름은
HomeDir 라고 입력하고 HomeDir을 오른쪽 클릭 수정을 선택하고 위에서 만든
keyring이 들어갈 디렉토리의 위치를 적어준다. 주의할 점은 디렉토리의
이름을 적을 때 \ (back slash) 대신에 / (forward slash)를 사용해야 한다는
것이다. 그러니까, D:\lbird\gnupg 라고 적지 말고, D:/lbird/gnupg 라고
적는다.

이제 gpg의 설치는 끝났다.

2. Enigmail install
위에서 다운로드한 enigmail-0.86.1.xpi와 enigmime-0.86.1-tb-win32.xpi를
설치해야 한다. Thunderbird를 실행하고 메뉴에서 Tools => Extensions 를
선택한다. Etensions 창이 뜨면 Install을 누르고 enigmail-0.86.1.xpi 의
위치를 선택하고 unsigned 라고 빨간 글씨가 뜨겠지만 그냥 설치한다. :P
그리고, enigmime 도 역시 같은 식으로 설치한다.

Enigmail의 설치가 끝났다.

3. PGP key 설정
키를 새로 생성해도 되고 이미 만든 것을 가져와도 되는데
만드는 방법은 gpg 의 설명을 참고하도록 한다.

나의 경우에 neoworld 라는 머신에 이미 키를 생성해 놓은 것이 있어서
gpg -a --export KEYID > yhgogo.pub
gpg -a --export-secret-key KEYID > yhgogo.sec
를 이용해서 일단 key를 export 했다. 앞의 것은 나의 public key, 뒤의 것은
나의 secret key이다. public key야 그냥 막 옮겨도 되지만 secret key는
안전하게 옮겨야 한다. 나의 경우 neoworld 머신에 ssh을 통해서 접속하기
때문에 cat으로 yhgogo.sec 의 내용을 화면에 뿌린 다음에 이걸 긁어서
랩에 있는 머신에서 새로운 텍스트 파일을 만들어서 붙여넣기를 했다.
물론 public key도 같은 방법으로 옮기면 된다.

이제 랩에 있는 머신에 key를 import 해야 한다.

"시작 => 실행" 에서 cmd.exe를 입력해서 콘솔을 띄운 다음에
gpg --import yhgogo.pub
gpg --import yhgogo.sec
를 이용해서 import 한다. 물론 gpg를 실행하는 곳에는 위의 파일들이
없을 것이므로 완전한 경로명을 적어주거나 파일이 있는 장소로 옮겨가서
실행한다.

key의 설정이 끝났다.
방금 import한 키를 Thunderbird에서 사용할 거라면
gpg --list-keys
를 이용해서 KEYID를 확인해둔다. KEYID는 영숫자 8자로 되어 있다.

4. Thunderbird 설정
Thunderbird를 다시 실행하면 메뉴에 Enigmail이라는 메뉴가 생겼을 것이다.
Enigmail=>Preferences 를 선택한다. GnuPG executable path에
C:\WINDOWS\gpg.exe 를 입력한다. 아니면 Browse를 눌러서 gpg.exe 가 있는
위치를 선택해 줘도 된다. 나머지는 입맛에 맞게 설정한다.

각 계정의 설정을 해줘야 하는데, Tools=>Account settings 에 가보면
각 계정마다 이전에는 없던 OpenPGP Security라는 항목이 생겼을 것이다.
이 항목을 누르고 Enable OpenPGP support (Enigmail) for this identity 를
체크한다. 앞에서 키의 아이디를 확인했다면 직접 적어주거나, 혹은 Select Key를
눌러서 목록에서 선택한다. Message Composition Default Options 는 입맛에
맞게 선택한다. 나의 경우는 non-encrypted message의 경우 서명을 하도록
설정했다.

끝났다.

5. 시험
Write를 눌러서 메일을 하나 작성한다. 계정이 여러개라면 앞에서 key를 설정한
계정을 선택하고 메일을 작성한 다음에 툴바에서 OpenPGP를 누른다. 이미 위에서
설정을 했으므로 Sign Message/Encrypt Message 와 Use PGP/MIME를 선택하는
창이 뜬다. 여기서 나의 경우는 Sign만 하고 PGP/MIME을 사용하도록 선택했다.
그러면 창 오른쪽 아래에 두개의 아이콘 중에서 서명 아이콘이 컬러로 변하고
암호 아이콘은 흑백으로 남아 있게 된다.

이제 보통 메일을 보내듯이 보내면 된다.

끝이다. 잘 쓰는 일만 남았다.

보너스. 다른 사람 키 가져오기
다른 사람이 보낸 메일이 PGP로 서멍되어 있다면 그 사람의 공개키가
있어야지 그 서명을 확인할 수가 있다. 서명된 메일을 열면 상단에
Engimail: 옆에 현재 서명 상태가 나온다. 이때 오른쪽에 연필 아이콘을
누르면 좀더 자세한 메시지가 나온다. 만약 서명한 사람의 공개키가
현재 없다면 공개키를 키서버에서 찾아보겠냐고 물어본다. 그러겠다고
하면 잠시 후에 공개키를 받아서 설치한다.

이제 PGP 쓰는 사람들을 많이 사귀는 일만 남았다. :)

'기타' 카테고리의 다른 글

M$ Word (M$ Office) 음성 인식 기능 해제  (2) 2006.05.23
한글 fixedsys 역슬래쉬 패치  (0) 2005.12.19
io buffer의 차이  (0) 2003.12.13
포스비의 인증방식  (0) 2003.11.01
jIRC  (0) 2003.08.24
  
트랙백   |  댓글   |
perl의 경우 자체적으로 io buffer를 사용하는 것으로 보인다. 아님 말구..

어쨌든, perl에 있는 file system 관련 function들 중에는 io buffer를 사용하는
것들과, io buffer를 bypass하는 것들이 있다. 이것들을 섞어서 쓰면 당연히
문제가 된다. 현재 posb의 웹 소스의 경우가 그렇다. 그런데, io buffer를
사용하지 않는 function을 call하기 직전/직후에 io buffer가 flush된다면
괜찮다. 생각해 보면, "직후"의 io buffer flush는 없어도 될 듯하다. 어차피
io buffer가 flush됐으므로 io buffer를 사용하는 function들도 새로 buffer를
채워야 하니까.

지금 내가 알아본 바로는, flock() 같은 function은 io buffer를 flush하는
side-effect를 가진 것으로 보인다. 지금 Posb의 경우에 io buffer를 사용하지
않는 syswrite()을 자주 사용하고 있는데, 대부분의 경우에 syswrite()이
call되기 직전에 flock()를 call하고 있다. 몇몇 곳에서 그렇지 않은 부분이
있는데, 이번에 아이디 발급 코드의 버그도 거기에서 비롯된 것으로 보인다.
지금은 일단 그런 곳들을 찾아내서 syswrite()이 call되기 직전에 flock()를
부르게 하거나, 혹은 역시 io buffer를 사용하지 않는 sysseek()을 사용하였다.

그런데, 아직도 문제가 있다. 뭔가, 아직 발견하지 못한 다른 요인이 있는
모양이다. 머리털 빠지겠다. 다행히 숱이 많다지만.. ㅋㅋ

'기타' 카테고리의 다른 글

한글 fixedsys 역슬래쉬 패치  (0) 2005.12.19
Mozilla Thunderbird에서 PGP (GnuPG) 사용하기  (0) 2004.10.03
포스비의 인증방식  (0) 2003.11.01
jIRC  (0) 2003.08.24
웹 포스비의 UID.  (0) 2003.04.19
  
트랙백   |  댓글   |
perl을 통해서 binary data를 만들 때 주의할 점은 endian 문제이다.
perl에는 pack/unpack이라는 함수가 있는데 pack이라는 함수가
포스비 웹을 linux에서 돌리는 데 문제가 되었다. pack은 perl 에서
정의된 variable의 값을 file에 'write' 할수 있도록 바꿔준다.
포스비의 read action이 일어날 때 조회수를 읽어서 이것을
하나 증가시킨후에 다시 쓸 때에 어떤 conversion 방식을 사용하는가가
문제였다. 기존의 Sun 머신에서는 "S"를 사용했었는데 문제가 안 됐다.
그런데, intel 머신에서는 endian 문제로 말썽이다. "S"를 사용하면
아마도 big endian의 순서에 맞추어서 변환되는 것 같다. "V"를 사용하면
little endian 순서로 변환한다고 한다.
  
트랙백   |  댓글   |
포스비에서 사용할 인증방식을 고민하다가 password-based protocol들을 살펴보게
됐다. 그런데 이런 암호학적인 프로토콜들을 사용하려면 작은 계산이긴 하지만 클
라이언트에서 어느정도 계산을 해야 한다.

두가지 방식이 있겠다.
1. 자바스크립트를 이용해서 클라이언트에서도 계산을 한다.
2. 클라이언트에서 전혀 계산을 안한다. 자바스크립트가 필요 없다.
새로운 프로토콜을 생각해 내야 한다.

흠.. 어떤 게 더 좋으려나.

'기타' 카테고리의 다른 글

한글 fixedsys 역슬래쉬 패치  (0) 2005.12.19
Mozilla Thunderbird에서 PGP (GnuPG) 사용하기  (0) 2004.10.03
io buffer의 차이  (0) 2003.12.13
jIRC  (0) 2003.08.24
웹 포스비의 UID.  (0) 2003.04.19
  
트랙백   |  댓글   |
포스비의 채팅 시스템을 대체할 것을 오랫동안 생각(만) 했었는데
오늘 돌아다니다가 jIRC라는 것을 다운 받았다.
생각 외로 아주 훌륭했다. 이것으로 telnet 유저와 web 유저간의
채팅 실현도 수월해질 것 같다.

http://www.jpilot.com

'기타' 카테고리의 다른 글

한글 fixedsys 역슬래쉬 패치  (0) 2005.12.19
Mozilla Thunderbird에서 PGP (GnuPG) 사용하기  (0) 2004.10.03
io buffer의 차이  (0) 2003.12.13
포스비의 인증방식  (0) 2003.11.01
웹 포스비의 UID.  (0) 2003.04.19
  
트랙백   |  댓글   |
기존의 웹 포스비를 말하는 것은 아니고, PosB 2000 에 함께 사용할 웹 인터페이스를
만들어야 한다. 예전에 PosLUG 서버에서 몇명이 만들어 놓은 아주 기초적인
routine들이 있었지만, 현재 PosLUG 서버가 맛이 가 있는 관계로 그 소스를 언제
꺼낼 수 있을지 보장이 없다. 사실, 그 routine들이 마음에 안 들기도 했고.. ^^

지금 포스비에서는 web daemon이 posb라는 user의 권한으로 돈다. 그래서
글을 읽고 쓰고 글 정보를 수정하고 하는데 지장이 없다. 현재 포스비 서버에서
웹을 사용하는 것이 포스비 밖에 없으니까.
그런데, 이녀석을 내 컴으로 옮기고 시험을 하면서 개발을 하려고 했더니
당장 웹 데몬의 UID가 문제다. 이미 내 홈페이지를 돌리고 있으니 웹 서버의
UID는 www-data의 것을 써야 하는데, terminal용 client는 posb라는 user로
동작한다.

그래서.. 결국, 별로 바람직하지는 않지만, 이렇게 했다.
posb:posb로 기존의 terminal용 client를 돌리고, 기존의 모든 포스비용 file들은
posb:posb의 소유주를 갖는다. 그리고, posb라는 그룹에 www-data를 추가한다.
그리고, 모든 포스비용 file에 SGID를 설정한다. 그러면, 웹 데몬이 포스비의
file들을 건드릴 수 있다. 새로운 file을 만들더라도 www-data:posb 의 소유주를
갖게 될 것이기 때문에 terminal용 client가 접근하는데 문제가 없다.

하지만.... 역시나 그다지 바람직한 방법은 아니다. -.-;;;
제일 좋은 방법은 www daemon을 별도로 띄워서 하나는 기존의 www-data로
동작하고, 하는 posb로 동작하게 하는 것이지만, 아직 방법을 알아보지 못했다.

냠...

'기타' 카테고리의 다른 글

한글 fixedsys 역슬래쉬 패치  (0) 2005.12.19
Mozilla Thunderbird에서 PGP (GnuPG) 사용하기  (0) 2004.10.03
io buffer의 차이  (0) 2003.12.13
포스비의 인증방식  (0) 2003.11.01
jIRC  (0) 2003.08.24
  
트랙백   |  댓글   |
포스비의 Postechian 보드가 맛이 갔었다. 글목록의 정보가 담긴 .DIR이란 file이
사라져 버렸는데, 예전에 rebecca라는 해커가 글목록이 맛이 갔을 경우에 복구하는
툴을 만들었었다. 그런데, 이 작은 프로그램을 컴파일하려니 안되는 것이다.
이 프로그램에서 scandir()이라는 function을 사용하는데 이것이 현재 포스비에
설치된 라이브러리에 없었다. 처음에는 scandir()과 함께 사용하는 alphasort()라는
function만 없는 줄 알았더니 scandir()자체가 없으니 당황스러울 수밖에 없었다.
어쩐다. man page를 읽어보니 BSD계열이 아니면 scandir()의 사용을 자제하라는
정도만 있다. 하지만, 대부분의 리눅스에서 사용하는 glibc에는 이 function이
정의돼 있다. 냠.....

결국, glibc source를 가져다가 scandir()의 부분을 긁어서 복구용 툴의 소스에
가져다 붙였다. 그리고, 포스비의 라이브러리 환경에 맞추어 변수를 들을 바꾸어주고
에러 처리에 관계된 몇개의 줄을 삭제하고 컴파일했다. 음.... 동작한다. 캬캬..
좀더 향상시키자면, 시스템 라이브러리에 scandir()이 정의돼 있는 경우와 그렇지
않은 경우에 구분해서 사용하도록 #ifdef 같은 것들을 넣을 수도 있겠지만,
어차피 1년에 한번 사용할까 말까 하는 프로그램이라 귀찮아서 그냥 뒀다.
그리고, 사실 조만간 새로운 머신에 새로운 포스비가 up and running할 것이기 때문에,
저 프로그램 자체가 소용이 없어질 것이다.

'Linux & Unix' 카테고리의 다른 글

Debian에서 mysql 시작 에러  (0) 2005.10.04
perl과 endian  (0) 2003.11.16
linux에서 방송하기.  (0) 2003.02.16
mutt에서 text/html 보기.  (0) 2003.01.27
vim 에서의 del key와 bs key  (0) 2003.01.19
  
트랙백   |  댓글   |
linux 에서 방송을 하기 위해서는 일단 두가지가 있어야 한다.

1. 방송 서버 : icecast가 거의 독보적인 존재다.
2. streamer : encoder라고 부르기도 하고, source 라고 부르기도 한다.
icecast와 함께 사용하기 좋은 liveice 라는 놈이 있다.

streamer ----> casting server ----> listener

요런 형태가 된다. streamer와 casting server는 꼭 같인 리눅스 머신에
있을 필요도 없고, streamer의 경우 꼭 리눅스 위에서 돌아가는
녀석일 필요도 없다. 예를 들면, casting server는 따로 돌리고,
window 에서 winamp 같은 녀석으로 casting server에 stream을 날려도
된다.

쨌든..

나의 경우, 방에는 나의 전용 web + casting server 가 있고,
내 몸은 랩에 있는 내 책상에서 win2000 머신에 앉아 있는 경우가
대부분이다.

내 리눅스박스는 데비안 sid를 사용하고 있다. 그래서 편하게 deb package로
만들어져 있는 icecast, liveice를 설치했다. 물론, 설정은 직접
해줘야 한다.

'Linux & Unix' 카테고리의 다른 글

perl과 endian  (0) 2003.11.16
Solaris에서 scandir( ) 사용하기.  (0) 2003.04.19
mutt에서 text/html 보기.  (0) 2003.01.27
vim 에서의 del key와 bs key  (0) 2003.01.19
debian sid 에서 한글 사용.  (0) 2003.01.16
  
트랙백   |  댓글   |
mutt에서 text/html로 된 메일 내용을 보기 위해서는
-----------(전략)------------
auto_view text/html
-----------(후략)------------
와 같은 내용이 home directory의 .muttrc라는 화일 어딘가에
있어야 한다.
그런데, 이것만 가지고는 부족하다. mutt가 terminal based
mail client라는 것을 감안한다면, text/html 의 내용을
역시 terminal에서 보여줄 수 있는 프로그램으로 제대로
연결해 주어야 한다. 이것은 /etc/mailcap 이라는 화일을
수정함으로써 해결할 수 있다.
/etc/mailcap은 여러가지 mime-type 에 대한 handler들을
정의해 주는 화일이다.

Debian sid 의 경우에 /etc/mailcap 의 앞쪽에는
------------------(전략)------------------------
########################################################################
#
# User section follows: Any entries included in this section will take
# precedence over those created by "update-mime". DO NOT CHANGE the
# "User Section Begins" and "User Section Ends" lines, or anything
outside
# of this section!
#

# ----- User Section Begins ----- #
# ----- User Section Ends ----- #

########################################################################
------------------(후략)------------------------
와 같은 내용이 있다. 즉 User Section 이라는 곳에
사용자가 마음대로 이것저것을 넣을 수 있다. 이후의
내용은 system default가 된다.
Debian sid 에서는 terminal의 경우에 system default로
w3m을 통해서 text/html 을 보여준다. 그런데, sid 에 있는
w3m은 multibyte 문자를 제대로 처리해주지 않기 때문에
보는데 불편함이 있다. w3m의 multibyte version인 w3mmee를
사용하면 되는데, system default인 w3m 보다 우선권을 갖게
하기 위해서 w3mmee에 해당하는 내용을 User Section에 넣는다.

# ----- User Section Begins ----- #
text/html; /usr/bin/w3mmee -dump -T text/html '%s'; copiousoutput;
description=HTML Text; nametemplate=%s.html
# ----- User Section Ends ----- #

와 같이 넣어준다.

물론, w3mmee 라는 이름으로 w3m이 깔려 있어야 한다. -.-;;; 당연하지..

정상적인 상황이라면,,,,, 다 잘될 거고.. 나도 잘 된다. 음하하.

'Linux & Unix' 카테고리의 다른 글

perl과 endian  (0) 2003.11.16
Solaris에서 scandir( ) 사용하기.  (0) 2003.04.19
linux에서 방송하기.  (0) 2003.02.16
vim 에서의 del key와 bs key  (0) 2003.01.19
debian sid 에서 한글 사용.  (0) 2003.01.16
  
트랙백   |  댓글   |
상황:
Debian sid 에서 기본적인 terminal type은 xterm-debian 이다.
그런데, xterm-debian을 사용하면 hanterm 과 같은 곳에서
사용하기에 귀찮은 점이 좀 있다. 그것이 무엇인가 하면..
예를 들어 shell에서 이러저러한 것들을 작업하다가
vim 를 띄워서 잠깐 일을 한 다음에 vim 을 종료하면 화면에
vim의 찌꺼기가 그대로 남아 있다는 것이다. 그래서
이걸 해결하기 위해서 default terminal type을 xterm-color로
바꾸면 되지만.. 다른 문제가 생긴다.

문제:
terminal type이 xterm-color 일 때는 vim 에서 backspace key와
delete key가 서로 반대로 동작한다는 것이다.
그래서 vim의 help를 읽어보면 좀 귀찮은 배경이 있음을 알게된다.
그 귀찮은 배경이 무엇인가는 여기에 설명하지 않기로 한다.

원인:
말 그대로다. xterm-color를 사용할 경우에 bs key와 del key가
반대로 먹는다. xterm-color의 key definition이 반대로 내려져
있는 것으로 보인다.

해결:
그래서.. 다소 무식한 방법을 사용하기로 했다. 어차피 시스템의
모든 사용자가 동일한 문제를 겪게 될 것이므로 system default인
/etc/vim/vimrc file을 수정한다.
이 화일의 제일 끝에 다음의 두 줄을 삽입한다.

set t_kb=^H
set t_kD=^?

여기서 주의할 점은, ^H와 ^?를 그냥 입력하는 것이 아니라는 것이다.
set t_kb= 까지 입력한 다음에 ctrl+v 를 입력한다. 그러면 화면에
^ 가 생기는데 이때 backspace key를 누르거나 혹은 ctrl+H 키를
누른다. 마찬가지로 ^?도 ctrl+v 다음에 delete key를 누른다.

현재:
잘 된다. :)

'Linux & Unix' 카테고리의 다른 글

perl과 endian  (0) 2003.11.16
Solaris에서 scandir( ) 사용하기.  (0) 2003.04.19
linux에서 방송하기.  (0) 2003.02.16
mutt에서 text/html 보기.  (0) 2003.01.27
debian sid 에서 한글 사용.  (0) 2003.01.16
  
트랙백   |  댓글   |
발견된 증상 :
방에 있는 컴에 Debian sid 를 깔았다.
그런데, X 에서 ami 를 띄울 수가 없는 것이다.
띄울려고 하면 Xlib 가 한글 locale 지원하지 않는다고 한다.

발견한 원인 :
원인은 간단한 것이었다. 말 그대로 Xlib 가 "현재"의 한글
locale을 지원하지 않는 것이었다. 그런데, 여기서 문제가 있다.
현재 Debian sid 에서 locales 라는 패키지를 설치하면
시스템에 설치할 locale을 고르고 어떤 것을 default로 할 것인지
선택하게 한다. 그런데, 여기에는 ko_KR.EUC-KR 에 해당하는
locale이 있다. 이것으로 locale을 설정하면 대부분의
terminal based software에서 한글을 문제없이 사용할 수 있다.
그런데, X window 에서는 문제가 발생한다.
/usr/X11R6/lib/X11/locale/locale.alias 라는 file에는
여러가지 locale 이름들을 실제로 X library가 사용할
locale로 연결해주게 되는데 이 file에 문제가 있었다.
file의 앞 부분에는

(전략)
ko ko_KR.eucKR
ko_KR ko_KR.eucKR
ko_KR.EUC ko_KR.eucKR
ko_KR.EUC-KR ko_KR.eucKR
ko_KR.euc ko_KR.eucKR
ko_KR.euckr ko_KR.eucKR
ko_KR.utf8 ko_KR.UTF-8
(후략)

이러한 정보들이 있어서 현재 시스템 default로 되어 있는
ko_KR.EUC-KR 이 X에서 실제로 사용하는 ko_KR.eucKR 로 연결이
되는 것처럼 보인다.
그런데, 이 file의 뒷부분에 보면 이런 내용이 있다.

(전략)
ko: ko_KR.eucKR
ko_KR: ko_KR.eucKR
ko_KR.EUC: ko_KR.eucKR
ko_KR.euc: ko_KR.eucKR
ko_KR.euckr: ko_KR.eucKR
ko_KR.utf8: ko_KR.UTF-8
(후략)

그렇다. 앞부분의 내용은 뭔가 잘못 만들어진 것이고 실제로는
이 뒷부분에 있는 것을 참조하고 있는 것이다. -.-;;;;
어쩌다 이런 일이 발생했는지는 모르겠지만, 어쨌든 나는
문제를 해결해야 했다.

해결책 :
물론, 저 locale.alias 라는 file을 고치면 제대로 문제를
해결하는 것이 되지만, 저 화일은 패키지에서 설치한 녀석이기
때문에 나중에라도 X window 관련 패키지가 update되면
문제가 생길 수가 있다. 그리고, 내가 대부분의 문제를 해결하는
방식이 시스템에 있는 화일들을 가능하면 적게 바꾸면서
해결하는 것이라서리...
/etc/environment 라는 화일에 저장되어 있는
시스템 default locale을
LANG=ko_KR.EUC-KR
에서
LANG=ko_KR.eucKR
로 바꿨다.

현재 :
이제는 terminal에서의 한글 사용과 X 에서의 한글 사용에
둘다 문제가 없다. :)

'Linux & Unix' 카테고리의 다른 글

perl과 endian  (0) 2003.11.16
Solaris에서 scandir( ) 사용하기.  (0) 2003.04.19
linux에서 방송하기.  (0) 2003.02.16
mutt에서 text/html 보기.  (0) 2003.01.27
vim 에서의 del key와 bs key  (0) 2003.01.19
  
트랙백   |  댓글   |
 이전  123   다음 

최근댓글
fotowall :: ncloud RSS Feeds today :    yesterday :
total :