2015년 6월 19일 금요일

wine 설치및 사용하기

1. Wine Install
  1.1. DownLoad
    http://www.winehq.com/site/download-rh
  1.2. Install
    ] $ sudo rpm -Uvh wine*.rpm
  1.3. 확인
    ] $ wine notepad
2. IE Install
  2.1. DownLoad
    http://sidenet.ddo.jp/winetips/config.html 에서 최신버전 다운로드
  2.2. Install
    ] $ tar -zxvf wine-config-sidenet-Version.tgz
  ] $ cd wine-config-sidenet-Version
  ] $ ./setup
  * 설치시 시간이 많이 소요됩니다. 그래도 설치는 되더이다.
  * 관리자(root)로 설치를 하는 경우 에러 납니다. 주석을 달아주던가 아니면 일반사용자로 사용하심이...
  2.3. 실행
  ] $ wine iexplore
3. 프로그램 최신버전(2005년 11월 14일 현재기준)
  3.1. wine-0.9-1
  3.2. wine-config-sidenet-1.9.0

2012년 5월 17일 목요일

서버관리(Ubuntu)

1. 패키지 관리(apt-get)

  1.1. 패키지 검색(apt-cache)

      1.1.1. 검색(search)

         ] $ apt-cache search ${name}
         ] $ apt-cache search ${name} | grep ${name2}

  1.2. 설치된 패키지 검색(dpkg)

      1.2.1. 목록으로 출력(-l | --list [<pattern> ...])

         ] $ dpkg -l

      1.2.2. 패키지명으로 검색

         ] $ dpkg -l ${PackageName} | grep ii | awk '{print $2,":",$3}'

  1.3. 패키지 인덱스 정보 업데이트(apt-get update)

        apt-get은 각 패키지들에 대한 인덱스 정보를 가지고 있으며, 파일은 /etc/apt/sources.list 입니다.
        ] # apt-get update
          or
        ] $ suto apt-get update
        

  1.4. 패키지 인덱스 정보 업그레이드(apt-get upgrade)

        apt-get 패키지 전체를 새 버전으로 업그레이드 합니다.
        ] # apt-get upgrade
          or
        ] $ suto apt-get upgrade
        

2. 리눅스 명령어

2.1. 복사(cp)

2.1.1. 용도

    파일이나 디렉토리를 복사

2.1.2. 사용법

    cp [Options] ${SOURCE} ${DEST}
    cp [Options] ${SOURCE} ${DIRECTORY}

2.1.3. 옵션

    -a : 원본 파일의 속성, 링크 정보들을 그대로 유지하면서 복사
    -b : 복사할 대상이 이미 존재하는 경우 기존 파일을 백업하고 복사한다.
    -d : 만약 복사할 원본이 심볼릭 링크일때 심볼릭링크파일 자체를 복사한다.
    -f : 복사할 대상이 이미 존재하는 경우 기존 파일을 삭제하고 복사한다.
    -i : 만약 복사할 대상이 이미 존재하는 경우 사용자에게 물어보고 복사한다.
    -P : 원본파일 지정을 경로와 같이 지정을 하였을경우 그 경로 그대로복사한다.
    -p : 파일의 소유자, 권한, 그룹, 시간정보들이 보존된 상태로 복사된다.
    -r : 원본이 파일이면 그냥 복사되고, 디렉토리이면 디렉토리 전체가 복사된다.
    -s : 파일을 심볼릭링크 형태로 복사한다. 원본파일이름을 절대경로로 지정해야 한다.
    -u : 복사할 대상이 있을때 이 파일의 변경날짜가 같거나, 더 최근의 것이면 복사하지 않 는다.
    -v : 복사가 진행되는 상태를 보여준다.
    -x : 원본과 대상의 파일시스템이 다를 경우에는 복사하지 않는다.
    -R : 디렉토리를 복사할 경우 그 안에 포함된 모든 하위경로와 파일들을 모두 복사한다.

2.2. 마운트(mount)

2.2.1. 용도

    파일시스템을 마운트

2.2.2. 사용법

    mount [options] ${device} ${dir}

2.2.3. 옵션

    -a, --all 
    -F, --fork
    -f, --fake
    -i, --internal-only
    -l
    -n, --no-mtab
    --no-canonicalize
    -p, --pass-fd
    -s 
    -r, --read-only
    -w, --rw
    -L
    -U
    -t, --types
    -O, --test-opts
    -o, --options
    -B, --bind
    -R, --rbind
    -M, --move
2.2.4. 사용예
    ] $ sudo mount -o loop rootfs.img mnt
    ## loop device는 파일을 블럭 디바이스 처럼 엑세스 할 수 있게 해주는 가상의 장치를 의미한다.
    ] $ sudo mount -t ext3 -o loop rootfs.img mnt
    ## device remount 하기(Android의 '/system' 디렉토리 remount)

    ] # mount -rwo remount,rw /dev/block/mmcblk0p2 /system

