우분투 64bit 환경에서 cubrid 를 설치하는 것이 쉽지 않았다.(지난글 : http://blog.1day1.org/311 )

다음은 64bit 환경에서 chroot 를 이용해서 32bit 어플을 실행하는 방법을 설명한다.
이 방법은 다른 어플에 활용해도 된다.
예전에 firefox 32bit flashplayer 문제가 많았을때 사용되던 방법이다.

1. chroot 및 debootstrap 패키지 설치
  # apt-get install schroot  dchroot debootstrap
  schroot , dschroot  둘중에 하나만 선택해도 된다.

 기본 위치를  /var/chroot32/hardy 로 잡았다.(자신이 원하는 위치로 바꿔도 된다)
 hardy 64bit 환경에서  chroot hardy 32bit 환경을 설정하려한다.
 설치하고  schroot 설정 ( /etc/schroot/schroot.conf - 이미 있음. 추가)
[hardy]
description=Ubuntu hardy
priority=3
location=/var/chroot32/hardy
users={Userid}
groups={Userid},root
root-groups=root,{Userid}
personality=linux32
aliases=cubrid,default
{Userid} 는 본인 계정을 적으면 된다.
chroot 전환방법은
# schroot -c hardy   또는  schroot -c cubrid  또는 schroot -c default 
또는 그냥 schroot 를 실행하면 default 가 실행된다.

이게 좀 복잡해 보이면, dchroot 를 사용한다.
  /etc/dchroot.conf 를 만들고, 다음 한줄을 넣는다.
hardy  /var/chroot32/hardy

  나중에 32bit 어플설정시 schroot 는 좀 이상 동작을 해서 dchroot 가 더 나은 듯 하다.
chroot 전환방법은 schroot 와 비슷
# dchroot -c hardy  또는 그냥  dchroot

 여기까지 기본 설정은 완료 실제적인 chroot 32bit 환경을 구축한다.

2. chroot 기본환경 구축, 설정
# debootstrap —variant=buildd —arch i386 hardy /var/chroot32/hardy http://ftp.daum.net/ubuntu
 젠투 사용자는 익숙할 것이다.(chroot 도) 설치시 필요하니... ^^
 명령에서 엿볼 수 있듯이  i386 아키텍쳐(?) 를 구축하기 위한 기본 시스템을 만든다.
 /var/chroot32/hardy 에 시스템 기본 파일이 만들어진것을 볼 수 있다.
 현 시스템(64bit)에서 필요한 파일들을 복사한다.
# cp /etc/resolv.conf /var/chroot32/hardy/etc/
# cp /etc/apt/sources.list /var/chroot32/hardy/etc/apt/

# cp /etc/passwd /var/chroot32/hardy/etc/
# cp /etc/shadow /var/chroot32/hardy/etc/
# cp /etc/group /var/chroot32/hardy/etc/
# cp /etc/sudoers /var/chroot32/hardy/etc/
# cp /etc/hosts /var/chroot32/hardy/etc/
/etc/fstab 에 chroot 에 필요한 설정을 추가한다.
/proc            /var/chroot32/hardy/proc      none rbind 0 0
/dev            /var/chroot32/hardy/dev        none rbind 0 0
/sys             /var/chroot32/hardy/sys       none rbind 0 0
/tmp            /var/chroot32/hardy/tmp        none rbind 0 0

필요하면 다음 항목도 추가한다.
/home                       /var/chroot32/hardy/home                 none rbind 0 0
/var/run/dbus            /var/chroot32/hardy/var/run/dbus      none rbind 0 0

추가한 후에 마운트 한다.
# mount -a


이제는 chroot 상태로 넘어가서 추가적인 패키지들을 설치한다.
# schroot  ( 또는 dchroot )
chroot 된 상태가 된다.( $ 로 표시하겠다)  그 다음에 패키지를 설치한다.
$ apt-get install wget debconf devscripts gnupg nano
$ apt-get update ; apt-get upgrade
필요하면 추가 설치
$ apt-get install vim aptitude
chroot 에서 빠져 나오려면,  exit  를 입력한다.

3. 32bit 어플 실행환경 설정


/usr/local/bin/do_dchroot  파일 생성 후, chmod 755 로 실행권한을 준다.(chroot 빠져나온상태)
#!/bin/sh

for arg; do
        arg=`echo $arg | sed -e 's/ /\\\ /g'`
        args=`echo $args $arg`
done

xhost +
/usr/bin/dchroot -d "`echo $0 | sed 's|^.*/||'` $args"

32bit 어플실행환경 파일이다.  이 파일을 이용해서 32bit 어플을 실행시킬 것이다.

gedit 으로 테스트를 해본다. (chroot 상태에서 , schroot 나 dchroot 로 )
$ apt-get install gedit
$ cd /usr/bin ; ln -s gedit gedit32
$ exit
chroot 를 빠져나와서
# cd /usr/local/bin ; ln -s do_dchroot gedit32
# gedit32
처럼 링크를 걸고 , 실행시키면 chroot 상태로 바뀌면서 gedit32 가 실행된다.
이런식으로 cubrid 도 실행할 것이다.

4. cubrid 어플 설치,실행.

 chroot 상태에서 cubrid 를 설치, 실행한다. (자세한 방법은 생략한다.)
$ sh CUBRID-8.1.4.1032-linux.sh  (설치)
$ . /root/.cubrid.sh
$ cubrid service start
다음 매니저를 실행해본다.
$ cubridmanager
를 실행하면 몇가지 에러가 발생한다.


위에서 한 방식으로 do_dchroot 로 32bit 어플실행 설정을 한다.
/usr/bin/cubridman_start  를 만들었다.  (chroot 상태)
#!/bin/sh
. /root/.cubrid.sh
cubridmanager

실행스크립트를 만들고, chroot 를 벗어나서 다음처럼 링크시킨다.
# cd /usr/local/bin ; ln -s do_dchroot cubridman_start
# cubridman_start
로 실행시킨다.

java , swt 관련 에러가 보이면, 다음  패키지를 설치한다.
$ apt-get install lilbswt3.2-gtk-java sun-java6-jdk    ( 또는 sun-java6-jre )
한글이 깨진다면.
$ apt-get install language-support-ko language-pack-ko language-pack-gnome-ko
$ locale-gen ko_KR.UTF-8

schroot 로 실행환경 설정
schroot 도 dchroot 와 동일한 형태의 스크립트는 안되지만, 비슷하게 처리할 수 있다.
# schroot -c hardy -p cubrid_start
# schroot -c hardy -p cubridman_start
위와 같은 방식으로 실행하면 된다.


반응형

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

,

우분투에서 팩스머신을 만들고자 한다.

[관련글]
    1) 팩스머신을 만들자 - #1. 팩스모뎀을 장착하라.
    2) 팩스머신을 만들자 - #2. 팩스 프로그램을 설치하자.




