상세 컨텐츠

본문 제목

Linux 기초 (패키지 설치, {rpm, deb} 파일)

기술공부/Linux

by helpilsang 2025. 12. 3. 09:17

본문

패키지 설치

리눅스의 주요 모듈은 패키지 매니저를 이용해서 설치할 수 있다
[ yum ]은 레드햇 계열, [ apt-get ]은 데비안 계열에서 사용하는 패키지 설치 명령이다

yum - 레드햇 계열, CentOS
apt-get  - 데비안 계열, 우분투

yum 명령어

yum에 설정된 기본 레파지토리의 정보를 이용하여 파일을 설치. 사용자가 레파지토리를 추가할 수도 있음

명령 설명
yum -h 설명을 출력
yum list [프로그램 명] 설치할 수 있는 프로그램의 버전을 출력
yum install [프로그램 명] 프로그램을 설치
yum search [프로그램 명] 프로그램 검색
yum update 설치된 프로그램을 업데이트
yum update [프로그램명] 프로그램을 업데이트
yum upgrade 설치된 프로그램을 업그레이드
update는 사용하지 않는 패키지를 유지
upgrade는 삭제
yum remove [프로그램 명] 프로그램 삭제
exam

$yum install wget

 

apt 명령어

apt에 설정된 기본 레파지토리의 정보를 이용하여 파일을 설치. 사용자가 레포지토리를 추가할 수 도 있음

명령 설명
apt -h 설명을 출력
apt list [프로그램 명] 설치할수 있는 프로그램의 버전을 출력
apt install [프로그램 명] 프로그램을 설치
apt search [프로그램 명] 프로그램 검색
apt update 설치된 프로그램을 업데이트
apt update [프로그램 명] 프로그램을 업데이트
apt upgrade [프로그램 명] 설치된 프로그램을 업그레이드.
update는 사용하지않느 패키지를 유지하고
upgrade는 삭제
apt remove [프로그램 명] 프로그램 삭제
apt --print-urls 다운로드 파일정보 추가
exam

$ apt install wget

 

참고

apt를 사용하다보면 lock이 걸려서 설치가 안되는 경우가 있음
다음과 같이 lock파일을 삭제하여 오류를 해결할 수 있음

# lock 이 걸리는 경우 
Reading package lists... Done
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

# lock 파일 삭제 
sudo rm /var/lib/apt/lists/lock  
sudo rm /var/cache/apt/archives/lock  
sudo rm /var/lib/dpkg/lock*


conflict 오류

라이브러리를 동시에 설치할 때 여러개의 라이브러리에서 같은 라이브러리를 설치하려고 하면 다음과같이 conflict오류가 발생함
이때는 라이브러리를 동시에 설치하지 말고, 하나씩 설치하면 오류없이 설치할 수 있음

The following packages have unmet dependencies:
 libsasl2-modules-gssapi-heimdal : Conflicts: libsasl2-modules-gssapi-mit but 
2.1.27~101-g0780600+dfsg-3ubuntu2.3 is to be installed
 libsasl2-modules-gssapi-mit : Conflicts: libsasl2-modules-gssapi-heimdal but 
2.1.27~101-g0780600+dfsg-3ubuntu2.3 is to be installed
E: Unable to correct problems, you have held broken packages.


설치파일 다운로드

인터넷이 되지 않는 환경에 설치 하기 위해서 필요 한 파일을 다운로드 해야 하는 경우 사용할 수 있음
관련된 모든 라이브러리를 찾아 주기때문에 동일한 환경의 서버에 설치할때 유용하게 사용

다음은 nginx 의 설치 파일을 확인하는 명령입니다.

ubuntu@host-172-16-3-55:~$ apt install --print-uris -y nginx
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  fontconfig-config fonts-dejavu-core libdeflate0 libfontconfig1 libgd3 libjbig0 libjpeg-turbo8 libjpeg8 libnginx-mod-http-geoip2 libnginx-mod-http-image-filter libnginx-mod-http-xslt-filter libnginx-mod-mail
  libnginx-mod-stream libnginx-mod-stream-geoip2 libtiff5 libwebp7 libxpm4 nginx-common nginx-core
Suggested packages:
  libgd-tools fcgiwrap nginx-doc ssl-cert
