2012-09-14

Linux]CentOS 5.0에 subversion/svn 설치


출처 : http://tykim.wordpress.com/2007/06/04/centos-50%ec%97%90-subversionsvn-%ec%84%a4%ec%b9%98/

 

CentOS 5.0에 subversion/svn 설치

Filed under: System GuruIT — Peter Kim @
CentOS (RHEL 5.0)에 Subversion 1.4.3의 설치 Know-How를 공유한다.
대표적인 형상관리 서버로 CVS/CVSNT, Subversion등이 있다.
우선 순서는
  1) Subversion 설치
  2) Repository 생성
  3) Daemon 설정
  4) Client 사용
  5) 활용
으로 설명하려 한다.
1. 설치
    yum으로 의외로 쉽게 설치된다.
    #yum install subversion
    기본적으로 이렇게 설치하면 File System으로 관리할 수 있는 기본 패키지가 설치된다.
    Subversion으로 repository관리는 두가지로 File System 및 Berkeley DB를 선택 사용할 수 있다.
    Berkely DB를 사용하기 위해서는 http://www.oracle.com/technology/software/products/berkeley-db/db/index.html
에 서 설치하고 쓸 수 있는데.. 이곳저곳에서 관리 파일 용량이 많아지면 문제가 있다는 report가 있어 안전하고 직관적(실제 물리적 foder/file구조로 관리할 수 있게끔 file system 방식으로만 쓰고자 한다.
2. Repository 생성
   1) Repository 생성
      우선 Root Repository를 생성해야 한다. (이유: 3.1) 참조)
      #mkdir /data1/svn
      #cd /data1/svn
      #svnadmin create –fs-type fsfs project
      이렇게하면 /data1/svn에 project directory 및 기본적으로 하위 디렉토리들이 만들어 진다.
      인증/보안을 위한 몇가지 옵션을 설정해 주어야 한다.
   2) 기본적인 환경 설정
       #vi /data1/svn/project/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
기본적으로 anonymous access 불가, 인증 성공한 사람만 write권한, 인증방식은 passwd 파일 방식
       #vi /data1/svn/project/conf/passwd
        [users]
        userid1=password1
        userid2=password2
 접속을 허용할 userid 및 password를 기재해주면 된다.
3. Daemon 설정
   기 제작한 project repository에 대한 file-system으로의 생성, 인증, password의 본적은 환경 설정은 마쳤고, 이제 subversion daemon을 실행하기 위한  시스템 환경 설정이 남았다.
   1) 환경 설정
       #vi /etc/rc.d/init.d/subversion 을 열어 17 줄의 SYSCONFIG 내용을 확인한다.
       SYSCONFIG=”/etc/sysconfig/subversion”
       #vi /etc/sysconfig/subversion
         OPTIONS=”–threads –root /data1/svn”
         이렇게 하여 svn의 root repository directory를 설정해 준다.
   2) 시스템 가동
        #/etc/rc.d/init.d/subversion start
       이렇게 하면 subversion이 daemon으로 동작하게 된다.
       환경 변수를 바꾸고 subversion을 restart해야한다면
        #/etc/rc.d/init.d/subversion restart
   3) Booting시 자동 실행
        #vi /etc/inittab
        우선 서버의 실행 Level을 확인해야 하는데  /etc/inittab의 18번째 줄 내용을 확인한다.
        id:5:initdefault:
        본 id와 initdefault사이의 값인 5값을 확인한다. (X11로 booting한다는 의미)
        #cd /etc/rc5.d
        #vi S99local
         /etc/rc.d/init.d/subversion start &
    적당한 줄에 상기 내용을 추가한다.
4. Client 사용
    - http://blog.empas.com/mcchae/19118563 에 워낙 잘 설명이 되어 있어서 pass
