WAS Engineer - Linux 10번째

이정빈·2022년 9월 28일
0

리눅스 복습

목록 보기
10/11
post-thumbnail

소프트웨어 패키지

패키지와 리포지터리

패키지 관리 시스템은 패키지 단위로 소프트웨어를 설치하고 삭제한다. 여기서 패키지란 소프트웨어의 실행 파일, 도큐먼트 파일, 스크립트를 아카이브한 파일 하나를 말한다.

현재 리눅스에서 널리 사용되는 패키지 파일 형식으로 rpm과 deb가 있다.

  • 패키지 형식 목록
패키지 형식배포판
Red Hat 형식(/rpm)Red Hat Enterprise Linux, CentOS, Fedora
Debian 형식(.deb)Debian GNU/Linux, Ubuntu

패키지 파일을 모아서 배포하는 사이트를 리포지터리(repository)라고 한다. 여기서의 리포지터리는 깃의 리포지터리와는 달리 단순히 파일을 모아서 배포하는 곳을 의미한다. 패키지 관리 시스템은 리포지터리에서 패키지 정보와 파일을 가져와 소프트웨어를 설치한다.

배포판에 처음부터 기본으로 설정된 리포지터리를 공식 리포지터리라고 한다. 한편 공식 리포지터리 외에도 소프트웨어 개발을 수행하는 프로젝트 등 서드파티가 제공하는 리포지터리도 있다. 대표적인 서드파티 리포지터리로는 다음과 같은 것이 있다.

  • 서드파티 리포지터리의 예
배포판리포지터리
CentOSRepoForge(RPMForge), EPEL, Remi
UbuntuPPA, Japanese Team

서드파티 리포지터리도 공식 리포지터리의 패키지와 함께 통일성 있게 관리할 수 있다. 서드파티 리포지터리를 설정하는 방법에 대해서는 각 프로젝트의 웹 사이트를 참고하기 바란다.

yum 명령어 : 패키지 관리(CentOS)

CentOS같이 레드햇 계열의 리눅스 배포판에서는 rpm이라는 패키지 파일 형식을 사용한다. rpm 파일을 관리하는 시스템이 RPM(Redhat Package Manager)이다.

RPM은 CentOS 패키지 관리 시스템의 근간에 해당하지만, rpm 명령어로는 단순한 조작만 가능하여 많이 불편하다. 그래서 rpm 명령어를 쉽게 사용할 수 있도록 만든 yum이 많이 사용되고 있다.

  1. 기본적인 사용법
  • yum 명령어
yum [옵션] [명령어] [패키지 이름...]

yum 명령어는 다양한 기능을 제공하며, 인자 [명령어]에 install 등을 지정하여 실행한다.

  1. 패키지 설치하기
  • 패키지 설치
yum install <패키지 이름>

패키지를 설치할 때는 슈퍼 사용자 권한이 필요하다.

  • httpd.x86_64 패키지 설치
# yum install httpd.x86_64

패키지 이름에서 아키텍처를 의미하는 x86_64는 생략할 수 있다.

  • 설치 전 확인
Is this ok[y/d/N]:

여기서 y를 누르면 설치가 진행된다. d는 패키지를 받기만 하고 설치하지는 않는다. 취소하려면 n을 누르면 된다.

install 명령어에 -y 옵션을 지정하면 설치 중간에 y/d/N을 입력해야 하는 상황에서 자동으로 y가 입력된다.

  1. 패키지 간 의존성

대부분의 패키지는 다른 패키지가 미리 설치되어 있어야 한다. 특정 라이브러리가 필요한 프로그램은 해당 라이브러리를 포함하는 패키지가 설치되어 잇어야 정상 작동한다.

이를 다른 패키지에 의존한다라고 표현한다. yum은 이런 패키지 간 의존성을 자동으로 해결하여 준다.

  1. 패키지 삭제하기
  • 패키지 삭제
yum erase / remove <패키지 이름>

remove와 erase는 동일한 기능을 수행하므로 어떤 것을 사용해도 무방하다.

