큐브리드를 사용해보려고 테스트 중이다.

지난 8월에 2008 R2.0 버전이 새로 나왔다. 64bit 지원과 SRPM 지원이 눈에 띈다.
기존버전은 64bit 환경에 쓰기에는 애매한 부분이 있었다.
그래서 편법(?)으로 쓰기도 했다.(http://blog.1day1.org/312)

Centos(redhat 계열-rpm) 에서 빌드하는 것과 뭐가 다르지?

Centos 에서 cubrid SRPM 빌드를 해봤는데, 별다른 문제없이 빌드가 되었다.

우분투는 기본 패키지는 .deb 이지만,  rpm 도 설치가 가능하다.(특이한 설정이 아니라면)
rpm 을 사용하기 위한 패키지를 설치한다. ( 우분투 hardy 버전에서 테스트 했다)
apt-get install rpm

큐브리드도 SRPM 을 제공하기 때문에 우분투에서 빌드해보았다.

rpmbuild --rebuild 를 해보면 사전에 필요한 패키지들이 있다.
elfutils-libelf-devel
ncurses-devel
libstdc++-devel
glibc-devel
위 패키지 들에 해당하는 우분투 패키지는
apt-get install  libelf-dev libncurses-dev libstdc++6-dev libc6-dev
등에 해당한다.

rpm 방식은 체크하는 방식이 차이가 있어서 해당 패키지를 설치해도 계속 에러가 난다.
그래서 SRPM 의 spec 을 수정해서 다시 SRPM 을 만들기로 했다.

SRPM 패키지 우분투용으로 다시 만들자

먼저 srpm 을 설치한다
rpm -ivh CUBRID-8.2.0.1150-el5.src.rpm
우분투에서는  /usr/src/rpm 에 rpmbuild 관련 파일,디렉토리가 있다.
SRPM을 설치하면  rpm/SOURCES 에 관련소스가 생기고, rpm/SPECS 에 설정파일이 생긴다.

rpm/SPECS/cubrid.spec 을 열어서 
Requires:      ncurses
Requires:      libstdc++
BuildRequires: elfutils-libelf-devel
BuildRequires: ncurses-devel
BuildRequires: libstdc++-devel
BuildRequires: glibc-devel
위 부분을 주석처리한다.  각 줄의 앞에  # 을 붙여준다.

우분투에서는 rpmbuild 시 _sysconfdir 의 위치가 약간 다르게 나타난다.
rpm --eval %{_sysconfdir}
해보면  Centos 에서는 /etc 로 나오는데, 우분투는  /usr/etc  로 나온다.
SRPM 빌드 마지막 부분에 이 부분때문에 관련 파일을 찾을 수 없다는 에러가 나온다.
/usr/lib/rpm/x86_64-linux/macros  부분의
%_sysconfdir            %{_prefix}/etc
를 다음처럼 바꿔준다.
%_sysconfdir            /etc
SPEC 을 고친후에 SRPM 을 다시 만들어 준다.
rpmbuild -bs rpm/SPECS/cubrid.spec
rpm/SRPMS/ 에 다시 만든 SRPM 패키지가 생성된다.


이제 SRPM 빌드해도 되나?
준비가 끝났으니 본격적으로 우분투에서 SRPM 빌드를 한다.
rpmbuild --rebuild rpm/SRPMS/CUBRID-8.2.0.1150-el5.src.rpm
Centos 와 마찬가지로 JAVA_HOME 설정, ant 등의 빌드시 필요한 패키지를 설치한다.
apt-get install sun-java6-jdk ant

JAVA_HOME=/usr/lib/jvm/java-6-sun
PATH=$JAVA_HOME/bin:$PATH:$HOME/bin


export JAVA_HOME
export PATH
make , gcc 등의 개발에 필요한 패키지도 설치되어 있어야한다.(대부분 이미 설치되어 있을듯)
apt-get install build-essential

최종적으로 rpm 을 만들었는데, 이런에러가.
rpm -Uvh CUBRID-8.2.0.1150-el5.x86_64.rpm
아! 나를 반기는 의존성 오류.
오류: Failed dependencies:
        /bin/bash is needed by CUBRID-8.2.0.1150-el5.x86_64
        /bin/csh is needed by CUBRID-8.2.0.1150-el5.x86_64
        /bin/sh is needed by CUBRID-8.2.0.1150-el5.x86_64
이미 bash , sh 등이 설치되어 있지만, rpm 에서 체크하는 방식이 달라서 그런듯 하다.
즉, 우분투에서는 설치된 패키지 정보가 rpm 에서 알 수 없어서 그런듯 하다.

일단 의존성 체크 없이 설치한다.
rpm -Uvh --nodeps CUBRID-8.2.0.1150-el5.x86_64.rpm


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
Cubrid 2008 R2.0 버전을 쎈토스에서 SRPM 빌드하는 법을 정리한다.

SRPM 빌드전에 뭐하지?

일단 빌드 전에 필요한 패키지들이 있다.
yum install rpm-build

당연히 빌드할 rpmbuild 패키지가 필요하다.(이미 깔려 있으면 생략)


0) 빌드에 필요한 패키지

