삽질기가 너무 썰렁하여 MoniWiki에 써 놓았던 것을 여기에 옮겨 옴 -.-;;


A2
: 다음의 방법은 어떨까요. 각 페이지에 #private이라는 instruction을 넣음으로써 개인적인 페이지로 설정하는 방법입니다. 대충 말하자면 #private이라는 instruction이 있는 페이지는 read_private이라는 permission이 있어야 볼 수 있도록 하는 방식입니다.

wiki.php에서 대충 다음 부분을 찾아서 고칩니다. (#inserted부터 #end of inserted까지를 삽입합니다.)

$formatter->pi=$formatter->get_instructions($dum);
if ($DBInfo->body_attr)
$options['attr']=$DBInfo->body_attr;

# inserted by Lbird. supporting private pages
if ($formatter->pi['#private'] and !$DBInfo->security->is_allowed('read_private',$options)) {
do_invalid($formatter,$options);
return;
}
# end of inserted code by Lbird.

$formatter->send_header("",$options);

$formatter->send_title("","",$options);
주의: 긴줄이라 잘려서 보일 수 있으니 마우스로 긁어서 어딘가에 붙여 넣어서
봐야 할지도 모름 -.-;; (스킨을 바꿀까 -.-;;)

역시 wiki.php에서 다음 부분도 찾아서 고칩니다. (#private 하나를 추가합니다.)
function get_instructions(&$body) {
global $DBInfo;
# '#private' inserted by Lbird
$pikeys=array('#redirect','#action','#title','#keywords','#noindex',
'#filter','#postfilter','#twinpages','#notwins','#nocomment',
'#language','#camelcase','#nocamelcase',
'#singlebracket','#nosinglebracket','#private');
$pi=array();


#private 이라는 instruction이 들어가 있는 페이지들만 영향을 받습니다. acl.default.php 파일에서
* @ALL deny *
* @ALL allow read,ticket,savepage
* @User allow *

와 같이 되어 있는 경우라면 로그인한 사용자들은 read_private이 있고, guest는 없습니다. read permission만 있으니까 #private이 붙어 있지 않은 페이지들만 읽을 수 있습니다. 더 세세한 설정을 위해서는 특정 그룹을 지정해서 그 그룹에만 read_private 퍼미션을 줄 수도 있을 겁니다.

사족: 위키에 read 퍼미션을 제한한다는 게 위키정신에는 맞지 않는다고 개발자께서 생각하시는데 굳이 저런 걸 하려고 해서 참 죄송하군요. :) -- Lbird
  
트랙백   |  댓글   |
http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1420

주된 이유는 linux guest는 1초에 2000번(커널의 SMP 옵션이 켜져 있고 실제 CPU가
하나인 경우)의 timer interrupt를 날리는데 host(나의 경우 windows xp)가 1초에
1000번의 timer interrupt만을 발생시키기 때문이다. linux guest가 이렇게 많은
timer interrupt를 발생시키는 것을 방지하기 위해서 부팅시 다음의 옵션을
추가한다.

nosmp noapic nolapic
  
트랙백   |  댓글   |
윈도우즈 같은 곳에서 파일이름에 한글이 포함된 파일들을 압축해서
이것을 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에도 올라와
있다는데 언제 제대로 고쳐질런지. 쩝...
  
트랙백   |  댓글   |
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 순서로 변환한다고 한다.
  
트랙백   |  댓글   |
포스비의 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
  
트랙백   |  댓글   |
 이전  12   다음 

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