5. 활용
    - 전체적으로 subversion으로 여러 사람의 협업을 통해 소스 형상 관리 및 Binary 관리등을 관리해야 하고, 프로젝트별 권한, Backup 및 Restore, 관리자 통계(오늘 어떤 파일/내용이 수정되었고, 누가 올렸고.. 등등) 여러가지  Tunning작업을 해야한다.
    - IT Project에서는 trac을 많이 쓰고 있고, 비슷한 형태로 http://oss.segetech.com/bugzilla-svn-wiki.html을 참고해도 될 것 같다.
Technorati Tags: 
Powered by ScribeFire.

Linux]CentOS 4.4에서 Java설치하기



CentOS 4.4에서 Java설치하기

1.
Sun의 Downloads페이지에서 플랫폼에 맞는 파일(self-extracting file)을 다운로드받는다.
2.
jpackage-utils과 rpm-build패키지를 설치한다.
3.
jpackage-nonfree repository에서 java-1.5.0-sun패키지를 다운로드받는다.(yumdownloader 이용)
4.
다운받은 파일들을 /usr/src/redhat/SOURCES/ 로 옮기고, 패키지를 빌드한다.
setarch i586 rpmbuild –rebuild java-1.5.0-sun*
(플랫폼은 알아서 변경해주는 센스)
5.
설치한다.
만약 libXp 라이브러리가 없다는 에러가 발생하면 xorg-x11-deprecated-libs 패키지를 설치해준다.
ODBC관련 에러가 뜨면 unixODBC-devel 패키지를 설치해준다.
끝.
SUN에서 제공하는 RPM을 이용해도 되지만, 그 경우 패키지 업그레이드시 사라질 수도 있다고 한다.
믿거나 말거나. 속는셈치고 믿어보고 이렇게 설치했다. java-1.5.0-sun-compat 라는 패키지도
있던데 JPackage Java compatibility package for Sun’s JDK 라고 주석이 붙어있는걸 보니
SUN의 패키지를 설치하고 이걸 설치해도 될 것 같기는 함.

Linux] centos 5.0 설치하기

 출처 : http://www.howtoforge.com/perfect_setup_centos5.0

Linix] centos45_oracle10gr2설치하기


이 문서는 http://supike.spaces.live.com/blog/cns!502FB505094D1443!377.entry http://tykim.wordpress.com/2007/04/11/red-hat-rhel4에-oralcle-10g-r2-설치-intsall-howto 사이트를 참조하여 재구성 하였으며, 전체적으로는 http://tykim.wordpress.com/2007/04/11/red-hat-rhel4에-oralcle-10g-r2-설치-intsall-howto를 기반으로 하였 고, 단지 1가지 측면의 설치 방법을 다루고 있다. 
================================================================================================
CentOS 4.5 에 Oralcle 10g R2 설치, Intsall HOWTO
Filed under: Syste m Guru — Peter Kim @ 수정 : journae
CentOS4.5(RedHat REHL4 clone) 에서 10g를 설치 가이드 자료가 많지 않아 기록차원으로 남긴다. 
0.개요
   1) 시스템 요구 사항 검증
   2) 디렉토리 생성
   3) 오라클 그룹 및 사용자 계정 생성
   4) Linux 커널 매개변수 설정
   5) Oracle계정 Shell Limit 설정
   6) Oracle 계정 환경 변수
   7) Oracle 설치   

Oracle 사용 
0. 전제 조건 OS 는 쉽게 구할 수 있는 Centos 4.5 를 사용했다. 처음에 Centos 5.0 으로 설치를 시도 했으나 gcc, glibc 등의 버전이 맞지 않아 4.5로 downgrade 한 후 다시 설치를 진행했다.
참고로, centos 설치도 GUI를 지원하는 관계로 설치가 예전보다 훨씬 편하다. 아직 윈도우 보다는 불편(?)하지만 …^^ 

1. 시스템 요구사항 검증1) Kernel 버전 확인 하여 Kernel버전 및 Architecture(i386, x86_64등)을 확인
    # uname -a