yum install elfutils-libelf-devel ncurses-devel libstdc++-devel

1) javac (jdk) 필요. JDK 패키지 설치

yum install java-1.6.0-openjdk-devel

JAVA_HOME 설정 추가. (~/.bash_profile 에 넣어주거나, 콘솔상에서 입력해준다.)

JAVA_HOME=/usr/lib/jvm/java
PATH=$JAVA_HOME/bin:$PATH:$HOME/bin


export JAVA_HOME

2) 다음은 ant

yum install ant

3) c++

yum install gcc-c++


본격적인 SRPM 빌드 작업


1) SRPM 다운로드

wget http://dev.naver.com/frs/download.php/500/CUBRID-8.2.0.1150-el5.src.rpm
wget http://dev.naver.com/frs/download.php/515/cubrid.spec

2) SRPM 빌드

rpmbuild —rebuild CUBRID-8.2.0.1150-el5.src.rpm

빌드가 완료되면  /usr/src/redhat/RPMS 에   설치할 rpm 파일이 생성된다.

설치는 보통에 하던식으로  rpm -Uvh ... .rpm   으로 하면 된다.


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
메일서버 qmail 을 설치/설정하는 것을 설명했다.(http://blog.1day1.org/329)

qmail + vpopmail(with cdb) 의 조합에서  vpopmail 콘솔 명령으로 관리할 수 있다.
그런데, 웹으로 관리하고 싶을때는 qmailadmin 을 설치한다.
http://www.inter7.com/index.php?page=qmailadmin

다운 받은 압축파일을 풀고, configure 설정을 해준다.
./configure --disable-ezmlmdir --disable-autoresponder-path
따로 ezmlm (메일링리스트) , autoresponder 가 필요없어서 위처럼 disable 옵션을 줬다.

설정이 끝나면 컴파일하고 설치한다.
make
make install-strip
Centos 의 apache 의 경우  /var/www/cgi-bin  , /var/www/html  등에 관련 파일들이 설치된다.

http://localhost/cgi-bin/qmailadmin  으로 접속을 하면 다음과 같은 화면이 나온다.
계정 생성, 삭제 등을 웹인터페이스 상에서 할 수 있다.


ps. 그런데, 간단한 설정만 되어 있어, 콘솔화면에서 명령내리는 것과 큰 차이는 없다.
  둘중 편한 것을 쓰면 될 듯 하다. 도메인에 대해 별도 관리자가 직접하도록 할때는 유용할 듯 하다.


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

메일서버에는 다양한 어플들이 있다.
흔히(?) 쓰는 sendmail 부터, 요즘 우분투쪽에서 밀고 있는 듯한 postfix.
지금은 어떤지 모르겠지만, 예전에는 sendmail 의 보안문제에 대해서 말이 많았다.

그렇다 보니 다른 대안을 찾아다니게 된다.
그 중에 유명한 메일서버가 qmail 이 아닐까 한다.
큐메일.
그런데, 문제가 컴파일 해서 사용해야 하기때문에 비경험자에게는 쉽지않은 난이도를 가지고 있었다.
그리고 환경에 따라 다양한 방법이 존재한다.(각종 패치는 더욱 많다)
다양한 요구를 만족시킬 수 있다는 장점은 다른 면에서 복잡성을 나타내기 때문에 어려워진다.

서버의 실제 계정을 활용하는 가장 기본적인 방법과 (qmail 기본)
파일로 관리하는 가상계정을 사용하는 방법(qmail + vpopmail)
DB 로 관리하는 가상계정을 사용하는 방법(qmail + vpopmail + mysql)

등 여러방법이 존재한다.
기타 자세한 정보는 http://qmail.kldp.net  를 참조한다.

지금 설명하려는 부분은 qmail + vpopmail 의 가상계정을 이용하는 방법이다.
지금까지 qmail 기본 설정을 사용했었다. 원래 sendmail 으로 운영했었는데(몇년전) 관리의 어려움이 있어 qmail 로 변경을 했다. 그당시 설정이 어려운부분이 많아서, 제일 간단한 방법이면서, 기존의 설정을 그대로 가져갈 수 있기 때문에 qmail 기본을 사용했었다.

그리고 몇년이 지난후 서버의 운영체제를 업그레이드 하다보니, 메일서버가 문제였다.
예전의 컴파일 하던 방식이 새운영체제에 맞지 않는 것이었다.
여러 방법을 찾아보다가 qmail + vpopmail 로 이전하는 것으로 결론을 내렸다.
그 사이에 쉽게 처리할 수 있는 방법이 나왔기 때문이다.

Centos 에서 SRPM 으로 빌드하는 방법이다.
http://qmail.kldp.net/phpbb/viewtopic.php?t=7887

1. 해당 SRPM 패키지를 받아서. 빌드한다.

rpmbuild --rebuild --with cdb knetqmail-0.0.1-3.src.rpm

이때 /var/qmail 디렉토리가 없다는 에러가 나온다. ( mkdir /var/qmail 로 만들어 준다.)
빌드된 rpm 파일은 /usr/src/redhat/RPMS/x86_64 에 위치한다. ( x86_64 또는 i386 )

2. 빌드된 rpm 패키지를 설치한다.
centos 는 기본 sendmail 이 설치가 되어 있어, 먼저 제거를 해준다.

rpm -e sendmail --nodeps
rpm -Uvh /usr/src/redhat/RPMS/x86_64/knetqmail-0.0.1-3.x86_64.rpm

(빌드된 rpm 파일명은 본인의 것을 확인한다.)

3. qmail 실행

/etc/init.d/qmaild start
/etc/init.d/pop3d start

위 처럼 실행하면 /service 에 다음처럼 링크가 된다.

ll /service/
합계 0
lrwxrwxrwx 1 root root 31  8월 27 17:46 qmail-pop3 -> /var/qmail/supervise/qmail-pop3
lrwxrwxrwx 1 root root 31  8월 27 17:45 qmail-send -> /var/qmail/supervise/qmail-send
lrwxrwxrwx 1 root root 32  8월 27 17:45 qmail-smtpd -> /var/qmail/supervise/qmail-smtpd

위와 같이 나오고, ps ax 에

# ps ax|grep qmail
27800 ?        S      0:00 supervise qmail-smtpd
27802 ?        S      0:00 supervise qmail-send
27803 ?        S      0:00 /usr/bin/tcpserver -vRHl0 -x/etc/tcp.smtp.cdb -c 100 -u 108 -g 106 0 smtp /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true
27804 ?        S      0:00 /usr/bin/multilog t s2500000 n10 /var/log/qmail/smtpd
27805 ?        S      0:00 qmail-send
27812 ?        S      0:00 /usr/bin/multilog s2500000 n10 /var/log/qmail/send
27813 ?        S      0:00 qmail-lspawn ./Maildir/
27815 ?        S      0:00 qmail-rspawn
27816 ?        S      0:00 qmail-clean
27824 ?        S      0:00 supervise qmail-pop3
27826 ?        S      0:00 /usr/bin/multilog n10 s2500000 /var/log/qmail/pop3
27827 ?        S      0:00 /usr/bin/tcpserver -vRHl0 -u 108 -g 106 0 pop3 /var/qmail/bin/qmail-popup mymail.mydomain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir

위와 같이 관련 데몬이 뜨는 것을 볼 수 있다.

telnet localhost 25   (smtp)
telnet localhost 110   (pop3)

등으로 테스트를 해본다.

http://www.abuse.net/relay.html  나
http://people.kldp.org/~eunjea/relay-test.php

에서 릴레이 테스트도 해본다.

4. vpopmail 계정관리

vadddomain blahblah.com

도메인 추가.

vdeldomain blahblah.com

도메인 삭제. 조심하자. 아주 깨끗히 삭제한다.

vadduser foo@blahblah.com 

메일사용자 계정을 추가한다. 전체 메일주소를 쓴다.

vdeluser foo@blahblah.com

메일사용자 계정 삭제. 역시 조심. 그냥 삭제한다.

vpasswd foo@blahblah.com

암호변경. 암호는 바꾸고 써야지.

vaddaliasdomain newblah.com  blahblah.com

기존쓰던 도메인 계정그대로 다른 도메인으로도 메일을 같이 받고 싶을때.

자세한 사항은  http://ejlabs.net/txt/vpopmail  를 참조한다.


여기까지 기본적인 설치와 설정에 관한 부분이다.
예전에 qmail 써봤던 분들은 SRPM 빌드 방법을 해보면 정말 편해졌다는 것을 느낄 것이다.

다음에는 기존 /etc/passwd 의 계정을 vpopmail 가상계정으로 가져오는 방법과
그에 따라 간단하게 만든 실행 스크립트를 소개한다.


[추가] : yum update 시의 conflict 문제.

yum update 를 했을때. 

knetqmail ... conflicts with exim

이런식의 메세지가 나오면서 진행이 되지 않으면, 관련 패키지를 빼고 업데이트한다.

yum update -x exim -x postfix -x sendmail


위에서 sendmail 을 삭제할 때. rpm -e  보다는 yum remove  를 쓰는것이 좋을 듯 싶다.
(문제가 생길지는 모르겠다 - 테스트 필요.)

 

[추가-18-06-20] : centos6 에서 추가조치

1. rpmbuild 설치

yum install rpm-build

yum install gcc openssl-devel

# 기타 추가 패키지
yum install procmail

 

2. 진행도중 다음과 같은 에러.

chkuser.c:38:22: error: vpopmail.h: No such file or directory

chkuser.c:39:19: error: vauth.h: No such file or directory

chkuser.c:40:29: error: vpopmail_config.h: No such file or directory

chkuser.c: In function 'realrcpt':

chkuser.c:746: warning: comparison between pointer and integer

chkuser.c:875: warning: assignment makes pointer from integer without a cast

chkuser.c:885: warning: assignment makes pointer from integer without a cast

chkuser.c:896: error: dereferencing pointer to incomplete type

chkuser.c:896: error: 'BOUNCE_MAIL' undeclared (first use in this function)

chkuser.c:896: error: (Each undeclared identifier is reported only once

chkuser.c:896: error: for each function it appears in.)

chkuser.c:901: error: dereferencing pointer to incomplete type

chkuser.c:902: error: dereferencing pointer to incomplete type

chkuser.c:906: error: dereferencing pointer to incomplete type

make: *** [chkuser.o] Error 1

오류: /var/tmp/rpm-tmp.cZvvkq의 잘못된 종료 상황 (%build)

 

 

RPM 제작 오류:

    /var/tmp/rpm-tmp.cZvvkq의 잘못된 종료 상황 (%build)

 

 

3. 기존 srpm 버전이 centos 6 에 대응이 안된 듯 하다.  

knetqmail-0.0.1-3.src.rpm  대신에
knetqmail-0.0.1-5.src.rpm  버전을 구해서 해보니 rebuild 잘된다.

(생성된 rpm 위치는 /root/rpmbuild/RPMS/x86_64/  => 사용자 계정에 생성 )

4. 리빌드 후 설치 시 centos 6 - postfix 를 제거  ( centos 6 는 아마도 sendmail 이 아닌 postfix 가 기본인 듯 하다)

rpm -e postfix --nodeps

 

5. /etc/initab 의 /command/svscanboot 이 실행되지 않을 때

# cat /etc/init/svscan.conf 
start on runlevel [12345]
respawn
exec /command/svscanboot
반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
CodeIgniter 일명 CI 는 php 프레임웍이다.
한국에서는 zend , cakephp 등의 프레임웍보다 덜 알려져 있다.
사실 php 프레임웍 자체가 널리 쓰이지 않고 있다.
그 상황에서 각 프레임웍의 인지도를 따지는 것은 무의미 하다고 본다.

그러던중 CI 한국 사용자 포럼이 만들어졌다.
http://codeigniter-kr.org/
php 프레임웍의 한국사용자 포럼은 cakephp 가 먼저 만들어졌지만, 지금의 거의 개점휴업상태이다.
(cakephp 포럼도 활성화 되길 바랍니다. cakephp.co.kr )

얼마전에 CI 기반의 포럼이 오픈하면서 지금의 꽤 활성화되고 있다.
운영자들이 CI 를 사용하다보니 그런것 같다. 하나둘씩 사용자가 늘어나고 있다.


자! 여러분들도 CI 의 가벼움에 반하시기 바랍니다. (가볍지만 강합니다.)

다른 프레임웍도 좋지만, php 의 강점인 간결함과 속도를 희생하는 문제가 있었습니다.
CI 는 php 의 강점을 살릴 수 있는 프레임웍이라고 생각합니다.

자! 클릭하세요. ^^   http://codeigniter-kr.org/


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
centos 쪽에 네임서버를 설치하려 한다.
우분투와 차이점이 있어 정리한다.

우분투는 /etc/bind/ 에 설정파일이 있다.
/etc/bind/named.conf.local 에 도메인 설정을 한다.
zone 파일은 /var/cache/bind 에 위치한다.


Centos 는 뭐가 다르지?
그런데, centos 는 조금 다르다.
가장 큰 차이점은 chroot 로 네임서버를 구동한다.
우분투쪽도 그런방식이 가능할 것으로 생각한다.(최신 배포판은 그런방식을 쓸지도,현 hardy)
그래서 chroot 의 root path 는 /var/named/chroot 가 된다.
네임서버 실행시 저 위치가 root 가 된다. 설정파일도 그 안에 위치한다.
/var/named/chroot/etc/named.caching-nameserver.conf
/var/named/chroot/etc/named.rfc1912.zone
도메인 설정은 named.rfc1912.zone 에 설정하면 된다.

그럼 zone 파일은 어디에 위치하나!
바로 /var/named 인데, chroot 상의 /var/named 이다.
/var/named/chroot/var/named
가 된다.

/etc/named.conf 등의 파일은 뭐지?
그냥 관리자가 관리하기 편하게 링크를 걸어준것 뿐이다.
해당 파일들을 삭제하고 재시작 해봐도 정상적으로 작동하는 것을 볼 수 있다.

ps 로 네임서버 프로세스를 확인해보면.
/usr/sbin/named -u named -c /etc/named.caching-nameserver.conf -t /var/named/chroot
chroot 로 시작하고 chroot 의 /etc/named.caching-nameserver.conf  설정을 불러들이는 것을 볼 수 있다.


기존 우분투 설정을 그대로 쓰고 싶어
우분투의 설정을 그대로 가져가 쓴다고 할때.
우분투의 named.conf.local 설정을
/var/named/chroot/etc/ 에 복사한후
/etc/named.conf.local 로 심볼릭 링크를 한다.
ln -s /var/named/chroot/etc/named.conf.local /etc/named.conf.local
/var/named/chroot/etc/named.caching-nameserver.conf  ( /etc/named.conf )
의 마지막 줄에. named.conf.local  설정을 불러오도록 다음 줄을 추가한다.
include "/etc/named.conf.local";

그리고 기존의 zone 파일들은
/var/named/chroot/var/named 에 복사해 주면 된다.

그리고 재시작하고, nslookup , dig 등으로 확인한다.



외부에서 도메인 질의가 안된다면
로컬에서는 되는데, 외부에서는 안된다면 다음의 사항을 체크한다.

1. 방화벽
iptable 로 53 번 포트를 열러줘야 한다.
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

2. 설정
설정파일의 기본이 localhost 를 기준으로 되어 있다.( named.caching-nameserver.conf )
    allow-query     { any; };

    match-clients      { any; };
    match-destinations { any; };
위처럼 localhost 를 any 로 바꿔준다.


nslookup 으로 질의확인
nslooup 으로 질의를 해서 네임서버 설정이 잘 되어 있는지 확인할 수 있다.
nslookup my.domain.com  localhost
처럼 질의를 했을때.
Non-authoritative answer:
Name:   my.domain.com
Address: 111.222.333.444
Non-authoritative  라는 메세지가 나오면 안된다.
해당 메세지가 없어야 일단 로컬설정이 제대로 된 것이다.


슬레이브 설정시 필요한 마스터 설정.
options 의 설정중에
allow-query 는  nslookup, dig 등을 이용한 일반 쿼리를 말한다.
슬레이브에서 마스터의 설정을 가져가려 하면
allow-transfer { slave-server_ip; };
의 설정을 해준다. (기본설정이 모두 허용인 듯 싶다. 필요한 서버만 허가를 하려면 필요하다)


ps. Centos 에서 bind-chroot 패키지를 설치하면 chroot 가 적용된다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
2009년 잔인한 그대여.

이땅의 버팀목을 하나씩 쓰러트리고
이땅을 어떻게 하려고
이땅에 남아있는 자를 어찌 하려고

그가 한일을 기억하며
그가 하고자 한일을 이어가며
그가 원했던 일이 이루어지는 날까지

잔인한 그대가 있어도
쓰러지지 않으리.
반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
eclipse 를 쓰기 힘들어서,  kdevelop 으로 왔다.
kdevelop 이 c/c++ 개발툴이긴 한데, 다른 언어도 지원한다.
php 는 플러그인을 설치해서 사용한다. 패키지가 있으면 좋겠는데, 아쉽게도 컴파일해야 한다.

php 플러그인 빌드에 필요한 패키지
apt-get install kdebase-dev kdelibs5-dev kdebase-workspace-dev libqt4-dev build-essential subversion kdesdk-scripts
관련 소스를 받는다.(svn 이용)

kdevplatform 을 먼저 빌드한다.
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevplatform
cmake 로 makefile 을 생성한다.
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .
빌드,설치
make & make install

kdevelop 을 빌드한다.
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdevelop
cmake 로 makefile 을 생성한다.
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .
빌드,설치
make & make install

php 플러그인을 빌드한다.
svn checkout svn://anonsvn.kde.org/home/kde/trunk/playground/devtools/kdevelop4-extra-plugins/php
마찬가지로 cmake 로 makefile 을 생성한다.
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .
역시 마찬가지로 이제 빌드,설치
make & make install



참조, kdevplatform 을 건너띄다가.


ps. 그런데, kdevelop 은 프로젝트 import 가 생각대로 되지 않는다.ㅜㅜ
 다시 eclipse 로 가야겠다. 이런.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
자세한 방법은 다음을 참조한다.

큐브리드가 이미 설치되어 있는 상태를 가정한다.

1. 큐브리드 소스 다운 받기(svn)
svn checkout --username anonsvn https://dev.naver.com/svn/cubrid/trunk/contrib/php
2. 관련 패키지 설치
 apx2 가 필요하다. 해당 명령이 있는지 확인하고 없으면 관련 패키지를 설치한다.
apt-get install apache2-prefork-dev
그리고 phpize 도 필요하다. 역시 마찬가지로 없으면
apt-get install php5-dev

3. 빌드하기
src 디렉토리에서
phpize5
./configure
make
를 각각 실행하면  modules 에 cubrid.so 가 생성된다.

modules/cubrid.so 와 cubrid_err.msg 를
extension 디렉토리에 복사한다.( /usr/lib/php5/20060613/ - 등의 extension 디렉토리를 확인)

4. php.ini 설정하기
php.ini 에 cubrid.so 를 등록한다.
extension=cubrid.so
cubrid.err_path="/usr/lib/php5/20060613"

phpinfo 등으로 정상적으로 cubrid.so 가 올라왔는지 확인한다.



ps. centos 의 경우 httpd-devel , php-devel 패키지가 필요하다.
yum install httpd-devel  php-devel

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
Centos 를 쓰는데, 유난히 다운로드 속도가 떨어진다.
그래서 빠른 곳으로 바꾸고자 한다.

저장소 위치는 /etc/yum.repos.d/CentOS-Base.repo  파일을 바꾼다.

기본설정이 mirrorlist 로 되어 있다. baseurl 은 주석처리 되어 있다.
반대로 mirrolist 는 주석처리하고, baseurl 에 빠른 곳을 직접 지정하면 된다.

기본 설정은
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
으로 되어 있다.  난  ftp.daum.net 으로 지정했다.
baseurl=http://ftp.daum.net/centos/$releasever/os/$basearch/
이런식으로 바꿔줬다.


base , updates 등의 다른 탭들도 바꿔준다. (addons, extras, centosplus )
base , updates 정도만 바꿔줘도 될 듯하다. 나머지는 추가적인 패키지들.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
Centos 에서 yum update 를 하면.  sqlite 관련 에러가 나오면서. 에러가 난다.
yum  File "/usr/bin/yum", line 29, in
...
...

 TypeError: unsubscriptable object.
해결 방법은
yum clean metadata
또는
yum clean all


또 다른 에러는
TypeError: rpmdb open failed
인 경우에는
rm -f /var/lib/rpm/__db*
rpm --rebuilddb
하라고 한다.


참조 :
sqlite 패키지를 이전 버전으로 다운그레이드(?) 하라는 방법도 있는데, 왠지 이건 아니다 싶다.
rpm -Uvh --oldpackage sqlite-3.2.8-1.i386.rpm


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
eclipse 로 utf-8 인코딩 된 파일을 열었는데, 제대로 표시를 해주지 못하는 경우가 있다.
저장이 잘 못된것인지? (다른 편집기에서는 제대로 연다)
다음 옵션을 바꿔준다.

그래 이런것은 별 문제 아니니 넘어가자.
그런데, 너무 느리다.

네가 하얗게 질려버리면 , 나도 질려버린다.
그래 잠시 안녕.

Good Bye eclipse.
난 , kdevelop 으로 간다.
(kdevelop 은 잘 될까? , 다시 eclipse 로 돌아오는 거 아닌지.)

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
오래된 윈도우용 웹캠이 있다. 윈도우XP 까지만 지원된다.(3개정도 있던가.)
더군다나 제조회사는 이미 망해버린 상태이다.(웹캠 회사는 온전한 곳이 별로 없다)
대기업표 웹캠도 오래된 것들은 윈XP 이상의 드라이버는 제공하지 않는다.
윈도우 비스타, 윈도우7 을 사용하고 있는 상황에서 쓸모없는 물건이 되버렸다.
아직 윈XP 가 많이 쓰이지만, 왠지 시한부 인생을 사는 것 같이 씁쓸하다.

혹시나 하는 마음에 리눅스(우분투)에 연결했다.
3개중 2개는 그냥 인식되네, 나머지 하나도 테스트해봐야 겠다.
치즈(cheese)를 실행시켜보니 잘 되는구나.

웹캠 감시 시스템을 적용해 볼까?
몇가지 찾아보니, motion 과 zoneminder 라는 것이 있다.

우선 zoneminder 를 해보기로 한다.
참조 : http://www.linuxscrew.com/2007/11/05/howto-home-video-security-with-zoneminder-and-ubuntu/


설치하기
설치는 우분투 패키지를 제공하기 때문에 쉽다.
apt-get install zoneminder apache2 php5-mysql libapache2-mod-php5 mysql-server ffmpeg
카메라 영상을 웹에서 보기위해 apache2 가 필요하다.
mysql-server 는  zoneminder 의 설정등을 저장하기 위해 mysql 을 사용하기 때문에 필요하다.
웹기반으로 카메라 영상 감시를 하기위한 어플이 php 로 제작되어 있다.(php5, mod-php5 필요)
ffmpeg 는 카메라 영상을 동영상으로 저장하기 위해 필요한 패키지 이다.

http://localhost/zm 으로 접속하기 위해 apache 설정을 한다.
ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
아파치를 재시작한다.


옵셥설정하기
http://localhost/zm   으로 접속해서 기본 옵션을 설정한다.(오른쪽 윗 부분에 있다.)
옵션중에 다른 부분은 바꿀 것은 없고. image 부분에서
두번째 항목  ZM_STREAM_METHOD  를  mpeg 에서  jpeg 로 바꾼다.(save 를 꼭 해준다)

그리고 zoneminder 를 재시작해준다.
/etc/init.d/zoneminder restart
여기까지 한후, 감시설정을 해준다.(웹캠이 여러개가 있다면, 여러개의 감시설정을 할 수 있다.)

감시설정하기
"Add New Monitor" 를 눌러 설정을 한다.

아무 이름이나 쓰고, Local 로 해준다. Function 은  원하는 것으로 선택한다.
잘못 이해했는지 모르겠지만, Modect 로 설정하면 Event 가 발생할 듯 싶은데, 잘 안된다.
그래서 Mocord 를 하니 제대로 Event 를 잡아내는 듯 하다.(Record 를 해야 하나?)
그리고 저장한다.

소스(Source) 부분에서  웹캠 디바이스를 지정한다.(보통 /dev/video0)
여러개 있다면,  video1 , video2  등의 디바이스가 생겼을 것이다.
capture width , height 는 320x240 이 적당할 듯 하다.
640x480 등은  커널 공유메모리를 늘려줘야 하나보다.(shmall , shmmax 관련)

감시화면보기
모니터 설정후에  설정한 이름을 클릭하면

다음처럼 웹캠 화면이 나온다.(지금은 어두워서, 밝은 것은 프라이버시 문제로...)

이벤트도 기록되는 것을 볼 수 있다.(어떤 상황에 이벤트가 생성되는지 정확한 기준은 아직 모르겠다)

주의사항 : /var/cache/zoneminder 에 영상이 저장된다. 충분한 공간을 확보해야 한다.


영상이 잘 안보인다면
감시화면을 띄웠을때 카메라 영상이 제대로 나오지 않는다면,
/var/log/messages 를 확인해본다.  퍼미션 에러가 나온다면.
아래처럼 권한을 조정해 본다.(zoneminder 재시작)
chmod 4755 /usr/bin/zmfix
그래도 안된다면, 아래처럼 video0 의 other 권한을 rwx 로 바꿔준다. (또는 666 ,777 )
chmod o+rwx /dev/video0


ps. 테스트에 사용된 웹캠이  Z-Star Microelectronics Corp. ZC0301 WebCam 이다.(lsusb)
저게  LED 조명이 있는데 꺼져있다. 켜는 방법을 아직 못찾겠다.(없나?)
그러고보니 윈도우에서도 조절을 못했던 것 같다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,