일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- JAVA #언어 #프로그래밍 #IT #개발 #코딩
- 유럽
- JAVA #객체지향 #프로그래밍 #언어 #IT #기초
- 경험
- 샐러리
- 여행 #
- 실비용
- 이탈리아
- 리눅스
- 겨울
- 파이썬
- 내심정
- JAVA #언어 #프로그래밍 #코딩 #static #정적함수 #정적변수 #클래스
- ip
- 서버
- 1달살기
- IT
- RabbitMQ
- 메시지 큐
- 영국
- 예약
- 유럽여행
- 여행
- 일정
- 인프라
- #DB#SQLD#자격증
- 추억
- 계획
- 준비
- 배낭여행
- Today
- Total
YoonWould!!
[용어]yum, apt, rpm 정리 본문
1.RPM 특징
- RPM(redhat package manager)의 약자로 리눅스 시스템 전체를 다시 설치하지 않고 필요한 개별 구성요소들만 업그레이드 할 수 있다. RPM으로 패키징된 새로운 운영체제(redhat, excel, turbo, suse)버전은 이용자가 이전에 설정한 시스템 환경을 전혀 다치지 않고 모든 업그레이드를 안전하게 할 수 있다. 또한 RPM은 질문 옵션을 많이 가지고 있다. 지금 시스템에 설치된 패키지는 무엇이고, 새로이 가져온 패키지는 어떤 파일들을 포함 하고 있고, 어디에 설치 되는지 등을 손쉽게 찾도록 해준다. 이런 ‘질문’과 ‘찾기’는 GMC등 파일 매니저와 연결되어 패키지 안에서 특정한 파일만 뽑아내기에 편하다. 그리고 시스템에 설치된 패키지를 점검해서 이상이 발견되면 해당 패키지만 다시 설치하면 되는 것이다. 업그레이드 할 때에도 이용자가 설정한 환경 설정 파일들은 전혀 손상이 되지 않는다. 그리고 RPM의 매우 중요한 설계의도 가운데 하나는 원래 개발자가 배포한 그대로 ‘원본’소프트웨어 소스를 쓸 수 있도록 하는 것이다. RPM의 build 명령을 TMaus 원본소스에 뒤이어 배포되는 어떤 패치라도 할 수 있고 새로운 RPM을 쉽게 만들 수 있다.
2. RPM의 기본 모드
①설치(Install)
②제거(uninstall)
③업그레이드(upgrade)
④질의(query)
⑤검증(verify)
패키지의 이름으로 확인 할 수 있는 것들.
ex)packname-2.1.5-2.i386(또는 x86).rpm
packname : 패키지의 이름을 나타냄
2.1.5 : 버전번호 (보통 커널버전이 들어감)
2 : 릴리즈 번호
i386(x86) : 아키텍쳐
위의 설명중 아키텍쳐는 프로그램이 수행되는 플랫폼(platform)을 의미한다. i386(x86)은 인텔386계열의 프로세서를 가진 플랫폼에서 컴파일 되었다는 의미이다. 또 다른 중요한 아키텍쳐는 noarch이다. noarch는 문서나 글꼴처럼 아키텍쳐에 종속되지 않는 패키지를 나타낸다. 인텔이나 그 호환 칩셋을 꽂은 PC에서는 기본적으로 i386(x86)이나 noarch라는 아키텍쳐 이름이 포함된 패키지만 쓸 수가 있다. 위의 i386은 80386, 486, 586등의 인텔 계열의 프로세서를 통칭하며, i386외에 alpha, m68k(모토로라 68000), ppc(파워PC), sparc(sun), noarch등의 아키텍쳐들이 있다.
3. RPM설치
#rpm -ivh pack-2.1.5-2.i386.rpm
i = install
v = verbose
h = hash
위의 과정은 해당 rpm패키지를 설치하는 과정이고 덧붙이자면 v옵션을 두 개 쓰면 rpm패키지가 설치되는 상세 과정을 볼 수가 있다. (예 -ivvh)
에러처리
1. #rpm -ivh pack-2.1.5-2.i386.rpm
package pack-2.1.5-2.i386.rpm is already installed
error : pack-2.1.5-2.i386.rpm cannot be installed
- 패키지가 설치되어 이TDj 설치가 불가능 하다는 메시지가 나온다.
--replacepkgs 옵션을 쓰면 된다.(에러무시)
#rpm -ivh --replacepkgs pack-2.1.5-2.i386.rpm
2. #rpm -ivh pack-2.1.5-2.i386.rpm
pack /user/bin/filename conflicts with file from pack2-2.1.0-2
error...
위의 에러는 다른 패키지가 설치되면서 풀어놓은 파일들중 현재 설치 되려고 하는 패키지의 소유의 파일과 이름이 동일해서 충돌한다는 메시지 이다.
이럴땐 다음과 같이 옵션을 주면 된다.
#rpm -ivh --replacefiles pack-2.1.5-2.i386.rpm
3. #rpm -ivh pack-2.1.5-2.i386.rpm
falied dependencies :
pack is needed by xxx-2.1.5
위는 설치RPM 및 삭제하면서 가장 많이 만나게 되는 의존성 문제로 에러가 나는 경우이다.
이러한 문제는 각각의 패키지들이 서로 연동하기 때문에 발생하는 것으로 무시하고 계속설치하기 위해서는 --nodeps 옵션을 쓰면 되지만 문제의 소지가 있으므로 가급적 의존성에 걸리는 패키지를 먼저 설치하고 해당 패키지를 설치하기 바란다.
4.RPM 업그레이드
#rpm -Uvh pack-2.1.5-2.i386.rpm
############################
rpm 업그레이드 옵션은 ivh 대용으로 사용할 수 가 있다. 업그레이드를 하는 것 이지만 만약 이전 버전이 없다면 ivh를 한것과 같이 적용된다.
그리고 이전 패키지의 설정파일 등을 .rpmsave 라는 확장자를 붙여서 백업을 한다는 것이다. 업그레이드 패키지 설정 파일이 크게 달라진 것이 없다면 해당 백업설정 파일을 복원 해주는 것 만으로도 쉽게 업그레이드가 가능 해진 것이다.
#rpm -Uvh --oldpackage pack-2.1.5-2.i386.rpm
#################################
위의 옵션은 설치 하고자 하는 패키지가 현재 설치 되어있는 패키지 보다 옛날 버전일 때 쓰는 옵션이다. 많이 쓰이는 경우 이므로 꼭 기억해두자.
업그레이드 했을 때 다음과 같은 에러메세지를 보여줄 때 쓰는 옵션이다.
( which is newer ) is already installed
#rpm -Fvh pack-2.1.5-2.i386.rpm
위의 -F옵션은 업그레이드 하는 것과 비슷한 역할을 한다. 이러한 것도 있다는 것만 알고 넘어가자
5. RPM삭제
#rpm -e pack
위와 같이 간단하게 -e 옵션과 함께 패키지 이름만 적어주면 된다.
설치때와 마찬가지로 의존성 문제 에러가 많이 난다.
이때는 설치때와 같이 --nodeps 옵션을 주면 강제로 삭제되만 공유라이브러리 까지 같이 삭제 된다면 시스템에 치명적인 결과를 가져올수 있으니 조심
6.RPM질의
#rpm -q pack
위와 같이 -q (query) 옵션을 주고 pack이라는 이름을 가지고 있는 패키지를 찾아서 보여달라는 뜻이다.
-q 옵션은 다른 여러옵션들과 함께 쓰여서 유용한 역할을 하게된다.
하나씩 알아보도록 하자
옵션&nsbp;&nsbp;&nsbp;&nsbp;&nsbp;&nsbp;&nsbp;&nsbp;&nsbp;설명
-qa : 현재 시스템에 설치된 모든 패키지의 정보를 보여준다.
-qf : 특정 파일이 어떠한 rpm 패키지에 속하는지 알아본다.
-qp : 패키지의 파일정보를 보여준다.
-qi : 설치될 파일이름, 설명, 릴리즈, 크기 등의 여러 가지 정보출력
-ql : 패키지에 속한 파일들의 목록을 보여준다.
-qs : 패키지에 들어있는 파일들의 상태정보를 나타낸다.
-qd : 문서파일의 목록 들만 보여준다.(man, info, read me)
-qc : sendnail, cf, passwd 등과 같은 설정 파일표시가 있는것만 출력
-qip : information package 즉 자세한 정보를 보여주게 된다.
-qR : 의존성 정보를 알아볼 때 사용한다.
7. RPM검사
옵션은 -V를 쓴다. RPM패키지의 아주 유용한 기증중의 하나 이다. 원본 패키지 정보와 시스템에 설치된 파일들의 정보를 비교한다. 다음 검사방법의 예이다.
#rpm -Vf /bin/vi : 특정 실행파일을 지정해서 해당 패키지검사
#rpm -Va : 시스템에 설치된 전체 패키지를 검사
#rpm -Vp : pack-2.2.5-2.i386.rpm 패키지 파일로 검사
다음은 이상 유무를 판단하는 방법이다.
... : 이상이 없다는 말이다.
missing : 해당 파일이 시스템에서 삭제 되어서 없어졌을 경우
5 : MD5 ( message digest 5) 체크섬
L : 심볼릭 링크(symbolic link)
T : 파일수정 시간 (file modification time)
D : 장치 ( device )
U : 소유한 이용자 ( user )
G : 소유한 그룹 ( group )
M : 퍼미션 ( chmod )
S : 파일크기
실수로 파일을 삭제했을 경우
#rpm -Va | grep -i missing
.........
#rpm -qf 찾은 파일명
위와같이 우선 삭제된 파일을 찾고 찾은 파일을 이용하여 해당 파일이 어느 패키지에 속해 이TSms지 확인후 재설치를 해주면 간단하게 해결된다.
8. yum 기능 정리
1. yum을 이용한 패키지 업데이트
yum(Yellowdog Updater, modified)란?
- rpm패키지 설치시 자동적으로 의존성 문제를 처리하여 rpm 패키지를 안전하게 설치, 제거, 업그레이드 등의 작업을 스스로 알아서 해주는 지능형 도구.
yum 패키지 설치 확인
#rpm -q yum
yum 설정
cat /etc/yum.conf (수정 시에는 cat 대신 vi를 사용한다.)
패키지 설치
yum install 패키지명
패키지 업데이트
yum update
- 시스템 내에 설치되어 있는 업데이트 가능한 모든 패키지를 업데이트 할 수 있다.
패키지 제거
yum remove <패키지명>
예) ~]# yum remove thunderbird
패키지 검색
yum search <검색어>
예) ~]# yum search thunderbird
패키지 정보 알아보기
yum info <패키지명>
예) ~]# yum info thunderbird
하드디스크에 있는 패키지 설치
yum localinstall <패키지명>
9. apt 기능 정리
apt를 이용한 패키지 업데이트
- apt(Advanced package Tool)은 데비안 리눅스용 패키지 업데이트 관리도구다.
- rpm 기반의 다른 리눅스 배폰판에서 사용할 수 있도록 포팅 되었다. rpm의 의존성 문제 해결.
apt 설치
yum을 이용하여 apt패키지를 설치한다.
yum install apt
->공개키 문제로 apt가 설치 되지 않을 경우 /etc/yum.conf파일의 gpgcheck=0으로 임시 수정
apt-get 사용법
apt-get [옵션] 명령
apt-get [옵션] installremove 패키지명
apt-get [옵션] source 패키지명
패키지 목록 업데이트
# apt-get update
패키지 설치
# apt-get install <패키지명>
# apt-get reinstall <패키지명> <-- 패키지 재설치
패키지 제거
# apt-get remove <패키지명>
# apt-get --purge remove 패키지명 <--패키지의 설정파일 까지 모두 제거 된다.
패키지 업그레이드
# apt-get upgrade
패키지 정리하기
# apt-get clean <-- /var/cache/apt/archives의 모든 임시 설치파일을 제거 해 준다.
패키지 검색
# apt-cache search <키워드>
패키지 의존성 정보 알아보기
# apt-cache depends <패키지명>
Synaptic 그래픽 APT 도구
-> http://nongnu.org/synaptic/index.html
synaptic 설치
# apt-get install synaptic
3. PUP(Package Updater)를 이용한 페도라 업그레이드( 페도라6 이상에서 지원)
pup 설치
# rpm -q priut <-- priut 설치 여부 확인
# apt-get install priut
'<인턴생활> > [리눅스]' 카테고리의 다른 글
rhcsa 준비하자 (0) | 2019.03.12 |
---|---|
리눅스 레드헷 관련 주제 정리 (0) | 2019.03.12 |
[문제해결] ssh 설정을 했지만 selinux에 막혀서 안될 때 (0) | 2019.03.11 |
[문제해결]-bash-4.1$ (0) | 2019.03.08 |
리눅스 명령어를 이용한 시스템 모니터링하기 (0) | 2019.03.08 |