오래전 이야기/Server

리눅스에서의 프로그램 설치방법

리눅스 엔지니어였던 2008. 9. 15. 14:00

리눅스에서 애플리케이션을 설치하고 관리하는 것은 무척이나 중요하다. 리눅스를 사용하는 데
가장 기본이 되는 것이기 때문이다. 이제 애플리케이션을 설치하는 방법을 알아본다.

1. 프로그램을 어떻게 설치합니까?

  리눅스에서 프로그램을 설치하는 방법은 다음과 같이 크게 4가지 정도로 분류할 수 있다.

① tar.gz 과 같은 소스 파일을 직접 컴파일하여 설치한다.
② 이미 컴파일된 바이너리 파일을 가져다가 설치한다.
③ RPM 파일을 가져와서 설치한다.
④ SRPM 파일을 가져와서 설치한다.

2. tar.gz(또는 tgz)으로 된 파일은 어떻게 설치합니까?

  리눅스에서는 기본적으로 C 프로그램과 make 프로그램을 사용한다. 그리고, 이것을 묶는데 tar와
gzip 등의 압축 프로그램을 사용한다. 그러므로 이 프로그램들을 이용한 패키지들이 나오고 당연히
이 프로그램들을 잘 이해한다면 쉽게 애플리케이션을 설치할 수 있다. 그러나, 각각의 프로그램마다
설치 방법이 약간씩 다르므로 항상 README이나 INSTALL이라 이름붙은 파일이 있는 지 확인하고
그것을 읽어보는 것이 좋다. 경우에 따라서는 설치 방법이 홈페이지에만 있는 경우도 있으므로
위 파일이 없다면 홈페이지를 참고한다.

   가. 소스파일

   소스파일이라는 것은 아직 컴파일이 되지 않은 것을 프로그램 파일을 말한다. 그러므로, 전과정을
거쳐서 설치를 해야 한다. 먼저 압축을 풀고, README 파일이나 INSTALL 파일을 읽어본다. 그리고,
설치 방법을 숙지한다. 물론 대략적으로 다음과 같은 방법을 취할 것이다.

  # tar xvzf foo.tar.gz   # 압축을 해제한다.(마지막 확장자가 Z이면 uncompress로 푼다.)
  # cd /풀린 디랙토리   # 압축이 풀리면서 생긴 디랙토리로 이동한다.
  # ./configure          # 설치를 위해 기본적인 설정을 한다.
  # make               # 컴파일한다.
  # make install         # 컴파일한 것들을 가지고 설치한다.

   위의 순서는 거의 정형적인 순서이다. 그러므로, 위의 과정에 익숙해 지면 설치하는 데 어려움이
덜할 것이다. 그러나, 경우에 따라서는 마지막 세 과정을 하나의 스크립트(install 파일)로 제공하는
경우도 있으므로 꼭 언급한 파일들을 읽어보고 설치한다.

3. Apache 최신 버전을 설치하려고 하는데 gcc가 없으면 바이너리 파일을 받으라고 한다.
바이너리 파일은 무엇인가?

  바이너리 파일은 이미 컴파일이 완료된 파일을 말한다. 그러므로, 적당한 디랙토리에서 압축을
해제한 뒤 그냥 실행하거나(Linzip), README 파일 등을 읽고 시스템에 맞는 설정을 해주거나,
컴파일 과정 없이 마지막 과정을 수행해 주면 된다.(꼭 README 파일이나 INSTALL 파일을 읽어본다.)
또는 프로그램 자체가 스크립트 형식으로 제공되는 경우가 있는데 이 경우에는 파일 이름(대체로
확장자가 bin(Realplayer) 또는 sh로 끝난다.)을 적고 엔터만 치면 된다.(이러한 파일들은 kfm 등의
파일 탐색창에서 아이콘을 클릭하여 설치가 완료가 되는 경우도 있다.)