패키지를 지울 때는 해당 패키지에 의존하는 패키지도 함께 지울 수 있다. 이것 역시 yum이 자동으로 수행한다. 예를 들어 httpd 패키지가 의존하는 httpd-tools를 지우면 httpd도 함께 삭제된다.

  1. 패키지 검색하기
  • 패키지 검색
yum search <검색 키워드>

install과 달리, search는 슈퍼 사용자 권한 없이도 실행할 수 있다.

  • netcat 검색
$ yum search netcat
  • 패키지 설명문에서 전문 검색 수행
$ yum search all netcat

이 경우, nmap이라는 패키지도 같이 검색된다. nmap 패키지의 요약에는 netcat이 나타나지 않고 설명에만 나타나기 때문이다.

참고로 yum search는 대소문자를 구분하지 않는다.

  1. 패키지 정보 표시하기

패키지 이름 외에 상세 정보를 확인하고 싶은 경우에는 info 명령어를 사용하면 된다. info 명령어도 search와 마찬가지로 슈퍼 사용자 권한을 필요로 하지 않는다.

  • 패키지의 상세 정보 출력
yum info <패키지 이름>

apt로 패키지 관리(우분투)

우분투와 같은 데비안(Debian) 계열의 리눅스 배포판에서는 deb이라고 하는 패키지 파일 형식을 사용한다.

예전부터 deb 파일은 dpkg 명령어를 사용해서 설치했지만 지금은 APT(Advanced Packaging Tool) 계열의 명령어를 사용한다.

APT 계열의 명령어로는 설치와 삭제를 위한 apt-get과 검색하고 정보를 확인하기 위한 apt-cache가 있다. 그리고 이 둘을 통합한 aptitude라는 명령어도 있다.

  1. 기본적인 사용법
apt-get [옵션] [명령어] [패키지 이름...]
apt-cache [옵션] [명령어] [패키지 이름...]

yum과 비슷하게 APT 계열의 명령어도 인자 [명령어]에 install 등을 지정하여 실행한다. 자주 사용하는 명령어를 알아보자.

  1. 패키지 설치하기

apt-get으로 패키지를 설치할 때는 yum과 마찬가지로install에 이어 패키지 이름을 지정한다.

  • 패키지 설치
sudo apt-get install <패키지 이름>

설치할 때는 슈퍼 사용자 권하이 필요하므로 sudo를 사용해야 한다.

  • aptitude 패키지 설치
$ sudo apt-get install aptitude
  1. 패키지 간 의존성

yum과 마찬가지로 APT 계열의 명령어도 의존성을 자동으로 해결해준다.

  1. 패키지 삭제하기

패키지를 삭제하려면 remove 명령어를 사용해야 한다.

  • 패키지 삭제
sudo apt-get remove <패키지 이름>

yum과 마찬가지로 패키지를 지우면 의존 패키지도 함께 삭제된다. 그래서 aptitude-common 패키지를 지우면 이를 의존하는 패키지인 aptitude도 함께 지워진다.

remove 명령어로 패키지를 지우면 설정 파일과 같은 일부 파일이 시스템에 남게 된다. 설정 파일을 포함하여 전부 제거하려면 remove 대신에 purge를 사용해야 한다.

  • 설정 파일 포함하여 전부 삭제
sudo apt-get purge <패키지 이름>
  1. 패키지 검색하기
  • 패키지 검색
apt-cache search <검색 키워드>

패키지 검색은 슈퍼 사용자 권한이 필요하지 않다.

  1. 패키지 정보 표시하기

패키지의 상세 정보를 확인하고 싶을 때는 show 명령어를 사용한다. 이 명령어도 슈퍼 사용자 권한 없이 실행할 수 있다.

  • 패키지의 상세 정보 표시
$ apt-cache show <패키지 이름>

search 명령어에 full 옵션을 지정하면 검색 결과와 함께 패키지의 정보도 출력된다.

profile
WAS Engineer, Cloud Engineer(지망)

0개의 댓글