2) 설치 필요 패키지를 확인
    * gcc-3.4.3-9.EL4
    * make-3.80-5
    * binutils- 2.15.92.0.2-10.EL4
    * openmotif-2.1.30-11
    * setarch-1.6-1
    * compat-db-4.1.25-9
    - # rpm -q <패키지명> (ex:rpm -q binutils)으로 설치 여부 및 버전확인하여 최근 상위 본으로 설치한다. 특히 binutils는 최신본으로 설치할 것 (binutils를 상기 버전으로하면 중간에 skip가능한 오류가 하나 나옴)
    - 패키지의 설치는 RHN의 up2date 혹은 CentOS의 yum을 통해서 update하거나,      RPM repository 서비스 site를 이용하여 해당 RPM을 받아 직접 설치한다.
    - ex) yum install gcc … (package name)
    - 참고로 yum을 사용해 본 결과 상당히 편함을 느꼈다. 

2. 오라클 그룹 및 사용자 계정 생성Oralce의 운영을 위해 필요한 계정/그룹을 설치한다. —————————————————————————————-
# /usr/sbi n/groupadd oracle
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oracle -G dba oracle
# passwd oracle
—————————————————————————————-

3. 디렉토리 생성Oracle 10g (10.2.0.1.0) 설치에 필요한 디렉토리 및 권한을 설정한다. ————————————————————————————— 
# mkdir -p /u 01/app/oracle   (Oralce 프로그램 설치 폴더)
# mkdir -p / u02/ oradata      (Oracle 데이터 설치 폴더)
# chown -R oracle:oracle / u01/app/oracle / u02 /oradata# chmod -R 775 / u01/app/oracle / u02 /oradata
—————————————————————————————-

4. Linux 커널 매개변수 설정Oracle 운영에 필요한 커널 매개변수를 아래와 같이 설정한다.—————————————————————————————-
# cat >> /etc/sysctl.conf <  > kernel.shmall = 2097152  > kernel.shmmax = 2147483648  > kernel.shmmni = 4096  > kernel.sem = 250 32000 100 128  > fs.file-max = 65536  > net.ipv4.ip_local_port_range = 1024 65000  > EOF
# /sbin/sysctl -p
—————————————————————————————-
아래와 같이 상기 커널 파라메터가 적용되었는지 확인 한다. 
—————————————————————————————-
# /sbin/sysctl -a | grep shmkernel.shmmni = 4096kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shm-use-bigpages = 0
# /sbi n/sysctl -a | grep semkernel.sem = 250        32000   100     128
# /sbin/sysctl -a | grep file-maxfs.file-max = 65536
# /sbin/sysctl -a | grep ip_local_port_rangenet.ipv4.ip_local_port_range = 1024     65000—————————————————————————————-

5. Oracle계정 Shell Limit 설정Oracle 계정의 shell limit을 아래와 같이 설정한다.
—————————————————————————————-
cat >> /etc/security/limits.conf
cat >> /etc/pam.d/login

6. Oracle 계정 환경 변수Bourn/Korn 쉘의 경우 ~oracle/.bash_profile 파일에 대해서 아래 내용을 추가 하도록 한다.
—————————————————————————————-
export ORACLE_BASE=/disk01/app/oracle                              
export ORACLE_SID=                     
* Note : SID를 orcl로 미리 설정하였음.
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1.0/db_1   
* Note : 설치 폴더를 미리 설정하였음.
export PATH=$PATH:$ORACLE_HOME/binexport LD_LIBRARY_PATH=$ORACLE_HOME/lib
—————————————————————————————-

7. 시스템 Rebooting & Check Version 시스템을 Reboot 한다.
# vi etc/redhat-release 
(파일의 내용을 redhat-4 확인 / CentOS일 경우 인식못함으로 변경) 위의 파일의 내용을 아래와 같이 변경하여 사용한다.
Red Hat Enterprise Linux As release 3 (Taroon) ”

