RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'라이브러리'에 해당되는 글 1

출처 : 대전국제IT교육센터 정성재 강사

 

1. 소스를 이용한 프로그램제작과 설치
(1) 오픈소스 프로그램얻기
   1) 프로그램형태: 소스는 보통 tar압축파일형태로 되어 있다. 파일의 형태를 자세히 보면 보통
                   tar.gz이나 tgz로 되어 있다. 이 소스코드에는 원래 프로그램들이 계층적 디렉
                   토리 구조로 되어있고 .C언어로 만들어진 소스코드, 컴파일을 위한 Makefile,
                   그리고 각종 문서들이 포함되어 있다.
   2) 프로그램구하기: 소스프로그램은 GNU웹사이트를 이용해 엄청나게 다양한 소스를 얻을 수 있다.
                     아파치같은 웹서버용 프로그램은 http://www.apache.org에서 얻는 등 대부분
                     무료로 제공하고 있다.
   3) 소스프로그램 압축풀기
     ㄱ. 개요: tar명령의 zxvf옵션을 이용하여 푼다.
     ㄴ. 사용예
        tar zxvf apache_1.3.26.tar.gz
(2) 소스컴파일
   1) 개요: 소스를 풀었으면 컴파일을 할 수 있다. 컴파일을 하기 위해서는 configure스크립트,
           GNU C 컴파일러인 gcc, 의존성 검사기인 make등의 응용프로그램이 필요하다.
   2) configure : 해당소스프로그램의 환경설정을 하는 스크립트이다. 대규모 소스 코드 패키지들은
                 대부분 소스 코드의 최상위 디렉토리에 존재한다. 사용자는 이 스크립트를 수정하
                 거나 특별히 설정할 필요는 없다. 이 스크립트는 성공적인 컴파일을 하기 위해
                 필요한 컴파일러, 라이브러리,유틸리티, 기타 정보를 시스템에서 찾아낸다. 이 스
                 크립트는 이 정보를 이용해 사용자 시스템에 적당한 소프트웨어 패키지가 생성되도
                 록 Makefile을 만든다.
   3) make: 소프트웨어를 컴파일하는 유틸리티이다. make는 타겟과 의존성(dependencies)관계하에서
           작업하고 최종적으로 실행파일을 만든다.
   4) make install: 컴파일된 실행파일을 지정한 속성으로 지정된 디렉토리에 설치하도록 한다.

2. 공유라이브러리 관리
(1) 공유라이브러리의 개요
   리눅스 시스템에서 어떤 프로그램이 컴파일될 경우 디스크, 메모리, 기타 기능을 처리하는 시스템
  라이브러리 함수가 필요하게 된다. 예를 들어, 프로그램에서 printf()가 사용되었지만 프로그래머
  는 printf()의 소스코드를 제공하지 않고 이미 이런 함수들이 포함되어 있는 라이브러리를 대신
  이용하기 원할 것이다. 컴파일러가 printf()가 사용된 코드를 링크할 필요가 있을 경우 이것은 시
  스템 라이브러리에서 찾을 수 있고 실행 파일로 복사된다. 이러한 라이브러리를 이용해 만들어진
  실행 파일은 독립적으로 존재하며 실행할 때에 추가 코드가 필요하지 않으므로 '정적으로 링크
  되었다.(statically linked)'고 말한다. 정적으로 링크된 파일은 몇가지 단점이 있다. 우선 모든
  라이브러리 함수가 실행파일에 포함되어 있으므로 파일 크기가 비교적 크다. 또한 동일한 라이브러
  리가 포함된 여러 프로그램이 실행될 경우 메모리의 낭비가 생긴다. 이러한 문제를 없애기 위해
  많은 프로그램이 동적으로 링크된다. 이러한 프로그램은 동일한 루틴을 이용하지만 파일에 라이브
  러리 코드가 포함되어 있지 않고 대신 실행 시에만 링크가 된다. 이 동적 링크는 여러 프로그램이
  메모리에서 동일한 라이브러리를 이용할 수 있게 하고 파일의 크기도 작게한다. 동적으로 링크되는
  라이브러리는 많은 응용프로그램에 공유되며 이를 공유라이브러리(Shared libraries)라 부른다.
