본문 바로가기

별걸다하는 IT/리눅스 유닉스

[리눅스 Ubuntu 우분투] 프로그램 설치 dpkg, apt 명령어 사용법 알기, 옵션 및 사용 예시 정리 (프로그램 설치 및 제거)

[리눅스 완전정복 목차 링크집]

안녕하세요.

주인장 양햄찌입니당.

 

지난 시간에 레드햇 계열 프로그램 설치 명령어에 대해서 살펴봤는데요, 오늘은 우분투 설치 명령어에 대해 살펴보려고 합니다.

 

설치 방법은 크게 세가지가 있다고 했었죠?!

1. 소스코드 설치법

2. 패키지 설치법

3. 자동 설치 도구 이용법 

 

세 가지 설치 방법에 대한 개념은 지난 시간에 알아봤었어요 ㅎㅎ

혹 해당 포스팅을 보지 못했으면

https://jhnyang.tistory.com/59

 

[리눅스 CentOS, Fedora] 앱/프로그램 설치(install applications) RPM과 yum 명령어 및 옵션, 상황별 사용예시

리눅스 완전 정복 : 리눅스 목차 핸드폰만 해도 무수히 많은 어플을 깔고~~ 컴퓨터에만 해도 우리는 많은 프로그램을 설치하죠 컴퓨터도 Windows 운영체제이고 핸드폰의 운영체제인 Android도 리눅��

jhnyang.tistory.com

이 링크를 참조해주세요!

리눅스 데비안계열 패키지 설치법 dpkg 

패키지 설치법은 우리 윈도우 식으로 하면 setup.exe와 비스무리한 거랬죠.

데비안 기반이냐, 레드햇 기반이냐에 따라서 설치 방법이 달라진다고 했어요. 레드햇 계열일 경우 패키지설치법은 rpm 명령어를 사용한다고 했었죠! 우분투일 경우에는 dpkg 가 됩니다.

 

데비안 계열 :  dpkg (설치 파일 확장명: *.deb)

어떤 프로그램을 설치하려면 그 패키지 파일이 있을 텐데 dpkg에서 이 설치를 위한 파일은 deb 확장자를 갖습니다.

그리고 그 파일이 뭘 설치하기 위한 건지 정보를 담는 일종의 이름규격(?)이 있는데 이는 아래와 같아요.

 

■ deb 파일 구성

패키지이름_버전-릴리즈-아키텍처.deb

ex) vim_4.5-3.deb

이거는 vim 편집기 설치할 때 쓰는 패키지파일이겠죠?ㅎㅎ

[대표적 사용 예시]

▶설치하기 

dpkg -i 패키지파일명 

ex ) dpkg -i jdk_1.7.045-1_amd64.deb

jdk 파일을 이용해 설치하는 명령어

근데 사실 프로그램 설치는 dpkg보다 의존성을 해결해주는 apt를 쓰죠. (apt install 패키지)

 

▶설치여부 확인하기 

dpkg -l 패키지이름
dpkg -l | grep 패턴

패턴써서 확인해도 되고 grep을 이용해서 뽑아내는 방법도 있어요.

ex) dpkg -l *samba*

samba 문자가 포함된 패키지들 중 설치된게 있는지 체크~!

예시는 ftp 종류중 설치된게 있나 체크하려고 쓴 결과창!

dpkg -l

뒤에 패키지 이름을 따로 붙이지 않으면 설치된 전체 패키지 목록들을 보여줍니다. 

 

삭제하기

dpkg -P 패키지이름

-P로 하면 찌꺼기 안남고 완전삭제 됨

OPTIONS

앞에 정말 기본적인, '설치, 확인, 삭제'에 대한 명령어만 알아봤다면, 

이제 좀 더 다양한 역할을 수행해줄 옵션과 자세한 예시들을 더럿 살펴봅시다.

옵션

 내용 

 -i 패키지파일명

 패키지를 설치할 때 사용한다 (--install)

-R 디렉터리명

설치하는 옵션인 -i와 같이 사용되어 지정한 디렉터리 안에 있는 패키지를 설치할 때 사용한다.

 -l  (소문자 L임)

 설치되어 있는 패키지를 출력한다 (--list) 

 -l 패키지파일명 

 패키지 파일에 대한 정보를 출력한다 (--info) 

 -c 패키지파일명 

 패키지 파일에 포함된 파일 정보를 출력한다. (--contents) 

 -L 패키지명

 패키지가 설치한 파일 목록을 출력한다 (--listfiles) 

 -r 패키지명 

 패키지를 제거하는데, 환경 설정 파일을 남겨둔다 (--remove) 

 -P 패키지명

 환경 설정 파일까지 전부 제거한다 (--purge)  

-S 파일명

해당 파일을 설치한 패키지 이름을 출력한다. (--search)

 --unpack 패키지파일명

 환경 설정은 하지 않고 패키지를 풀기만 한다.

 --configure 패키지명 

 --unpack 옵션으로 풀린 패키지를 환경 설정할 때 사용한다. 

■ examples~ 

dpkg -i /usr/debian/stable/binary-i386/admin/vim_4.5-3.deb

→ /usr/debian/stable/binary-i386/admin/vim_4.5-3.deb 패키지를 설치합니다.

 