스텝 원 : 팩스모뎀을 장착하라

필요한 준비물은 팩스모뎀.
 * lucent 사의 칩셋을 사용하는 모뎀이 우분투에서 호환성이 좋다.

PC 에 장착을 하면 다음과 같은 명칭으로 나온다.

# lspci
Communication controller: Agere Systems 56k WinModem (rev 01)


WinModem 이라고 나온다. (lucent 칩셋을 사용한다)


커널모듈은 다음과 같다.

# lsmod | grep lt
ltserial                 11312  0
ltmodem               557038  1 ltserial

 

커널모듈이 적재되면서 생성되는지, 따로 mknod 로 생성되는지 다음 장치드라이버가 생성된다.

# ls -l /dev/ttySL*
/dev/ttySLTM0


보통 hylafax 같은 팩스 프로그램은 /dev/modem 을 사용한다.
설정을 바꿔도 되지만  심볼릭 링크를 해준다.


ln -s /dev/ttySLTM0 /dev/modem


제대로 인식이 되어 있는지 확인하려면 minicom 등을 실행시켜본다.



ps. 예전(dapper)에는 따로 컴파일해서 사용했었다.
http://ubuntuforums.org/showthread.php?t=198730

언제부터인지, 배포판 자체 커널에서 지원해주는 듯 싶다.(좋아졌군)
64bit 도 지원하나 다른 머신에서도 테스트 해봐야 겠다.

 

[추가]