The following NEW packages will be installed:
  fontconfig-config fonts-dejavu-core libdeflate0 libfontconfig1 libgd3 libjbig0 libjpeg-turbo8 libjpeg8 libnginx-mod-http-geoip2 libnginx-mod-http-image-filter libnginx-mod-http-xslt-filter libnginx-mod-mail
  libnginx-mod-stream libnginx-mod-stream-geoip2 libtiff5 libwebp7 libxpm4 nginx nginx-common nginx-core
0 upgraded, 20 newly installed, 0 to remove and 179 not upgraded.
Need to get 2693 kB of archives.
After this operation, 8350 kB of additional disk space will be used.
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/f/fonts-dejavu/fonts-dejavu-core_2.37-2build1_all.deb' fonts-dejavu-core_2.37-2build1_all.deb 1041300 MD5Sum:613b49540f3ffdc7dcda4ddc96f35323
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/f/fontconfig/fontconfig-config_2.13.1-4.2ubuntu5_all.deb' fontconfig-config_2.13.1-4.2ubuntu5_all.deb 29096 MD5Sum:cb0642b846aa8a3a65a75c854ca043b7
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/libd/libdeflate/libdeflate0_1.10-2_amd64.deb' libdeflate0_1.10-2_amd64.deb 70884 MD5Sum:a10f6fa75daa8f5ba3fc69a381537180
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/f/fontconfig/libfontconfig1_2.13.1-4.2ubuntu5_amd64.deb' libfontconfig1_2.13.1-4.2ubuntu5_amd64.deb 131434 MD5Sum:ee3a2cc8fb1b9417a90f4b2c971a872a
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/libj/libjpeg-turbo/libjpeg-turbo8_2.1.2-0ubuntu1_amd64.deb' libjpeg-turbo8_2.1.2-0ubuntu1_amd64.deb 134436 MD5Sum:902f9fb77327240ee199680b1bb4b18d
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/libj/libjpeg8-empty/libjpeg8_8c-2ubuntu10_amd64.deb' libjpeg8_8c-2ubuntu10_amd64.deb 2264 MD5Sum:04058877dc04e31bc950d321ccbae3a9
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/j/jbigkit/libjbig0_2.1-3.1ubuntu0.22.04.1_amd64.deb' libjbig0_2.1-3.1ubuntu0.22.04.1_amd64.deb 29166 MD5Sum:cf8b8e7b85816464caa7653da7f6896d
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/libw/libwebp/libwebp7_1.2.2-2ubuntu0.22.04.2_amd64.deb' libwebp7_1.2.2-2ubuntu0.22.04.2_amd64.deb 206268 MD5Sum:19021c38ba09ff27edb9d68508f71106
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/t/tiff/libtiff5_4.3.0-6ubuntu0.9_amd64.deb' libtiff5_4.3.0-6ubuntu0.9_amd64.deb 185300 MD5Sum:2b6a56aea8e93873181799db49233f7e
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/libx/libxpm/libxpm4_3.5.12-1ubuntu0.22.04.2_amd64.deb' libxpm4_1%3a3.5.12-1ubuntu0.22.04.2_amd64.deb 36706 MD5Sum:2fb8f666fdcc413497258203571cbc7b
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/libg/libgd2/libgd3_2.3.0-2ubuntu2_amd64.deb' libgd3_2.3.0-2ubuntu2_amd64.deb 129240 MD5Sum:74131674eda388404440d2065fb5f180
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/n/nginx/nginx-common_1.18.0-6ubuntu14.4_all.deb' nginx-common_1.18.0-6ubuntu14.4_all.deb 39980 MD5Sum:1cb26722996417ef4eb1c34ee033a126
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/n/nginx/libnginx-mod-http-geoip2_1.18.0-6ubuntu14.4_amd64.deb' libnginx-mod-http-geoip2_1.18.0-6ubuntu14.4_amd64.deb 11898 MD5Sum:45eb8e8aa47f427153bf70620d40103a
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/n/nginx/libnginx-mod-http-image-filter_1.18.0-6ubuntu14.4_amd64.deb' libnginx-mod-http-image-filter_1.18.0-6ubuntu14.4_amd64.deb 15416 MD5Sum:214f070c0ce5fd56e160500cb076a959
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/n/nginx/libnginx-mod-http-xslt-filter_1.18.0-6ubuntu14.4_amd64.deb' libnginx-mod-http-xslt-filter_1.18.0-6ubuntu14.4_amd64.deb 13730 MD5Sum:bfebb0dd914989c1f0d617001b1b03e0
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/n/nginx/libnginx-mod-mail_1.18.0-6ubuntu14.4_amd64.deb' libnginx-mod-mail_1.18.0-6ubuntu14.4_amd64.deb 45680 MD5Sum:8c24049f43efed7d63431b64a680d9ae
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/n/nginx/libnginx-mod-stream_1.18.0-6ubuntu14.4_amd64.deb' libnginx-mod-stream_1.18.0-6ubuntu14.4_amd64.deb 72854 MD5Sum:03f554d890d91a3d94e4949468b1ef0a
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/n/nginx/libnginx-mod-stream-geoip2_1.18.0-6ubuntu14.4_amd64.deb' libnginx-mod-stream-geoip2_1.18.0-6ubuntu14.4_amd64.deb 10122 MD5Sum:5052c9e94db8d4c272fd48806948c7b9
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/n/nginx/nginx-core_1.18.0-6ubuntu14.4_amd64.deb' nginx-core_1.18.0-6ubuntu14.4_amd64.deb 483572 MD5Sum:8ffdcae604f69a8b759101aa2e77367c
'http://kr-central-2-a.clouds.archive.ubuntu.com/ubuntu/pool/main/n/nginx/nginx_1.18.0-6ubuntu14.4_amd64.deb' nginx_1.18.0-6ubuntu14.4_amd64.deb 3872 MD5Sum:c50a1bfb0a399eeda5a918bad2b7826c

 

