Linux OS/기본

패키지관리 명령어 yum, apt, rpm, dpkg

서버엔지니어 2022. 11. 16.
728x90
 동작 Red Hat  Debian 
 
패키지 추가, 삭제, 업데이트

 패키지 설치  yum install 패키지명 apt-get install 패키지명 
 패키지 파일을 설치 yum localinstall 패키지명.rpm  dpkg -i 패키지명.deb 
 RPM -ivh 패키지명.rpm
패키지 제거 yum remove 패키지명  apt-get remove 패키지명 
 RPM -e 패키지명 dpkg -r 패키지명 
 업데이트 확인 yum check -update  apt-get -s upgrade 
 apt-get -s dist-upgrade
 전체 업데이트 yum update   apt-get upgrade
 apt-dist-upgrade
 특정 패키지 업데이트 yum upgrade 패키지명   apt-get upgrade 패키지명
 apt-get dist-upgrade 패키지명
 


패키지 정보 확인



 패키지 검색 yum search 스트링  apt-cache search 스트링 
  패키지 리스트 yum list  apt-cache search 
 사용 가능한 패키지 표시  yum list avaulable apt-cache dumpavail 
 설치된 패키지 확인 yum list installed  dpkg -l 

rpm

 

-i 새로운패키지 설치 install

-U 업그레이드 또는 설치

-F 이전버전이 설치 되어있는 경우 설치 (--freshen)

-e 설치된 패키지 삭제

-v rpm 명령어를 수행하면서 메시지를 잘 보여준다.

-h 진행상황을 Hash(#)로 보여준다.

-g 패키지가 설치 되어 있는지 확인하고 있으면 이름과 버전을 출력한다 ex) rpm -qa | grep httpd

-qa 설치된 모든패지키를 보여준다.

 

yum

 

명령어

* yum check-update : 현재 인스톨된 프로그램 중에 업데이트 된 것을 체크해줍니다.

* yum clean all : 캐시 되어 있는 것을 모두 지웁니다.

* yum deplist : yum 패키지에 대한 의존성 테스트합니다.

* yum downgrade 패키지 : yum을 통한 패키지 다운그레이드합니다.

* yum erase 패키지 : yum을 통한 시스템에서 삭제합니다.

* yum groupinfo 그룹 : 그룹패키지의 정보를 보여줍니다.

* yum groupinstall 그룹 : 그룹패키지를 설치합니다.

* yum grouplist 그룹 : 그룹리스트에 관한 정보를 확인합니다.

* yum groupremove 그룹 : 그룹리스트에 관해 삭제합니다.

* yum help : yum의 도움말을 확인합니다.

* yum info 그룹 또는 패키지 : 패키지 또는 그룹의 패키지를 자세하게 확인합니다.

* yum install 패키지 : 시스템으로 패키지의 Install 을 실시합니다.

* yum list : 서버에 있는 그룹 및 패키지의 리스트를 보여줍니다.

* yum localinstall 패키지 : 로컬에 설치합니다.

* yum makecache : 캐쉬를 다시 올립니다.

* yum provides FilePath명 : 파일이 제공하는 패키지 정보 출력합니다.

* yum reinstall 패키지 : 패키지를 재인스톨 합니다.

* yum update 패키지 : 패키지를 업데이트합니다.

* yum upgrade 패키지 : 패키지를 업그레이드 합니다.

* yum search 키워드 : 키워드로 시작하는 패키지를 검색할수 있습니다.

 

옵션

-h, --help : 해당 명령어의 도움말을 보여주고 실행이 종료됩니다.

-t, --tolerant : 에러를 자동으로 잡아서 설치합니다.

-C, --cacheonly : 캐시를 업데이트 하지 않고 전체 시스템 캐시 실행합니다.

-c [config file], --config=[config file] : 파일 위치를 알려줍니다.

-R [minutes], --randomwait=[minutes] : 최대치의 명령어 실행시 기다립니다.

-d [debug level], --debuglevel=[debug level] : 최종 결과를 디버깅합니다.

--showduplicates : 중복요소를 보여줍니다.

-e [error level], --errorlevel=[error level] : 결과 중 에러를 보여줍니다.

--rpmverbosity=[debug level name] : rpm에서 결과물을 디버깅합니다.

--version : Yum 버전을 보여주고 실행이 종료됩니다.

-y, --assumeyes : 모든 물음에 예를 진행합니다.

