리눅스서버

[기본] 리눅스에서의 프로그램 설치

리눅스에서 프로그램을 설치하는 방법은 크게 3가지 방법이 있습니다. 

기본적으로 리눅스는 "1. 소스파일 컴파일 설치" 방법을 사용하는 데... 이 방법이 너무 불편하다보니, 1,2번의 설치방법이 생겨났습니다. 새로 생겨난 방법들은 리눅스 OS 계열별로 그 방법에 차이가 있습니다. 


여기에서 저는 3번의 쉬운설치 방법을 추천하겠습니다. 설치도 명령어 한줄이면 간단하고, 업데이트도 무척 쉽습니다.


1. 소스파일 컴파일 설치

소스파일을 컴파일하여 설치하는 이 방법은 유닉스의 전통적인 설치방법이였습니다. 프로그램 개발자가 소스파일 그대로를 넘겨주면 직접 컴파일해서 사용하는 방법이였습니다. 지금도 사용하고 있지만 추천하지않는 방법입니다. 특히 리눅스 초보자한테는 어울리지않는 설치방법입니다.


왜냐면 무척 번거롭기때문입니다. 설치때 한번 컴파일하고, 거기서 끝이 아닙니다. 업데이트가 있으면 업데이트 할때마다 다시 처음부터 컴파일을 해야됩니다. 컴파일하는 작업은 별 어려움이 없습니다만, 대신 매번 컴파일을 해야 하기때문에 번롭다는 겁니다.


이 설치방법에 불편함을 느낀 개발자들은 " 2. 패키지 파일 설치 " 방법을 고안해냅니다.



2. 패키지 파일 설치

이 방법은 이전에 컴파일 설치 방법보다 훨씬 쉬워진 방법이였습니다. 패키지 파일은 설치요소파일들을 묶은 파일입니다. 때문에 이 파일을 실행시키면 자동으로 알아서 설치해줍니다. 윈도우의 설치 마법사(install wizard)와 같습니다. 패키지 파일로 설치한 프로그램은 패키지 시스템에 의해 관리됩니다. 때문에 설치한 프로그램도 간단하게 볼 수 있고, 프로그램 제거또한 설치만큼이나 간단히 할 수 있습니다.


이 패키지 시스템은 리눅스 계열별로 다릅니다. 때문에 사용는 OS에 맞는 패키지 파일을 사용해야 됩니다.


* 레드헷 계열 (Red Hat/CentOS/Fedora) : RPM (*.rpm)


1. 패키지 설치확인

# rpm -qa | grep -i [패키지 이름]


2. 패키지 설치

# rpm -Uvh [패키지 이름]


3. 패키지 제거

# rpm -ev [패키지 이름]


@ 패키지 이름란에는 rpm 파일 이름이 들어갈 수 있습니다. (파일경로 포함)



* 데비안 계열 (Mint/Ubuntu) : dpkg (*.deb)


1. 패키지 설치확인

# dpkg -l | grep -i [패키지 이름]


2. 패키지 설치

sudo dpkg -i [패키지 이름]


3. 패키지 제거

# sudo dpkg -r [패키지 이름]


@ 패키지 이름란에는 deb 파일 이름이 들어갈 수 있습니다. (파일경로 포함)



@ 패키지 파일은 변환 프로그램을 이용해 내 OS 계열에 맞는 파일로 변환할 수도 있습니다.



3. 자동 설치 도구 이용

패키지 설치에서는 따로 패키지 파일을 다운로드 받아야 했습니다. 하지만 자동 설치 도구를 이용하면 패키지 파일 다운로드 부터 설치까지 모든 것이 자동으로 이루어집니다.


"2. 패키지 파일 설치"의 단점은 의존성 프로그램이 있는 경우 바로 설치하지못하고, 의존성 프로그램을 찾아 먼저 설치해야 프로그램을 설치할 수 있었습니다. 하지만 자동 설치 도구를 이용한다면 의존성 프로그램이 있으면, 그것도 자동으로 찾아서 알아서 설치해줍니다. 모든 것이 설치 명령어 한줄만으로 전부 자동으로 수행된다는 겁니다.


이 자동설치 도구에는 저장소(Repository)라는 것이 있습니다. 프로그램 패키지 파일을 모아 저장하고 있는 인터넷상의 공간입니다. 자동설치 도구는 이 저장소에서 패키지 파일을 다운로드하는 겁니다. 따로 저장소 URL을 등록하면, 그쪽 저장소에 있는 패키지 파일들을 이용해 설치할 수 있습니다. 단, 저장소들에 있는 패키지의 이름이 같을 경우 버전을 체크해 더 최신버전의 패키지를 받게 됩니다.


예시 - nginx 저장소 : http://nginx.org/packages/centos/


@ OS를 설치하면 OS에서 제공하는 기본 저장소가 등록되어있을 겁니다. 웬만 프로그램들은 기본 저장소에 거의 다 있을 겁니다. 다만, 설치할 프로그램의 오래된 버전들이 많아요.


이 자동설치 도구 또한 리눅스 계열별 다릅니다. 


* 레드헷 계열 (Red Hat/CentOS/Fedora) : yum


1. 패키지 설치확인

# rpm -qa | grep -i [패키지 이름]

# yum list installed | grep -i [패키지 이름] (yum을 통해서 설치된 패키지만 검색)


2. 패키지 업데이트 체크

# yum check-update


3. 패키지 검색

# yum search [패키지 이름]


3. 패키지 설치

yum install [패키지 이름]


4. 패키지 업데이트

# yum update [패키지 이름]


@패키지 이름없이 yum update 만 실행하면 설치된 모든 패키지가 업데이트됩니다. (커널까지도)


5. 패키지 제거

# yum remove [패키지 이름]



* 데비안 계열 (Mint/Ubuntu) : apt-get


1. 패키지 설치확인

# dpkg -l | grep -i [패키지 이름]


2. 패키지 업데이트 체크

# apt-get update


3. 패키지 검색

# apt-cache search [패키지 이름]


3. 패키지 설치

apt-get install [패키지 이름]


4. 패키지 업데이트

# apt-get upgrade [패키지 이름]


@패키지 이름없이 apt-get upgrade 만 실행하면 설치된 모든 패키지가 업데이트됩니다. (커널까지도)


5. 패키지 제거

# apt-get remove [패키지 이름]


?