(2) 공유라이브러리의 특징
   1)의존성: 동적으로 링크된 프로그램은 적어도 하나 이상의 공유라이브러리가 필요하다. 만일
            필요한 라이브러리가 존재하지 않거나 찾을 수 없으면 프로그램은 실행되지 않는다.
            예를 들면, GNOME 그래픽환경에서 동작하는 응용프로그램을 실행하려고 할 때 관련된
            GTK+라이브러리가 설치되어 있지 않은 경우이다.
   2)링크: 동적으로 링크된 실행 파일은 실행시에 공유 오브젝트에 대한 동적 링커인 ld.so에 의해
          검사된다. 이 프로그램은 실행 파일을 점검하고 시스템의 공유 라이브러리에 대한 의존성
          문제를 해결한다. 만일 ld.so가 지정된 라이브러리를 찾지 못하면 파일은 실행되지 못한
          다.
(3) 관련명령어
   1) ldd
     ㄱ. 설명: 각 프로그램에서 필요한 공유라이브러리를 보여준다. 라이브러리명과 파일시스템에서
              의 위치를 보여준다.
     ㄴ. 사용법
        ldd 프로그램
     ㄷ. 사용예
        [posein@www posein]$ ldd /bin/bash
        libtermcap.so.2 => /lib/libtermcap.so.2 (0x4002e000)
        libdl.so.2 => /lib/libdl.so.2 (0x40032000)
        libc.so.6 => /lib/i686/libc.so.6 (0x40036000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
         => 네 개의 공유라이브러가 필요하다.
   2) ldconfig
     ㄱ. 설명: 기본 공유라이브러리의 위치인 /usr/lib, /lib와 /etc/ld.so.conf에 등록된 디렉토리
              , 그리고 지정된 위치를 추가해 ld.so캐시 파일을 갱신한다.
     ㄴ. 사용법
        ldconfig [option] [라이브러리_위치]
     ㄷ. option
        -p : 캐시를 새로생성하지 않고 현재 캐시 내용만 보여준다.
        -v : 실행시 진행 상황을 보여준다.
     ㄹ. 사용예
        a. [root@www /root]# ldconfig
            => 캐시를 다시 생성한다.
        b. [root@www /root]# ldconfig -p
            => 현재 라이브러리를 보여준다.