dpkg 명령어

dpkg는 Ubuntu 계열에서 사용함

dpkg는 파일로 패키지를 설치할 때 사용

명령 설명
dpkg -i [파일명] 파일을 설치
dpkg -r [패키지명] 패키지를 삭제
dpkg -l 설치된 패키지를 확인
exam

$ dpkg -i mysql.deb


주요 옵션

옵션 설명
-i 패키지설치
-l 설치된 패키지 확인

 

rpm, deb 파일

리눅스를 운영하면서 파일을 설치할 때 XXX.rpm 파일과 XXX.deb 파일을 많이 볼 수 있다

두가지 파일은 모두 응용프로그램 설치 파일인데 레드햇 계열의 rpm과 데비안 계열의 deb로 분류해 놓은것임
레드햇 계열의 CentOS에서는 rpm파일을 이용하여 설치하고, 데비안 계열의 우분투에서는 deb파일을 이용하여 설치함

패키지파일
  - rpm : 레드헷 계열
  - deb : 데비안 계열
패키지를 설치할때 파일을 이용할 수도 있지만, yum이나 apt-get명령어를 이용하면 의존성을 자동으로 관리해주니 이거쓰자..

설치파일 다운로드 예시

인터넷이 되지 않는 환경에서는 apt, yum명령이 동작하지 않는다. 
이럴때는 설치파일을 다운로드 받아서 설치해야함

  • 설치 파일 다운로드 - pkgs.org

필요한 파일을 검색한 뒤 Download항목에서 url을 확인하여 파일을 다운로드 한 후 dpkg 명령으로 파일을 설치할 수 있다

또한 단독으로 설치되지않고 다른 설치파일이 필요한 경우에는 Requires 항목에서 다른 파일을 확인하고, 파일을 가져와서 설치 한 후 설치해야한다.

# apt를 이용한 snappy 압축 설치 
apt install libsnappy-dev

# dpkg를 이용한 snappy 압축 설치 
dpkg -i libsnappy-dev_1.1.8-1build1_amd64.deb
dpkg -i libsnappy1v5_1.1.8-1build1_amd64.deb

설치 파일 목록 확인

apt를 이용하여 설치할 수 없는 환경에서 라이브러리를 설치하기 위해서 필요한 목록을 확인하기 위해서는 --print-uris옵션을 이용할 수 있다

# 커버러스 kdc 파일 목록 확인 
sudo apt install --print-uris -y krb5-kdc krb5-admin-server

# 커버러스 client 목록 확인 
sudo apt install --print-uris -y krb5-user

 

관련글 더보기