- Today
- Total
프로그래밍 농장
Linux [ RPM (redhat package management) ] 본문
RPM( redhat package management ) 란, 리눅스에 프로그램을 설치하는 방법중 하나이다.
리눅스에서는 윈도우처럼 원하는 프로그램을 설치하면 바로 그 동작을 하는것이 아니라, 원하는 작업에 필요한 패키지들을 맞춰서 설치해줘야 그 작업을 설치해놓은 여러 패키지들이 맞물려서 실행되는 과정이다.
그렇다면, 이떄 패키지하나라도 잘못된다면, 패키지충돌,패키지꼬임 등의 문제가 발생될수 있기떄문에, 현재 내가 사용할수있는 패키지버전, 아키텍쳐가 맞는지 잘 확인후 설치해야한다.
1. 수동설치 과정 : 소스 - 컴파일 - 환경설정 - 설치 - 실행 : tar & make
ex) configure -> make -> make install
configure== 소스파일에 대한 환경설정 ==설치 경로 지정 등
ex) ./configure ==prefix = /usr/local/java 이런식으로
ex) make == 소스 컴파일 == 소스 파일을 실행 가능한 파일로변환
ex) make install == make 를통해 생성된 파일을 설치
2. X X X - 설치 - 실행 --> 위의 과정 X / 대신 rpm 명령어사용
[ package ]
3. 리눅스가 인터넷에 연결되어있다면 yum을 사용하여 프로그램 설치가능.
-리눅스 패키지 파일 list
http://mirror.kakao.com/centos/7.7.1908/os/x86_64/Packages/
위 사이트에 들어가면 패키지파일들이 아래와같은 형식으로 나열되있을것이다.
-패키지 파일 구조에 대한 설명
ex) vim-enahanced-7.0.109-3.i386.rpm
위의 패키지파일명에서의 각 의미를 알아보자.
- vim -enahanced : 패키지명
- 7 : 주 버전 --> 큰 틀자체를 수정한 횟수 ( 각 주버전마다 내용,명령어자체가 다름 )
- 0 : 보조 버전 --> 고치지않으면 안되는 치명적인 오류수정 작업횟수
- 109 : 수정 버전 --> 굳이 고치지않아도 되지만, 편의를위한 수정을 한 횟수
- 3 : 배포버전 --> 현재 버전의 배포횟수
- i386 : 아키텍처 --> cpu 성능에 맞는 최적화버전 ( i386 --> intel i3 cpu에 최적화됨 )
( i386, i586 ,i686 --32bit 운영체제 / x86-64 --64bit 운영체제 )
- rpm : 확장자명
- rpm 사용형식
-설치 : rpm -ivh [package] ....rpm --> ( -ivh옵션 ( i: 설치 , v: 보여줌, h: 패키지 설치과정을 '#'으로 표시 )
: rpm -Uvh [package] ...rpm -->( U : 설치되어있는 패키지가 없다면 설치, 이미 설치되있다면 업데이트 실시 )
-삭제 : rpm -e [package] --> ( e : 삭제 )
-확인 : rpm -qa | grep [package] -->
( qa옵션 : 시스템에 설치되어있는 전체 패키지 목록조회 / grep :(package 명이 들어간 패턴검색 )
- 명령어 rpm -qa 입력시 : 현재 내 시스템에 설치된 패키지확인 가능.
+ qa 옵션뒤에 | grep (검색명) --> grep 옵션을 이용해서 원하는 검색명으로 찾을수있다.
+추가적으로 알고있으면 좋은 쿼리 옵션들 ( 리마 시험에 출제가능 )
- qf : 파일을 포함하는 패키지만 검색
- qi : 패키지에 대한 정보를 확인
- qR : 검색한 패키지가 의존하고있는 패키지들 출력
- qc : 검색 패키지관련 설정파일들만 출력
- qs : 패키지에 속한 파일들의 상태 표시
위에서 말했듯이, 특정 패키지의 작업을 하려면 리눅스에서는 맞물려서 사용되는 패키지들을 설치해야한다 했다.
- 패키지 작업시 유의사항
1 . 의존성 오류 (Failed dependencies ) 를 절대 무시하지 말자 .
2. 의존성 오류가 제기된다면 의존성 오류를 제기한것들부터 작업한다.
3. 가급적 의존성 오류 무시 옵션 ( --nodeps ) 을 사용하지 말자.
--> nodeps == 의존성 오류를 무시하고 작업하겠다는 뜻
--> force == 강제로 작업하겠다는 뜻
4. 디렉토리 구조로 표시되는 것들은 무시한다.
lib... 으로 시작하고 중간에 so 가 들어간 것들도 무시한다 == 예외있음
'Linux' 카테고리의 다른 글
Linux [ yum을 이용한 패키지 관리 ] (0) | 2019.11.06 |
---|---|
Linux [ ftp서버를 이용해서 vim패키지 설치 예제 ] (0) | 2019.11.05 |
Linux [ skel 에 대해서 ] (0) | 2019.11.04 |
Linux [ cp : omitting directory 에 대한 설명 ] (0) | 2019.11.04 |
Linux [ 압축 ( compress, zip, gzip, bzip2, xz) ] (0) | 2019.11.01 |