-q, --quiet : 모든 작업이 종료됩니다.

-v, --verbose : 작업을 장황하게 합니다.

--installroot=[path] : root권한으로 path위치에 인스톨을 진행합니다.

--enablerepo=[repo] : 1개 이상의 저장소 위치에 저장시킵니다.

--disablerepo=[repo] : 1개 이상의 저장소 위치에 저장시키지 않습니다.

-x [package], --exclude=[package] : 패키지 이름을 제외시킵니다.

--disableexcludes=[repo] : 이름으로 플러그인을 설치를 중단합니다.

--obsoletes : 오래된 패키지는 업데이트를 하는 동안 적절히 삭제 및 교체됩니다.

--noplugins : yum plugin이 없도록 합니다.

--nogpgcheck : gpg signature를 불가능하게 합니다.

--skip-broken : 문제 있는 패키지는 자동으로 스킵해서 넘어갑니다.

--color=COLOR : 컬러가 사용되었을 때 조정합니다.

--releasever=RELEASEVER : $releasever의 값을 yum config와 repo파일에서 조정합니다.

--setopt=SETOPTS : 임의로 config와 repo 옵션값을 지정합니다.

--disablepresto : Presto 플러그인을 중단하고 deltarpm을 다운로드 받지 않습니다.

apt는 apt-get과 apt-cache의 기능 중에서 잘 사용되지 않는 기능을 제외하고 만든 새로운 tool이다.

 

여기서 apt-get은 패키지 설치를 담당하고, apt-cache는 패키지 검색을 담당하는 tool이다.결론적으로 apt-get이 아닌 apt를 사용하는 것이 사용성 측면에서는 유리하다. apt에 대해 조금더 알아보자.

 

apt(Advanced Packaging Tool)는 debian 계열의 패키지 툴이다. 이는 리눅스 시스템에 패키지를 설치하고 제거하는데 사용된다.

 

apt는 이런 다양한 툴에서 옵션으로 처리해야 하는 기능들을 통합하여 사용자들로 하여금 편리하게 사용할 수 있도록 만들어진 툴이다. 리눅스를 처음 접하거나 특별히 옵션을 구별해야 하는 일이 없다면 apt 사용을 권장한다.

 

apt-get

 

명령어

패키지 인덱스 정보를 업데이트:

apt-get은 인덱스를 가지고 있는데 이 인덱스는 /etc/apt/sources.list에 있다.

 

 

1. 설치 관련 명령어

 

(1). sudo apt-get install <package_name>

<package_name>의 패키지를 설치합니다. 자동으로 의존성이 있는 패키지도 함께 설치합니다.

(2). sudo apt-get build-dep <package_name>

<package_name>을 설치하기 위한 의존성 있는 패키지들을 미리 설치할 수 있습니다.

** 어떤 경우에 이 명령어를 사용할까요? 패키지는 소스 형태로 설치할 때 사용할 수 있을거 같네요. 즉 의존성 있는 부분들은 미리 패키지로 설치하고 해당 패키지만 소스로 설치할 때요...

(3). sudo apitude install <package_name>

apt-get 설치와 비슷하다고 하는데, 크게 사용할 일은 없을 듯 함.

(4). sudo apt-get install <package1_name> <package2_name> <package3_name>

해당 패키지들을 순차적으로 설치함..

 

-s flage: 가상(?) 으로 설치해 볼 수 있습니다. 즉 실제 설치는 하지 않지만 어떤 패키지들이 설치될 것이며, 어떤 설정 파일들이 설치될지를 알 수 있습니다. (종종, 설치하기 전에 한번 해볼 필요가 있을 때...)

 

auto-apt 명령어

소스 형태로 설치할때 ./configure를 대신 처리해 주는 명령어

즉 소스 디렉토리로 가서

auto-apt run ./configure

 

2. 관리 명령어

 

(1). sudo apt-get update

/etc/apt/source.list의 인덱스를 기반으로 패키지의 정보를 최신으로 업데이트 합니다. 만약 찾지 못하는 패키지가 있으면 해당 패키지의 서버 리스트를 업데이트 후 본 명령어를 수행.

(2). sudo apt-get upgrade

설치한 패키지를 모두 최신으로 업그레이드

(3). sudo apt-get dist-upgrade

위의 명령어와 비슷합니다. 차이점은: "apt-get dist-upgrade" does not perform distribution upgrade.

 

(4). sudo apt-get check

