ubuntu 에서 http + tomcat(mod_jk) 사용하기

그동안 가상화 호스팅과 웹호스팅(jsp)를 각각 받아 오다가 이번에 웹호스팅 기간이 만료 됨에 따라 가상화 호스팅으로 합치게 되었습니다.

웹호스팅을 받게되면 업체에서 jsp와 php와 mod_jk 설정을 알아서 해 주지만 가상화 호스팅을 사용할 경우 직접해야 하기 때문에 설정방법 공유해 드립니다.

- ubuntu 에서 DNS 서버 설정
- ubuntu 에서 http svn server 설정/운영 하기

위 서비스도 설치/운용하면 jsp 개발서버로 무리없이 사용하실 수 있을꺼 같습니다.

apache2, sun-java6 가 설치 되었다는 가정하에 진행합니다.

$ sudo apt-get install libapache2-mod-jk

mod-jk를 apt-get를 이용하여 설치 합니다. Continue reading

ubuntu 에서 http svn server 설정/운영 하기

이전에 포스팅한 ubuntu 에서 DNS 서버 설정 에서 svn 설정에 대한 부분 보충해 드립니다.

Subversion 서버는 기본적으로 제공되는 svnserve를 이용하는 방법과 http 서버를 이용하는 방법이 있습니다.

http 중에서 apache2 + dav_svn(libapache2-svn) 조합으로 svn 서버를 셋팅하는 방법을 알려드리겠습니다.

모든 과정은 apache2 가 설치되어 운영되고 있다는 가정하에 진행 됩니다.

먼저 subversion, dav_svn 패키지를 설치 합니다.

$ sudo apt-get install subversion libapache2-svn

설치가 끝나면 적당한 위치에 svn 저장로 루트 공만을 만들고 거기에 svn 저장소를 생성 합니다. Continue reading

ubuntu 에서 DNS 서버 설정

cafe??의 리눅스 가상화 호스팅을 신청하여 dns와 svn을 운영 하고 있습니다.
(http와 mail은 웹 호스팅 서비스를 이용)

혹시 가상화 호스팅받으면서 dns 설정에 문제 있으신분은 참고 하세요-
dns 설정도 할 줄 모르면 돈 주고 해야되더라구요;;

아래 내용은 ubuntu 10.04 기준이며 10.x 버전이라면 별 다를꺼 없을꺼 같습니다.

먼저 bind9 패키지를 설치합니다.

$ sudo su -
$ apt-get install bind9

종속성 있는 패키지까지 설치가 끝나면 자신의 도메인에 맞게 zone 파일들을 생성해줘야 합니다. Continue reading

android emulator kernel build

안드로이드의 예뮬레이터는 qemu를 안드로이드에 맞게 패치된 버전입니다.
안드로이드 커널도 패치된 qemu에 맞는 커널이 설치 되어있습니다.

기본 커널은 일반적인 피처들만 활성화 되어 있기 때문에 예뮬레이터 수준에서 이짓저짓을 해 볼려면 커널을 컴파일 해야 하는 경우가 있습니다.

repo를 이용하여 안드로이드 풀 소스를 다운로드 할 경우 커널은 다운로드 하지 않으므로 다음과 같이 다운로드 하셔야 합니다.

git를 이용하여 커널 소스를 다운로드, goldfish 버전으로 체크아웃을 하시면 됩니다. Continue reading

android에서 OOM Killer 회피하기

Android가 너무 자주 버전업이 되면서 내부적으로도 많은 부분이 너무 자주 바뀌는것 같아요..
주 업무가 안드로이드 단말 테스팅 툴 개발이라 이럴때마다 일 하기 싫어집니다.ㅠㅠ

2.1/2.2 버전은 화면에 UI를 그리고 있는 Activity/Service에 한해서는 OOM Killer를 피해갈 수 있었는데, 2.3 버전 부터 화면에 UI를 그리고 있어도 OS가 판단하기에 정리대상이라고 생각되면 OOM Killer에 의해서 프로세스가 킬 됩니다.

안드로이드의 OOM Killer(Out-Of-Memory Killer)는 기본적으로 Linux의 OOM Killer와 같은 컨셉입니다.

그렇다면 OOM Killer을 피해 갈 수 있는 방법은 무엇인가? Continue reading

가상화 호스팅 신청

회사 테스트 서버에 기생하고 있다가 설 연휴에 서버가 죽어 버리는 바람에 가상화 호스팅 서비스를 신청하게 되었습니다.
안그래도 이전부터 개인용 테스트 서버를 둬야지- 둬야지- 말 만 하다가 드디어 생겼습니다.

제일처음 한 것은 apache + dav_svn, php + websvn 셋업…
나도 이제 온라인 저장소가 생겼다구.+_+

여러개 파일에서 특정 문자열 찾기

egrep를 이용하여 특정 파일에 있는 문자열을 찾을수 있습니다.

$ egrep -i "패턴" *.java

현재 디렉토리에 대소문자 구분없이 파일 확장자가 .java 인 파일에 대해서 대소문자 구분없이 패턴에 일치하는 파일/내용을 찾는 방법 입니다.
하위 디렉토리까지 검색하고 싶으면 “ 를 사용 하면 됩니다.

$ egrep -i "패턴" `find . -iname "*.java"`

현재 디렉토리와 그 하위 디렉토리 중에 파일명이 대소문자 구분 없이 .java 로 끝나는 파일에 한해서,
대소문자 구분없이 패턴을 찾아내는 명령어 입니다.

하지만 “ 를 사용하면 shell args length 제한 때문에 수천, 수만개의 파일을 검색 할 수 없습니다.
다음과 같이 사용할 수 있지요- Continue reading

pkg 파일에서 필요한 파일 추출하기 (divx 코덱 설치)

QuickTime용 DivX 코덱을 사용하려면 pkg파일을 인스톨 해야하는데, 필요없는 플레이어들이 같이 깔려서 pkg파일에서 코덱만 쏙- 뽑아 올수 있는 방법 입니다.

QuickLook용 Suspicious Package 플러그인을 사용하면 pkg 내부의 파일리스트를 볼수 있습니다.

보시는 것 처럼 Library/QuickTime 이하에 디코더와 엔코더가 있음을 확인하고 Continue reading

android.uid.system 사용시 SD카드

1
2
3
4
5
6
7
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.idccc.blahblah" android:sharedUserId="android.uid.system">
  <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
    ....
  </application>
  <uses -permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

android:sharedUserId 를 사용하여 앱에 특정 권한을 부여 했을 경우 퍼미션을 셋팅하여도 SD카드를 사용할 수 없게됩니다.

예를들어 system 권한으로 돌아가는 앱에 다음과 같은 코드가 있으면 예외를 발생 시켜요.

if(mConfig.mAppProfiling &amp;&amp; Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
	Debug.startMethodTracing("trace_" + new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()));
}

Debug.startMethodTracing() 메서드는 sd카드에 trace 파일을 생성하기 때문에 sd카드를 사용 할 수 없어 예외가 발생…

system권한에 대한 보안상의 이유로 막아 둔 듯한데 사용할 수 있는 방법이 있습니다.
Continue reading