8. Oracle 설치1) Oracle 해당 버전 download     
a. “http://otn.oracle.com/software/products/database/oracle10g/index.html” 에서         RHEL 4AS 64bit를 위해 x86-64bit인 “Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86-64″를 다운로드 받는다.        (받는 위치는 / u01/app/oracle 에 저장한다.)     
b. “unzip -d 10201_database_linux_x86_64.cpio.gz”하여 unzip을 해주고     
c. “cpio -idmv < 10201_database_linux_x86_64.cpio”를 통해서 묶음을 풀어준다.       (이러면 압축은 /u01/app/oracle/database 에 풀린다)

** 실제 파일은 10201_database_linux32.zip 파일이 다운된다. 이 파일을 푸는 방법은 unzip 10201_database_linux32.zip 하면 현재 폴더에 database 밑에 쭈~욱 풀리게 된다.

2) oracle 계정으로 login 및 설치 명령
————————————————————————————— -
$ cd /u 01/app/oracle/database
$ ./runInstaller
이때부터는 GUI 형태이므로 설명 생략 설치폴더는 / u01/app/oracle/product/10.2.0.1.0/db_1 으로 기재 
—————————————————————————————-
(RHEL4 운영체제에서 binutils, gcc, openmotif에대한 점검작업이 실패한 경우에는 경고 메시지를 무시하고 다음 단계로 진행할 것. )

9. Oracle 사용 확인 
1) Oracle Enterprise Manager 10g Database Control    설치 후 안내화면에 데이터베이스 컨트롤 URL이 나오면 기록해 놓았다가 접속    
- User Name: SYS    
- Password: <설치과정에서 입력한 패스워드>    
- Connect As: SYSDBA

2) 데이터베이스 시작 및 중단
—————————————————————————————-
$ sqlplusSQL> shutdown immediate * Oracle instance 종료 
SQL> startup                           
* Oracle instance 시작 
—————————————————————————————-

Linux] CentOS 일반 사용자 추가 방법


사용자 추가 작업
# useradd 추가할 사용자 id

# passwd 추가할 사용자 id
  비밀번호 입력

Linux] CentOS 에서 한글 깨지는 문제 해결 방법


CentOS 4.2에서 한글 깨지는 문제 해결방법 입니다.
# /etc/sysconfig/i18n 파일에서
LANG="ko_KR.UTF-8"  =====> LANG="ko_KR.eucKR" 로 바꾸시면 됩니다.(없으면 추가)

FreeBSD] 암호없이 ssh/scp사용방법

이 글은 암호없이 scp를 사용하는 방법을 설명한다.


리눅스 시스템 관리자는 자주 컴퓨터간에 파일을 복사하거나 파일을 여러 컴퓨터로 전송한다.
ftp를 사용해도 되지만, scp를 사용하면 많은 이점이 있다.
ftp는 LAN/WAN에 내용(심지어 암호도)을 그대로 전송하지만, scp는 암호화하여 전송하기때문에 ftp보다 안전하다.


scp 의 장점은 쉽게 스크립트에서 사용할 수 있는 점이다. 파일을 리눅스 컴퓨터 100대로 복사한다고 가정한다. 직접 100번 복사 명령어를 실행하는 것보다 스크립트를 작성하고 싶을 것이다.
스크립트에서 ftp를 사용하면 로그인할때마다 암호를 물어보기때문에 힘들다.
(역주; netrc 파일을 사용하여 암호를 자동으로 입력하게 만들 수 있지만 보안상 위험하다).

대 신 scp를 사용하는 경우 원격 리눅스 컴퓨터가 암호를 물어보지 않도록 설정할 수 있다. 믿거나 말거나 이 방법은 ftp보다 훨씬 더 안전하다!


scp의 기본 문법은 다음과 같다.
현재 컴퓨터에 있는 'abc.tgz' 파일을 'bozo'라는 원격컴퓨터의 /tmp 디렉토리로 복사하려면:


scp abc.tgz root@bozo:/tmp


그러나 이 경우 bozo의 root 암호를 물어본다.
암호를 물어본다면 스크립트에서 쉽게 사용할 수 없다.
해결책은 다음과 같다 (한번만 해주면 "암호없이" 무제한 scp로 복사할 수 있다):


