리눅스에서 사용되는 프로그램은 리눅스가 공개 소프트웨어라는 특징과 유닉스의 영향으로 C언어로 된 소스 파일을 tar 압축하여 배포된다.
소스 프로그램은 GNU웹 사이트나 관련 프로그램 사이트에서 무료로 배포 되고 이것들을 패키지 관리 기법에 따라서 설치를 하고 업데이트를 하고 삭제 등 관리를 한다.
리눅스의 계열마다 사용하는 기법이 다른데 대표적으로 몇가지만 소개를 해볼것이다.
배포판 | 기본 패키지 관리 기법 | 온라인 패키지 관리 기법 |
레드햇 계열 | RPM | YUM |
데비안 계열 | Dpkg | apt-get |
수세 계열 | YaST | zypper |
기본패키지 관리란 쉬운 프로그램의 설치, 삭제, 관리 등을 위해 사용되는것이고,
온라인패키지 관리란 외부에서 설치해올 패키지나 라이브러리 등을 받을때 사용한다.
가장 많이 쓰이는 레드햇과 데비안 계열의 비교를 좀더 다뤄보면
레드햇 기준
RPM
RPM이 나오기 전 초기의 리눅스에서는 모든 패키지를 설치할때 직접 컴파일한 후에 수동으로 설치해야 했다. 물론 컴파일은 위한 소스 파일은 tar, gzip으로 묶여있었다. 그렇기 때문에 패키지 설치에 많인 시간이 필요하게 되었고, 이를 극복하고자 RedHat 사에서 패키지 관리 프로그램인 RPM을 개발하게 되었다. 마치, Windows 계열의 setup.exe 파일과 비슷하게 자동으로 설치해주는 프로그램이다. RPM 패키지는 컴파일되어 설치한 실행파일, 설정파일, 라이브러리 등을 하나로 묶어놓은 파일을 말한다. 대표적인 특징은 아래와 같다.
1) YUM과 마찬가지로 패키지 인스톨 프로그램이다.
2) 인터넷이 연결되어있지 않아도 설치가 가능하지만, rpm 확장자로된 패키지 프로그램이 필요하다.
3) 패키지 사이에 의존하고 있는 패키지까지 자동으로 설치되지 않는다.
4) 기본 사용 명령어
- 설치
- rpm -Uvh [패키지명]
- 삭제
- rpm -e [패키지명]
- 설치확인
- rpm -qa [패키지명]
- 상세정보
- rpm -qi [패키지명]
yum
YUM은 RPM 기반의 시스템을 위한 자동 업데이터 및 패키지 설치, 제거 프로그램이다. 듀크 대학교의 Linux@DUKE 프로젝트의 일부분으로 개발되었다. RPM과 다르게 인터넷 사용이 필수이기 때문에 패키지간 의존성 문제를 해결할 수 있다. 예를들어 A 패키지를 설치하기전에 필요한 B 패키지까지 모두 한번에 설치가 가능하며, 의존도를 자동으로 찾고 알아서 설치해준다. 대표적인 특직은 아래와 같다.
1) RPM과 마찬가지로 패키지 인스톨 프로그램이다.
2) 인터넷에서 바로 설치가 가능하기 때문에 패키지 프로그램이 따로 필요없다.
3) 패키지 사이에 의존하고 있는 패키지까지 자동으로 설치가 가능하다.
4) 기본 사용 명령어
- 설치
- yum install [패키지명]
- 삭제
- yum remove [패키지명]
- 업그레이드
- yum update [패키지명]
- 목록
- yum list [패키지명]
- yum 데이터베이스 동기화 업데이트
- yum update
데비안 기준
dpkg
pkg는 window환경에서는 exe 파일과 비슷한 설치파일이며, deb 확장명으로 불린다.
이를 package라 부르며, dpkg로 파일을 설치할 때는, *.deb설치파일이 이미 작업환경에서 존재하고 있을때 아래와 같이 설치할 수 있다.
- 설치
- dpkg -i 패키지파일이름.deb
- 삭제
- dpkg -r 패키지이름 : 패키지만 삭제
- dpkg -P 패키지이름 : 설정파일까지 삭제
- 조회
- dpkg -l 패키지이름 : 패키지를 간략히 조회
- dpkg -L 패키지이름 : 패키지에 의해 소유된 파일까지 조회
- dpkg --info 패키지이름.deb : 패키지 파일에 대한 정보를 보여줌
apt-get
저장소의 url가 /etc/apt/sources.list 에 작성되어있다면 인터넷을 통해서 해당 저장소에서 파일을 다운로드해서 설치한다.
이 방식은 dpkg와 달리 종속된 프로그램이 만약 작업환경에 미설치되어있다면 추가 수동설치 필요없이 자동으로 설치해준다.
- 패키지 설치
apt-get install -f 패키지이름
- f는 --fix-broken 옵션으로, 의존성 관련 문제를 해결할때 사용
- 새 패키지 목록 업데이트(sources.list 최신화)
apt-get update - 패키지를 설치/업그레이드하여 시스템 업그레이드(sources.list 토대로 설치된 패키지 최신화)
apt-get upgrade - 패키지 삭제
apt-get remove/purge 패키지이름 - 사용하지 않는 패키지 제거
apt-get autoremove - 내려받은 파일 제거
apt-get clean (or) apt-get autoclean - apt-cache는 패키지 검색을 담당
minhan$ apt-cache --help - 패키지 정보 보기
apt-cache show 패키지 이름 - 패키지 의존성 확인
apt-cache depends 패키지이름 - 패키지의 역의존성 확인
apt-cache rdepends 패키지이름
'IT > Linux' 카테고리의 다른 글
리눅스에서의 모듈 (22) | 2022.06.03 |
---|---|
리눅스에서 사용하는 압축 종류 (43) | 2022.06.02 |
리눅스에서 프로세스 스케줄링 (38) | 2022.05.30 |
리눅스 프로세스 관련 명령어 (35) | 2022.05.29 |
리눅스 텍스트 파일 관련 명령어 (33) | 2022.05.28 |
댓글