2.3. dd


2.3.1. 용도


2.3.2. 사용법

2.3.3. 옵션


2.4. df


2.4.1. 용도


2.4.2. 사용법

2.4.3. 옵션


2.2.4. 사용예
    ] $ df -Th
    ## 파일 시스템을 확인하기

2012년 4월 14일 토요일

Git(Version control system)

1. Git

        Git is distributed version control system focused on speed, effectivity and real-world usability on large projects

2. 서버 설치

    2.1. 리눅스 계열(우분투)

        2.1.1. 설치 (root)

            ] # apt-get update
            ] # apt-get install git gitosis

        2.1.2. 사용자 추가 및 저장소 생성 (root)

            ] # adduser --system --shell /bin/bash --gecos 'git SCM user' --group --disabled-password --home /home/git git
            ] # su git
            ] $ mkdir /home/git/repositories

        2.1.3. 인증키 생성 (user)

            ] $ su ${UserID}
            ] $ ssh-keygen -t rsa -C "${UserID}"
            ] $ scp /home/${UserID}/.ssh/id_rsa.pub ${AdminID}@${AdminHost}:${UserID}.pub

        2.1.4. gitosis-init 실행 (user)

            ] $ sudo -H -u git gitosis-init < userid.pub
            ] $ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

        2.1.5. 저장소 다운로드 (user)

            ] $ git clone git@${GitServerAddr}:gitosis-admin.git
            ] $ cd gitosis-admin

    2.2. Windows 계열

    2.3. 서버 사용

        2.3.1. 프로젝트 관리

            ] $ cd gitosis-admin
            // 환경 설정 파일 수정(프로젝트 추가/수정/삭제 등.)            ] $ vi gitosis.conf

{
            [gitosis]

            [group gitosis-admin]
            writable = gitosis-admin
            members = ${AdminID}

            [group ${ProjectName}]
            writable = ${ProjectName}
            members = ${UserID}         
}
            // 수정된 내역을 서버에 적용
            ] $ git commit -a -m "Added a new Project(${ProjectName})"
            ] $ git push

            // 프로젝트 디렉토리 생성 및 git 초기화
            ] $ mkdir ${ProjectName}
            ] $ cd ${ProjectName}
            ] $ git init

            // 프로젝트 디렉토리에 소스 추가
            // 만약 초기에 소스가 없으면 빈파일이라도 생성해야 함. (touch README)
            // 파일이 하나도 없으면 push 단계에서 master가 없다는 에러가 발생함.
            ] $ cp ${ProjectSource} ./

            // 소스 업로드
            ] $ git add .            // 현재 디렉토리를 포함한 모든 서브 디렉토리의 내용을 추가
            ] $ git commit -a -m "Initial import"   // Git 서버에 적용
            ] $ git remote add  origin git@${GitServerAddr}:${ProjectName}.git
            ] $ git push [origin master]             // 원격지 Git 서버에 push

3. 사용

    3.1. 소스 다운로드

         3.1.1. git 명령을 이용

                ]$ git clone git@ipaddr:Storage.git storage


    3.2. branch 사용

                 ]$


    3.3. tag 사용

        3.3.1. tag 생성

                 ]$ git tag -a ${TagName} -m "Comment"  # 태그 달기
                 ]$ git push --tags                                    # 태그 정도 업데이트(to Server)

        3.3.2. tag 제거

                 ]$ git tag -d ${TagName}      # 태그 제거
                 ]$ git push --tags                 # 태그 정도 업데이트(to Server)

    3.4. patch 사용

        3.4.1. --no-prefix 옵션

                ]$ git diff --no-prefix > ${patchfile}   # 패치 파일의 생성
                ]$ cd path/to/top                             # 패치할 소스의 최상위 디렉토리로 이동
                ]$ patch -p0 < ${patchfile}               # 패치 적용

        3.4.2. --no-prefix 옵션을 사용안함

                ]$ git diff > patchfile          # 패치 파일의 생성
                ]$ cd path/to/top              # 패치할 소스의 최상위 디렉토리로 이동
                ]$ patch -p1 < patchfile     # 패치 적용

        3.4.3. 패치 범위를 지정해서 파일 생성

                ]$ git diff ${start}..${end} > ${patchfile}          # 패치 파일의 생성

    3.5. repo 사용

        3.5.1. 소스 다운로드

                ]$ repo init -u git@${serveraddr}:${projectname}/manifest.git -b ${branchname}
                ]$ repo sync
                ]$ repo start ${branchname} --all

4. ASB