1. 나중에 scp를 사용하여 파일을 복사할 사용자를 결정한다.
물론 root가 가장 강력하고, 난 개인적으로 root를 사용한다.
여기서 root를 사용할때 발생할 수 있는 보안상 문제점을 강의할 생각은 없다.
내가 지금 무슨 말을 하는지 모르겠다면 root가 아닌 일반 사용자를 사용하라.
결정했다면 이제 그 사용자로 로그인하여 다음 단계를 진행한다.


2. 컴퓨터에 공개키(public key)와 비밀키(private key)를 만든다.
이 게 뭔가? 공개키 암호화 방식을 모른다면 15초간 설명하겠다.
공개키 암호화 방식은 수학적으로 연관된 공개키와 비밀키를 만든다.
그런 다음 공개키는 누구에게라도 줄 수 있지만, 비밀키는 아무에게도 알려주면 안된다.
키들의 수학적 구성상 신기하게도 누구나 공개키를 가지고 내용을 암호화할 수 있지만,
비밀키를 가진 당신만이 암호화한 결과를 해독할 수 있다. 어쨋든 두 키를 만드는 명령은:


ssh-keygen -t rsa


3. 다음과 같이 출력한다:
"Generating public/private rsa key pair"
"Enter file in which to save the key ... "
그냥 enter를 누른다.


4. 그러면 다음과 같이 출력한다:
"Enter passphrase (empty for no passphrase):"
passphrase 를 사용하지 않기때문에 enter를 두번 누른다.


5. 그러면 마지막으로:
"Your identification has been saved in ... "
"Your public key has been saved in ... "
방금 만든 공개키 파일명과 위치를 기억하라 (항상 파일명이 .pub로 끝난다).


6. 공개키를 파일을 복사할 모든 원격 리눅스 컴퓨터에 복사한다.
scp나 ftp를 사용하여 복사한다. root를 선택했다면 (다시 단계 1의 경고를 주의하라),
키는 /root/.ssh/authorized_keys (철자 조심!)에 있어야 한다. root가 아니고 예를 들어 clyde로 로그인한다면,
/home/clyde/.ssh/authorized_keys 에 있어야 한다. authorized_keys 파일이 다른 컴퓨터의 키를 저장하고 있을 수 있기때문에, 파일에 이미 내용이 있다면 (새파일을 덮어쓰지않고) 공개키 파일 내용을 뒤에 추가해야 한다.


이제 끝이다. 별다른 문제가 없다면 파일을 암호없이 원격컴퓨터로 scp할 수 있다. 다시 한번 테스트해보자.
컴퓨터에 있는 'xyz.tgz' 파일을 'bozo'라는 원격컴퓨터의 /tmp 디렉토리로 복사한다


scp xyz.tgz root@bozo:/tmp


와 !!! 암호를 물어보지 않고 복사가 된다!!


일단 암호 하나로 컴퓨터에 로그인하면 모든 원격컴퓨터에 접근할 수 있기때문에 보안에 대해서 주의하라.
그래서 암호를 더 잘 보호해야 한다.


이제 즐길 차례다.
컴퓨터에 있는 'houdini'란 파일을 10개 도시에 흩어져있는 원격컴퓨터의 /tmp 디렉토리로 복사하는 짧은 스크립트를 (5분 안에)
작성해보자. 물론 원격컴퓨터가 100대거나 1000대라도 마찬가지다.
원격컴퓨터들의 이름은: brooklyn, oshkosh, paris, bejing, winslow, rio, gnome, miami, minsk, tokyo.
스크립트는 다음과 같다:


#!/bin/sh
for CITY in brooklyn oshkosh paris bejing winslow rio gnome miami minsk tokyo
do
scp houdini root@$CITY:/tmp
echo $CITY " is copied"
done

신기한 마술같다.
스크립트에서 echo 줄은 현재 진행상황을 알려준다.


혹 시 쉘스크립트가 생소하다면 좋은 투토리얼이 있다:
http://www.freeos.com/guides/lsst/.