4. 리눅스에서는 RPM을 이용하여 프로그램을 설치한다고 한다. 어떻게 하는 것인가?

  RPM은 레드햇 리눅스사에서 개발한 패키지 프로그램이다. 이 프로그램은 아주 간편하고, 쉽기
때문에 이제는 많은 리눅스 배포판에서 사용되며, 타 유닉스 운영체제에서도 사용이 가능하게 되었다.
이 RPM 파일 또한 바이너리 파일이다. 그것은 RPM 파일 자체가 이미 컴파일되어 있는 파일들을
모아논 것이기 때문이다.

  1] RPM 패키지의 설치하는 법(KDE - kpackage를 사용하면 간편하게 설치가 가능하다.)

   a. 설치 : rpm -ivh foo.rpm
   b. 업그래이드 : rpm -Uvh foo.rpm

  2] RPM 패키지 관리

   a. RPM 패키지 확인 : rpm -qa | grep [프로그램명]
   b. RPM 패키지 정보 : rpm -qip [프로그램명 패키지명]

  3] RPM 패키지 삭제 : rpm -e [프로그램명 패키지명]

5. 같은 레드햇 계열의 배포판의 RPM 파일을 가져와서 설치했는데, 몇가지 프로그램을 설치하고 나서
시스템이 불안정해졌다. 소스를 컴파일하는 것은 어려운데, 다른 방법이 있겠는가? (SRPM의 활용)

  SRPM을 소스파일이라 한다. 그 이유는 아직 컴파일되지 않은 소스 파일을 spec 파일과 함께 묶어논
파일이기 때문이다. 이것은 소스분석에도 사용되지만 리눅스 배포판이 다를 때 자신의 시스템에
최적화된 RPM을 얻기 위해서도 사용된다. 각 배포판은 그 배포판의 기본이 되는 프로그램들에
최적화되어 있다. 그렇기 때문에 다른 배포판의 RPM 파일을 가져다가 설치하면 시스템이 불안정해질
수 있다.

  1] SRPM 풀기

    보통 RPM 파일 풀 듯이 파일을 풀어준다. 그러면 /usr/src/redhat 아래에 SOURCES와 SPECS
디랙토리에 소스 파일과 spec 파일이 생길 것이다.

   #  rpm -ivh foo.src.rpm

  2] SPEC 파일 확인

    이 부분이 가장 까다로운데 spec 파일을 보면서 자신의 시스템의 디랙토리 구조에 맞는지 알아보고
혹시 잘못된 곳이 있는지 확인한다. 이 파일을 가지고 RPM을 만들게 되므로 중요하다. 그러나, 대부분의
리눅스 배포판의 디랙구조(특히 레드햇 계열은 거의 모두 동일하다.)가 같으므로 크게 신경쓸 필요는
없다. 일단 설치하고, 간혹 일어날 수 있는 에러에만 신경을 써주면 된다.

  3] RPM 만들기

    위의 spec 파일을 가지고 RPM 파일을 만든다. 그리고 그것을 설치하면 자신의 시스템에 무리가 없이
프로그램이 잘 작동할 것이다. 만약 다른 패키지의 RPM 프로그램을 그냥 설치하면 경우에 따라 시스템이
불안정해 질 수 있다. 아래와 같이 해 주면 RPM 파일이 /usr/src/redhat/RPMS 아래에 생긴다.

   # rpm -bb foo.spec   

  4] RPM 파일 생성 확인하고, 설치하기

    파일이 만들어졌는지 확인하고, 생성된 파일로 설치를 한다.

   # cd /usr/src/redhat/RPMS/i386(대체로 이 디랙토리에 설치가 되지만 특정한 경우 i686 이나 noarch
                                                 디랙토리에 파일이 생성되기도 한다.)
   # ls
   # rpm -ivh foo.rpm

========================

<출처: http://hlug.hanyang.ac.kr/~freekgb/html/faq/app_ins_faq.html>