3. 데비안 패키지관리(Debian Package Managment)
(1) dpkg(Debian Package)
   1) 개요: 데비안 리눅스의 패키지를 관리하는 툴로 데비안 리눅스 환경에서 각종 패키지를 설치,
           삭제하고 관리한다.
   2) 우선순위: 데비안 패키지는 리눅스안에 포함되어 있어아 할 필요성과 패키지의 의존성을 기준
               으로 한 우선순위(Priority)가 있다.
    ㄱ. Required: 시스템이 올바르게 동작하기 위해 꼭 설치되어야 하는 패키지들
    ㄴ. Import!ant: 대부분의 유닉스계열 운영체제에서 볼 수 있는 패키지들
    ㄷ. Standard: 표준 데비안 GNU/리눅스 시스템을 구성하는 패지지들
    ㄹ. Optional: Tex, X Window 시스템
    ㅁ. Extra: 몇몇 개인들에게만 유용한 패키지들 (예. HAM radio등)
   3) 데비안 패키지파일의 구조
     package_1.0-2.deb
     => (설명) package: 패키지이름이 온다.
               1.0: 해당 패키지의 버전을 나타낸다. 보통 밑줄로 버전을 나타낸다.
               2: 패키지 릴리즈이다.
               deb: 데비안 패키지의 확장자이다.
   4) 설명: 데비안 패키지관리 명령인 dpkg는 주요 작업을 지정하는 액션과 액션 기능을 제어하는
           옵션이 없거나 하나 이상의 옵션으로 구성되어 있다.
   5) dpkg의 특징: 이 명령은 /var/lib/dpkg에 패키지 정보를 저장한다. 이 파일에는 다음과 같은
                  두가지 정보가 저장된다. 이 정보들은 사용자가 직접 수정할 필요는 없다.
    ㄱ. available: 사용가능한 패키지목록
    ㄴ. status: 어떤 패키지가 설치되었는지, 어떤 패키지가 삭제 표시되었는지 등의 패키지의 속
               성이다.
   6) 사용법
     dpkg command 파일
   7) command
    -i package_name: 해당 패키지를 설치한다.(--install) 구버전 파일을 백업하고 패키지를 풀어
                    새로운 파일을 설치하고 설정한다.
    -R package_directory: 주어진 디렉토리 내의 모든 패키지를 설치한다.(-i와 함께 사용)
    -l package_name: 해당 패키지의 각종 정보를 보여준다.
    -r package_name: 패키지를 제거한다.(--remove) 설정파일은 남긴다.
    -c package_name: 해당 패키지에 포함되어 있는 모든 파일 목록을 보여준다.
    -l : 설치된 모든 패키지 목록을 보여준다.
    --unpack package_file: 패키지로부터 파일을 추출
    --configure package_name: 정확한 패키지 설치를 위하여 묶이지 않는 패키지를 설정한다.dpkg가
                             conf file과 같은 설정파일을 운영할 것을 요구
    --pending: 추출된 모든 패키지 파일들이 설치완료
    --purge package_name: 패키지와 해당 패키지의 conf file도 제거
    -s or package_name: 상태 데이터베이스에서 패키지정보를 출력(--status)
    --force: --downgrade, --configure-any, --remove-reinstreq, --remove-essential등과 함께
            사용하는 강제옵션
    --downgrade: 설치하려는 패키지가 이미 설치되어 있는 패키지보다 이전 버전일 때도 설치한다.
    --configure-any: 해당 패키지와 의존성이 있는 다른 패키지가 파일이 추출되기만하고 구성되어
                    있지 않으면 그 패키지가지 구성한다.
    --remove-reinstreq: 패키지가 재설치하기로 status file에 표시되어 있다면 이 패키지를 제거한
                       다.
    --merge-avail package_name : 패키지에 대한 정보를 추가할 수 있다.
   8) 사용예
    ㄱ. dpkg -i /usr/debian/stable/binary-i386/admin/cron_3.0p11.deb
       => 시스템에 cron이라는 패키지가 설치된다.
    ㄴ. dpkg -i -R /usr/debian/stable/binary-i386/admin
       => admin 디렉토리 아래있는 모든 패키지가 설치된다.
    ㄷ. dpkg --unpack /usr/local/Debian/archive
       => 모든 패키지가 풀린다.
    ㄹ. dpkg --configure cron
       => 패키지에 알맞게 구성된 세부사항을 구성한다.
    ㅁ. dpkg --pending
       => --unpack과 --configure로 패키지를 풀고 구성한 뒤에 패키지를 조성하여 패키지 설치를
         완성한다.
    ㅂ. dpkg -r cron
       => 패키지를 제거하지만 conf file은 삭제되지 않는다.
    ㅅ. dpkg -r -a | --pending
       => status file에서 삭제 표시된 모든 패키지를 제거한다.
    ㅇ. dpkg --purge -a | --pending
       => status file에서 삭제 표시된 모든 패키지와 conf file을 제거한다.(status file은 dpkg
         와 dselect에 의해 유지된 파일의 모든 정보를 저장하고 있는 파일이다.)
    ㅈ. dpkg -s mc
       => 패키지 버전, 패키지 관리자, 패키지의 간단한 설명, conf file등 정보를 보여준다.
(2) dselect
   1) 설명: dpkg는 명령행(command-line)유틸리티로 사용방법이 쉽지 않아 curses메뉴 방식으로
           등장한 것이 dselect이다.
   2) 사용법
     dselect
(3) alien
   1) 설명: 데비안 패키지가 아닌 패키지를 변환하거나 설치한다.
   2) 사용법
     alien [option] 파일
   3) 사용예
    ㄱ. alien package.rpm
       => package.deb라는 파일을 생성한다.
    ㄴ. alien -i package.rpm
       => 데비안 시스템에 데비안 패키지가 아닌 패키지를 설치한다.
   4) 지원되는 패키지형식
    ㄱ. 레드햇의 .rpm
    ㄴ. 스탬피드(Stampede)의 .slp
    ㄷ. 슬랙웨어의 .tgz
    ㄹ. 일반 tar.gz

Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
OpenSource (1)
Tips! (1)
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31