dpkg -i R usr/debian/stable/binary-i386/admin

 usr/debian/stable/binary-i386/admin 이 디렉터리 안에 있는 모든 패키지를 설치합니다.

 

dpkg -L vim

 vim패키지에서 설치된 파일을 목록으로 보여줍니다. (dpkg ---listfiles vim 과 동일)

 

dpkg -l "*vi*"

 vi라는 패턴과 일치하는 패키지들을 출력합니다.

 

 dpkg --unpack vim_4.5-3.deb

 해당 패키지를 풀기만 합니다.

 

 dpkg --configure vim

 --unpack 옵션에 의해 풀린 패키지의 환경 설정을 합니다

 

 dpkg -r cron

 cron 패키지를 제거하나 환경 설정 파일은 제거되지 않습니다.

 

 dpkg -P cron

 cron 패키지를 환경 설정 파일을 포함하여 모두 제거합니다.

 

 dpkg -s mc

 mc 패키지에 대한 패키지 버전, 패키지 관리자, 패키지의 간단한 설명, 환경설정파일등에 대한 정보를 출력합니다.

자동 설치 도구 이용해서 설치하기 - apt-get, apt

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

 

2방법이 예전 리눅스 소스컴파일설치 방법보다는 획기적으로 편해지기는 했지만 '의존성' 문제가 있었습니다. 

예를 들어 페도라의 기본 웹 브라우저인 Firefox는 당연히 X윈도상에서 가동됩니다. 그런데 X윈도가 설치되지 않은 상태에서 Firefox를 설치한다면 어떻게 될까요? Firefox는 X윈도에 의존성이 있으므로 설치가 안될거예요.

이게 한 두개면 문제가 되지 않지만 이러한 의존성이 서로 얽히고 얽히고 뭉쳐있다면..? 나중에는 왜 설치가 안되는지 어떤걸 위해 뭘 설치했더니 얘를 설치하려면 또 딴게 있어야하고... 생각만해도 힘들어요.

 

그래서 나온 명령어가 데비안 계열에서는 apt-get 래드햇 계열에서는 yum입니다.

apt-get은 데비안 리눅스 배포판에서 패키지 관리를 쉽게 하기 위해 제공되는 명령행 기반의 유틸리티로 래드햇 계열의 yum과 유사합니다. 얘도 마찬가지로 dpkg에 있었던 의존성 문제를 해결했어요. apt-get은 /etc/apt/sources.list 파일에 패키지 관련 정보를 관리합니다. 

 

apt는 현재 권장하고 있는 명령어로 apt-get을 더 사용하기 수월하게 발전시킨 명령어라 생각하시면 됩니다. apt-get보다 명령어도 짧아서 사용하기 편해요 ㅎㅎ

 

간단한 옵션 정보 

옵션 의미
-y 모든 질의에 'yes'라고 답한다
--purge remove 명령을 수행할 때 환경 설정까지 제거할 떄 사용한다.

-y로 하면 내가 뭔가를 입력할 필요 없이 알아서 yes를 눌러주기 때문에 편해요 ㅎㅎ

apt , apt-get 명령어 

apt 명령 apt-get 명령 설명
apt install apt-get install 패키지 설치. 보통 이 명령어를 사용하면 .deb파일들이 /var/cache/apt/archive에 생성
apt update apt-get update 패키지목록 갱신(레파지터리 인덱스 갱신) 
apt upgrade apt-get upgrade 모든 패키지를 최신 버전으로 갱신(업그레이드~)
apt remove apt-get remove 패키지 삭제 
apt clean apt-get clean /var/cache/apt/archive에 생성된 파일 삭제 
apt search apt-cache search 프로그램 검색
apt autoremove apt-get autoremove 불필요한 패키지 제거 

간단하죠?

[대표적 사용 예시]

기본 설치방법

# apt-get install samba

# apt install samba

install은 패키지를 설치할 때 사용합니다. 여기서 samba 프로그램 설치하는 걸 예시로 들음

이 명령을 이용하면 .deb 파일들이 /var/cache/apt/archive에 생성됩니다.

 

 패키지 업데이트 

# apt-get update 

# apt update

피키지 목록 정보를 갱신합니다.

 

패키지 삭제

# apt-get remove nfs-kernel-server

# apt remove nfs-kernel-server

 

 패키지 검색 (설치된 패키지 검색이 아님!)

# apt-cache search 패키지이름

# apt search 패키지이름

vsftpd 관련 패키지 검색한 결과~

기출문제

리눅스마스터 2급 2016년 1회 기출

다음 중 리눅스 배포판별 패키지 관리 기법과 유틸리티로 알맞게 짝지어진 것은?

1. 래드햇 -rpm: apt-get

2. 수세 -YaST: yum

3. 데비안 -dpkg: yum

4. 우분투 -dpkg: apt-get

답: 4번

 

다음 중 dpkg로 현재 디렉터리의 vim_4.5.3.deb 패키지를 설치할 때 알맞은 것은?

1. dpkg -U ./vim_4.5.3.deb

2. dpkg -i ./vim_4.5.3.deb

3. dpkg -L vim

4. dpkg -p ./vim_4.5.3.deb

답: 2

 

오늘은 여기까지입니다! 도움이 되셨다면 공감/댓글/광고보답은 어떤가요?! 

정보공유에 큰 보람이 됩니다. 다음에 또 봐요~!