Programming Tools/Other Programming Tools
MoniWiki 설치방법
BAGE
2007. 8. 7. 13:49
RCS installation #
MoniWiki 1.1 이후에는 config.php에서 $version_class='RcsLite';라고 하면 rcs 없이도 모니위키 자체 제공하는 RcsLite모듈로 버전 관리를 하실 수 있습니다.
그러나, 개인위키가 아닌 경우라면 RCS 사용을 권장합니다. 규모가 점점 커지면 RcsLite모듈은 메모리 사용량이 늘어나고 속도가 현저히 떨어지게 됩니다.
[edit]
RCS Test #
임의의 디렉토리를 만든 후에 그 디렉토리에 들어가서 다음과 같이 해봅니다.
- test 파일을 만들어 편집하고, ci -l test 한다. (test,v가 생성되어야 함)
- test파일을 한번 더 고치고 ci -l test한다. (test,v가 갱신되어야 정상이다.)
- 마지막으로 rcsdiff -r1.1 test 를 합니다. 처음 버전과 마지막 버전의 차이점이 나와야 정상입니다. Permission denied 또는 command not found가 나오면 diff 나 co파일의 위치가 잘못 지정되었거나, 서버에서 막아놓은 것이므로 적절한 조치를 해주야합니다. 여기서 안되면 Revision History는 나오지만, Diff가 되지 않는 문제가 발생합니다. (cafe24에 컴파일 위치와 실행위치가 다른 파일이 있어 이런문제가 발생할 가능성이 많습니다. diff를 막은 곳은 거의 없을것이고, ci문제라면 이곳에 있는 바이너리를 사용하면 아마 잘 될것입니다.)
[edit]
Why RCS ? #
- rcs를 내부적으로 사용하는 cvsweb과 같은 cgi프로그램도 rcs를 사용하는 등, rcs는 시스템의 가장 기본적인 프로그램중에 하나입니다. rcs가 없으면 바이너리를 받아서 쉽게 설정할 수 있을 것입니다.
- OriginalWiki의 진화형 위키중 하나인 ClusterWiki도 rcs를 사용합니다.
- 아파치 perl모듈로 있는 MiniWiki도 rcs를 사용합니다.
- TWiki는 RCS를 사용합니다. (또, RcsLite.pm이라는 간소화된 rcs를 제공합니다)
- rcs가 없어도 쓸수 있는데, 버전 관리를 안하게 되며 최종 버전만 남습니다.
- rcs를 쓸 때의 부작용을 없애기 위해서, 저자동의 backup restore액션을 제공합니다.
- 백업은 cron으로 한다던지, backup액션으로 구현할 것입니다.
- 개인위키를 목표로 하므로 소규모 위키의 백업은 간단히 tar로 구현됩니다.
[edit]
Q & A #
Q: RCS가 설치되었는지 어떻게 확인하나요 ?
A: rcs 패키지가 설치되면 /usr/bin/ 디렉토리에 ci co rlog rcsdiff rcs merge 등등이 있습니다. which co와 같은 명령으로 확인하세요.
/usr/bin/ci /usr/bin/co /usr/bin/rlog (주: 없으면 히스토리 못봄) /usr/bin/rcsdiff (주: 없으면 diff 못봄) /usr/bin/merge (주: 없어도 됨. diff3.php에 의해 merge됨) 이 5개가 가장 필수적인 기능을 하며 /usr/bin/rcs (주: 없으면 history 지우지 못함) /usr/bin/rcsclean (주: 사실은 안쓰임 ^^;;) /usr/bin/rcsmerge (주: 안쓰임)
Q: 최악의경우 rcs를 쓰고 싶어도 못쓰는 사람을 위해, OS와 상관없는 perl 모듈이라던가 다른 대용품을 알고 싶습니다.--idlock
RCS에서 최초 생성과 1차 변경이 구분되지 않는 것 같습니다. 예시를 보면 분명 생성 뒤에 한 번 편집됐는데, diff가 없다고 나옵니다. 따로 리비전을 지우거나 한 건 없습니다.
이 문제때문이 아닌듯 싶습니다. 여기
제 위키에서는, 차이점을 볼 때, 2byte 문자중에 깨져서 나오는 경우가 있네요. RCS는 이곳에서 받은 패키지로 한 것인데, 이 곳(WikiSankBox에서 실험)에는 문제는 없더군요. 무엇이 문제일까요. -- kebil
가끔 깨지는 일이 발생하더군요
버그입니다. 이곳에는 고쳐놓았는데, 이상하게 모니위키에는 반영을 안 해 놓았더군요 ㅡㅡ;; 고쳤으며, http://moniwiki.kldp.net의 CVS를 받으시거나 MoniWikiDev의 최신 스냅샷을 받아보세요. Windows XP에서 아파치와 php를 깔아서 쓰고 있는데, rcs가 글씨를 막 잡아먹는 것 같네요. 중간중간 몇몇 글자가 사라지는 일이 잦습니다. 심한 경우에는 revision history가 존재함에도, "변화가 없습니다."라는 결과만 뿌리는군요. -- wafe
예를 보여주세요. rcs와 diff는 매우 안정적인 프로그램입니다.
http://sparcs.org/~wafe/wiki/wiki.php/ToDo 중간중간 깨지고 이상하게 보이는 글자가 늘어나다가 r1.12부터는 diff가 안됩니다. 혹시나 kebil님과 같은 버그일지도 모르겠지만, 리눅스 서버(sparcs.org)에서 쓰고 있는 위키는 아직 이런 문제가 없는데 유독 노트북에서 쓰고있는 위키에서만 문제가 발생하네요. 깨져보이는 글씨들은 보이는 것만 그런게 아니라 ToDo,v 파일 안에 깨진채로 저장되어 있더군요. -- wafe
저도 그렇습니다. windows 2000 / Apache 2.0x / php 4.3.9 버전입니다. rcs내부에서 보관할때 글자를 막 잡아먹는 거 같네요. diff할 때 보면 문서가 깨져 보여서.. 어인 일인가 rcs파일 열어보면 여전히 깨져 있습니다. 웃기는건 cafe24에 있는 홈페이지 위키는 멀쩡하다는(.. 같은 버전인데;;) 모니위키 버전은 1.0.9.2 버전을 사용하고 있습니다. -- sphawk
RCS는 단지 히스토리만 관리합니다 저도 그렇습니다. windows 2000 / Apache 2.0x / php 4.3.9 버전입니다. rcs내부에서 보관할때 글자를 막 잡아먹는 거 같네요. diff할 때 보면 문서가 깨져 보여서.. 어인 일인가 rcs파일 열어보면 여전히 깨져 있습니다. 웃기는건 cafe24에 있는 홈페이지 위키는 멀쩡하다는(.. 같은 버전인데;;) 모니위키 버전은 1.0.9.2 버전을 사용하고 있습니다. -- sphawk
글자가 중간중간에 깨지고 이상하다면, 저장되는 순간에 문제가 발생하는 것입니다. RCS는 저장된 후에 히스토리 저장만을 담당합니다. 뭔가 이상하네요 .. -- WkPark
- Q:
처음엔 RCS Lite를 사용하다 RCS로 바꿔서 사용하려고 합니다. 환경은.. Windows XP pro/APM_Setup 5/moniwiki 1.1.2/rcs57(pc용) 이렇게 사용하고 있는데, 바뀐글을 보면 모두가 "New"로만 나옵니다. RCS Lite에서는 updated, New등이 제대로 나왔었는데, RCS pc버전을 쓰면 그러네요.. 혹시 이런 증상에 대해 아시는 분.. 답변 부탁드립니다.
- A:
[edit]
개인 조치방법 #
바이너리 파일을 받아서 설치한 후에 ($HOME/bin 디렉토리에) config.php에서 $path를 지정해주어야 합니다.
$path='/usr/bin:/bin:/usr/X11R6/bin:/to_my_home/bin';
vvv
[edit]
조치 메일 #
안녕하세요. cafe24에서 rcs를 사용할 수 없다는 이야기를 듣고 이렇게 직접 메일을 드립니다. 저는 cafe24를 사용하지는 않지만 cafe24가 리눅스를 사용하고, 서비스도 싸고 해서 몇몇 아는 사람에게 소개시켜 준 바도 있고, 홈페이지 셋팅을 도와주고 한 경험 때문에 약간의 책임감 때문에 메일 드립니다. rcs는 매우 안정된 프로그램으로, 대부분의 리눅스의 기본 패키지이기도 합니다. 보안에 가장 철저하다는 openbsd에 대해서 security와 rcs에 관계된 것을 google에서 서치해 보세요. rcs최신버전 5.7은 95년 이후에 거의 변경이 없는 매우 안정된 프로그램입니다. rcs를 설치하면 여러 파일들이 설치되는데 이중 필수적인 것은 /usr/bin/ci /usr/bin/co /usr/bin/rlog (주: 없으면 히스토리 못봄) /usr/bin/rcsdiff (주: 없으면 diff 못봄) /usr/bin/merge (주: 버전 1.1부터 안쓰임. 그 이전 버전에서 이것이 없으면 conflict날 때 merge하지 못함) 이 5개가 가장 필수적인 기능을 하며 /usr/bin/rcs (주: 없으면 history 지우지 못함) /usr/bin/rcsclean (주: 사실은 안쓰임 ^^;;) /usr/bin/rcsmerge (주: 안쓰임) 가 필요합니다. (많이 쓰이는 순서대로) rcs는 c로 쓰여져 있고 매우 빠릅니다. rcs를 일반 사용자가 쓸 수 있도록 조치를 취해주시기 바랍니다. 그럼 안녕히 계세요.
cafe24를 사용하는데 /usr/bin 폴더에 가보면 프로그램은 다 있어요. 근데 명령은 안먹습니다. 어떤 문제죠? --musiki
저도 지금 같은 문제때문에 골머리를 썩히고 있습니다. /usr/bin 디렉토리에는 해당 rcs바이너리 파일들에 대한 실행권한도 갖고 있고 위키의 config.php 파일 설정부분에서 $path 변수에 적절한 값을 넣어 주었는데도 불구하고 위키 홈페이지 상에서 diff나 info액션을 취하면 다음과 같은 에러가 뜹니다.
$path가 이상하게 설정되어 있지는 않은지요? 406 Not Acceptable Is it valid action ?얼마전까지만 해도 되던 기능이 현재 2005년 4월 13일은 되지 않으니까 황당하기만 하군요. 이건 어떤 문제라고 볼 수 있을까요? --신나지않니