1. dapper 는 2006년 릴리즈
  - 이후 08.04 (hardy) / 10.04 ( lucid ) / 12.04 ( precise ) 정도 까지 테스트
  - 어느 시점 부터 다시 배포판에서 빠진듯 하다.(정확하지는 않음)
  - 10.04 설정 참고 : https://blog.1day1.org/431

2. 64 비트 는 드라이버가 제공되지 않는다. 

# lspci
Communication controller: LSI Corporation LT WinModem (rev 01)

3. 12.04 이후는 테스트 못 해봄. (언제 부터인가 64bit 로만 써서, 테스트 못 해봄)

 

반응형

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

,
큐브리드를 설치하면서, 몇가지 겪었던 어려움을 정리한다.

윈도우, 우분투 에 각각 설치를 해봤다.
윈도우는 64bit 가 지원되지 않는다.  우분투는 64bit 환경에서 가능은 하지만 원활하지 않는다.
쓸데없는 고민을 하지 않기 위해 32bit 환경에 설치하는 것이 좋다.(추후 64bit 를 공식지원한다고 한다)

1. 윈도우 설치.
  설치시 별문제 없었음.
  다만  php 모듈 설치할때, dll 파일이 제대로 등록이 되지 않을때, 재부팅을 해보면 제대로 등록이 됨.
  윈도우쪽은 황당한(재부팅 신공) 해결책이 자주 나온다.

2. 우분투 32 bit 설치.
  이것도 별 문제 없음.
  다만 다운로드에 올라와 있는 php 모듈이 64bit 로 올라와 있음.
  (좀 혼동됨 - 32bit 도 올려놓으면 좋을 듯)

3. 우분투 64 bit 설치.
  여기서 많은 난관이 기다리고 있었음.
  일단은  cubrid 설치, 실행은 큰 이상이 없음.


 cubrid 서버만 실행하여 사용한다면 다음 과정은 필요없을지 모른다.
 따로 cubridmanager 는 다른 곳에 설치해서 사용해도 될 것이다.
 실제로 서버용에서 cubridmanager 까지 설치해 놓지 않는 경우가 많을 듯 하다.


 그러나, 동일한 서버에서 사용하려한다면, 이야기는 달라진다.
 테스트를 해보니, cubridmanager 실행시 자바 에러를 만나게 된다.
 이런 메세지.
JVM terminated. Exit code=13
/usr/bin/java
-Xmx512m
-jar /system/cubrid/cubridmanager/cmclient/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar
-os linux
-ws gtk
-arch x86
-showsplash
-launcher /system/cubrid/cubridmanager/cmclient/cubridmanager
-name Cubridmanager
—launcher.library /system/cubrid/cubridmanager/cmclient/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.3.R33x_v20080118/eclipse_1023.so
-startup /system/cubrid/cubridmanager/cmclient/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar
-exitdata 370013
-vm /usr/bin/java
-vmargs
-Xmx512m
-jar /system/cubrid/cubridmanager/cmclient/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar
정확한 이유는 모르겠지만, 32bit 로 컴파일된 큐브리드를 64bit 에서 실행하려고 했을때 문제인듯.
cubridmanager 쪽이 그런것으로 보아 java 와 관련이 있어 보임.

우회적인 해결책으로  chroot 로 32bit 환경을 만들고, chroot 상에서 실행하는 방법으로 처리하였음.
좀 복잡한 과정을 거치긴 하지만, 64bit 환경인 상태에서는 최선의 선택이 아닐까 생각됨.

chroot 로 32bit 환경을 만들어서 실행하는 방법은 다음 글에서 다루기로 한다.(좀 길다)

반응형

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

,
참 오늘은 신기한(?) 일들이 버라이어티 하게 벌어졌다.

하늘에서 쇼를 하고.
국회에서 쇼를 하고.

아무튼 역사적인 날이다.

그래 니들이 수고가 많다. 이것들아!

반응형

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

,
php 프레임워크 CI 한국사용자 포럼이 오픈하였습니다.

http://www.codeigniter-kr.org
입니다.

다른 프레임워크도 활발히 사용되었으면 좋겠네요.
php 쪽은 프레임워크의 사용률이 저조한 편입니다.

zend, cakephp 도 화이팅.

CI 로 만든 포럼, 게시판등도 오픈한다고 합니다.
개발자들을 행복하게 만드는 프레임워크가 되길...


반응형

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

,