본문 바로가기

Dev/Dev:: Linux

[Day006] Linux 6일차 - 리눅스 프로그램 설치

  1. Source 설치

    - C언어 소스파일을 다운로드 받아 직접 컴파일하여 프로그램을 사용할 수 있도록 설치


    - 장점 : 프로그램을 설치할 때 프로그램에 대한 환경설정이 가능

             프로그램을 설치할 때 의존성 문제가 거의 발생되지 않는다.


    - 단점 : 컴파일러(gcc)를 이용하여 컴파일하여 설치하므로 설치시간이 오래 걸린다.

             환경설정을 잘못할 경우 설치되지 않는다.


    - Source 설치 방법


      1) Source 파일을 다운로드 받는다.   =>  압축파일


      2) 압축 해제를 한다.  => 디렉토리를 생성 후 설치 작업 : C언어 Source 파일이 존재


      3) 환경설정  =>  자동으로 컴파일 되도록 환경파일(Make파일)을 생성하는 작업

         ]# ./configure --옵션   => 옵션을 활용하여 환경설정

          =>  cmake 프로그램을 이용하여 환경설정 하기도 한다.



      4) 컴파일 => 환경설정에 맞게 자동으로 컴파일 된다.

         ]# make


      5) 설치  =>  컴파일하여 발생된 binary 파일을 환경설정에 의해 지정된 디렉토리에 설치

         ]# make install


       ※ make 또는 make install 명령 실행 에러 발생 => 환경설정을 잘못한 경우

          - 컴파일 초기화 명령 실행 후 환경설정부터 다시 시작

          ]# make clean   => 컴파일 할 때 발생된 binary 파일을 삭제


    - 프로그램이 설치된 디렉토리를 삭제하면 프로그램이 삭제


    ex) ntfs-3g 프로그램(ntfs 파일시스템을 rw 가능하도록 mount 할 수 있는 프로그램) 설치

        => ntfs-3g_ntfsprogs-2011.4.12.tgz 다운로드

     


      ]# tar xvzf ntfs-3g_ntfsprogs-2011.4.12.tgz  =>  압축 해제하면 소스파일이 존재하는 디렉토리 생성

     

      ]# cd ntfs-3g_ntfsprogs-2011.4.12

      ]# ./configure    =>  환경설정 : 옵션은 기본값을 사용


      ]# make           =>  컴파일


      ]# make install   =>  설치

      ]# ntfs-3g        =>  실행  

  2. Binary 설치

    - Source 버전으로 설치된 프로그램의 디렉토리을 압축해 놓은 파일을 이용해 설치

      => 압축만 해제하면 사용 가능

    - 리눅스에 따라 실행되지 않을 수도 있다.


  3. Package 설치 

    - RedHat 계열의 리눅스는 RPM(RedHat Program Manager)을 이용하여 프로그램 설치 및 삭제등을 관리

    - 장점 : 설치 및 삭제등의 관리 쉽다.

    - 단점 : 프로그램의 의존성 문제로 인한 설치, 삭제에 어려움이 발생

  

    - rpm 명령을 이용하여 설치 또는 삭제, 확인 가능하며 설치시 일반적으로 /usr 디렉토리에 설치

      => 설치경로는 따로 존재하지 않으며 필요한 디렉토리 자동으로 복사된다.

     ]# rpm -ivh  RPM파일      =>  설치(기존 패키지가 존재할 경우 설치 오류 발생)

 

      ※ RPM 파일 : RPM에 의해 관리 가능한 파일(~.rpm)

     ]# rpm -Uvh  RPM파일      =>  업그레이드 설치(기존 패키지가 존재할 경우 업그레이드하며 없는 경우 설치)

     ]# rpm -qa                =>  RPM에 의해 설치된 패키지 목록 확인

     ]# rpm -qa | grep 단어    => 단어가 들어있는 패키지 목록 확인

     ]# rpm -e  패키지명     =>  패키지 삭제


    ※ 의존성문제를 무시하고 설치 또는 삭제

      ]# rpm -ivh --nodeps --force RPM파일

        =>  --nodeps : 의존성 무시    --force : 라이브러리 사용 충돌 무시

      ]# rpm -e --nodeps 패키지명  


     ex) ]# rpm -qa | grep httpd    =>  웹서버 패키지 설치 확인

         httpd-manual-2.2.3-22.el5

         httpd-2.2.3-22.el5

         ]# rpm -e httpd   =>  패키지 삭제 : 의존성에 의한 오류 발생


     ex) xrally 프로그램 =>  x-window에서 실행되는 게임 

        ]# rpm -Uvh xrally-1.1-1.i586.rpm    =>  설치

        ]# xrally     =>  실행 




        ]# rpm -qa | grep xrally      =>  설치 확인

        ]# rpm -e xrally     =>  삭제