진단 명령어로써, 패키지의 업데이트 및 파손된 의존성을 체크합니다.

(5). sudo apt-get -f install

"unmet dependences"를 만난다면 본 명령어로...

(6). sudo apt-get autoclean

더 이상 설치되어 있지 않은 패키지들의 .deb 를 제거해 줍니다.

(7). sudo apt-get clean <package_name>

해당 <package_name>의 .deb 파일을 지운다.  여기서 잠깐 .deb 파일이 있는 곳은   /var/cache/apt/archives

얼마나 많은 공간을 차지 하고 있는지 확인은  du -sh /var/cache/apt/archives

(8). dpkg-reconfigure <package_name>

<package_name>의 패키지를 재설정한다. 

 

 

3. 삭제명령어

 

(1). sudo apt-get remove <package_name>

<package_name>의 패키지를 삭제한다.

(2). sudo apt-get purge <package_name>

<package_name>의 패키지를 삭제하고 또한 해당 configuration file도 모두 삭제한다.

(3). sudo apt-get autoremove

다른 패키지 설치시 의존성 때문에 설치된 패키지가 더이상 사용되지 않을때 자동으로 삭제함

(4). dpkg -l | grep '^rc' | awk '{print $2}' | xargs dpkg --purge

 

 

4. 검색명령어

 

(1). sudo apt-cache search <search_term>

<search_term>의 패키지를 검색한다.

(2). dpkg -l *<serch_term>*

위의 명령어와 동일함. 단지 현재 설치되어 있는 패키지도 표시해 줌.

ii (installed) and un (not installed).

(3). sudo apt-cache show <package_name>

<package_name>의 패키지의 정보를 표시함

(4). dpkg --print-avail <package_name>

위의 명령어와 동일함

(5). dpkg -L <package_name>

<pckage_name>의 파일들을 보여준다.

 

(6). dpkg -c foo.deb

foo.deb의 파일들을 보여준다.

(7). sudo apt-cache pkgnames

시스템의 모든 패키지들을 보여준다.

(8). apt-cache search filename | grep -w filename

searching시 너무 길 경우 그 결과값을 짧게 하여 보구 싶을때..

 

5. 내용 업데이트

 

(1). sudo apt-get source <package_name>

package_name의 소스를 다운로드 한다. 

 

Options

-h 이 도움말.

-q 기록할 수 있는 출력 - 작업 알리미 없음

-qq 올 이외의 메시지 표시하지 않기

-d 압축 파일을 설치하거나 압축 해제하지 않고 다운로드만 하기

-s 동작 없음. 명령 시뮬레이션 실행

-y 모든 질문을 표시하지 않고 예라고 대답하기

-f 망가진 의존성 패키지가 있는 시스템을 즉시 정정하려 합니다.

-m 압축 파일을 찾을 수 없어도 계속 진행하도록 합니다

-u 업그레이드한 패키지의 목록도 표시합니다.

-b 소스 패키지를 가져온 후 빌드합니다

-V 자세한 버전 번호 표시

-c=? 지정한 설정 파일 읽기

-o=? 임의의 옵션을 설정합니다, 예를 들어 -o dir::cache=/tmp

더 자세한 정보는 apt-get(8), sources.list(5) and apt.conf(5) 메뉴얼 페이지를 확인하십시오.

 

 

dpkg

 

dpkg -i <package name>

주어진 .deb 파일을 설치(--install)

dpkg -P <package name>

패키지와 해당 패키지의 설정파일 삭제 (--purge)

dpkg -r <package name>

시스템으로 부터 주어진 패키지만 삭제 (--remove)

dpkg -c <package name>

주어진 .deb 파일이 설치한 파일 목록을 보여줌

dpkg -L <package name>

주어진 패키지로부터 설치된 모든 파일 목록을 보여줌

dpkg -I(아이) <package name>

주어진 .deb 파일에 대한 정보를 보여줌(information)

dpkg -l(엘) <package name>

설치된 패키지 목록을 보여줌

dpkg -R <package diredtory>

주어진 디렉토리 내의 모든 패키지를 설치한다.

dpkg --unpack <package file>

패키지로부터 파일을 추출

dpkg --pending

추출된 모든 패키지 파일들이 설치 완료

dpkg -S

상태 데이터베이스에서 패키지 정보를 출력

dpkg --force

강제 옵션

dpkg --configure

정확한 패키지 설치를 위해 설정 파일을 설정

댓글