알 다시피 scp는 더 강력한 ssh의 일부이다.
위의 6 단계를 마쳤다면 원격컴퓨터에서 명령어를 실행할 수 있다
(물 론 암호없이!). 예를 들어, brooklyn 이라는 원격컴퓨터의 시간을 보려면:


ssh brooklyn "date"


이제 두 개념을 합쳐서 진짜로 멋진 스크립트를 만들어보자. 모든 원격 리눅스 컴퓨터를 백업하기란 쉬운 일이 아니다. 아래 스크립트는 각 컴퓨터의 /home 디렉토리를 백업한다. 상용 백업 소프트웨어와 비교하면 기능은 매우 기본적이지만, 가격면에서는 따라올 수 없다. 대부분의 상용 백업 소프트웨어는 백업할 컴퓨터 대수대로 가격을 매긴다. 이런 패키지를 사용한다면 원격컴퓨터 100대에 대한 비용을 지불하는 대신 원격컴퓨터를 한 컴퓨터로 백업하는 스크립트를 사용한라. 그리고 그 컴퓨터에서만 상용 패키지를 사용하면 99대분 가격을 절약할 수 있다 ! 어쨌던 스크립트를 참고하여 자신의 상황에 알맞는 스크립트를 작성할 수 있다. 이 스크립트를 cron 작업에 걸어둔다 (원격컴퓨터에는 필요없다). 주석을 보면 자세한 내용을 알 수 있다:

#!/bin/sh

# 변 수는 구별하기위해 대문자로 지었다

# 스크립트를 실행하기 전에 원격컴퓨터마다 '/tmp/backups'라는 디렉토리 를
# 만들고, 컴퓨터에는 '/usr/backups'라는 디렉토리를 만들어야 한다


# 컴퓨터에서,
# date 명 령어 결과를 보기 좋게 만들어서 "DATE" 변수를 설정한다
#
DATE=$(date +%b%d)

# 'for 반 복문'은 세가지 작업을 한다

for CITY in brooklyn oshkosh paris bejing winslow rio gnome miami minsk tokyo
do

# 1) 원격컴퓨터의 하드디스크가 꽉차지 않도록 저번에 실행한 스크립트가 만든 tarball을 삭제하 고 
# 확인을 위해 echo한다
#
ssh -1 $CITY "rm -f /tmp/backups/*.tgz"
echo $CITY " old tarball removed"

# 2) 원격컴퓨터마다 /home 디렉토리 를 tarball로 만들어서 /tmp/backups에 저장한다
# tarball 파일명은 구별하기위해 도시명과 시간으로 짓 는다
#
ssh $CITY "tar -zcvpf /tmp/backups/$CITY.$DATE.tgz /home/"
echo $CITY " is tarred"

# 3) 원격컴퓨터에 있는 tarball을 /usr/backups 디렉토리로 복사해온다
#
scp root@$CITY:/tmp/backups/$CITY.$DATE.tgz /usr/backups
echo $CITY " is copied"

done


# 나머지 부분은 오류검사용으 로 없어도 된다:

# 파일명에 날짜를 포함한 오류파일을 만든다. 
# 백업이 안된 컴퓨터가 있다면 이 파일 에 기록한다
#
touch /u01/backup/scp_error_$DATE

for CITY in brooklyn oshkosh paris bejing winslow rio gnome miami minsk tokyo

do

# tarball이 복사되었는지 검사한다. 없다면 오류파일에 기록한다
# '||'은 앞 에 있는 부분이 참이 아닐때만 뒤에 있는 부분을 실행한다는 뜻이다
#
ls /u01/backup/$CITY.$DATE.tgz || echo " $CITY did not copy" >> scp_error_$DATE


# tarball을 정상적으로 열 수 있는지 검사한다. 문제가 있다면 오류파일에 기록한다.
tar ztvf /u01/backup/$CITY.$DATE.tgz || echo "tarball of $CITY is No Good" >> scp_error_$DATE

done



출처 : linux gazette