리눅스 rpm 패키지와 패키지 관리 툴
리눅스에서 프로그램을 설치하기 위한 단계
- 압축 풀기 -> 디렉토리 이동 -> configure -> make -> make install
컴파일러
- 소스코드는 컴퓨터가 이해할 수 있는 binary file로 변환해주는 “컴파일”작업을 함.
- 컴파일러는 컴파일을 해주는 프로그램.
- 종류 : gcc, g++ 등등.
configure 스크립트
- 사용자가 프로그램의 일부 기능을 제외하여 설치하고자 하는 경우 옵션이 필요.(환경설정이 필요)
- 사용자가 환경설정을 하는 것이 어려우므로 configure script가 실행. (설치 옵션에 사용자는 체크만)
- configure script의 설치 옵션 내용을 토대로 makefile이 작성됨.
make 유틸리티
- 복잡한 컴파일 작업을 손쉽게 하기 위한 유틸리티.
- 확장자 없는 makefile 제목의 파일에 소스코드들 간의 관계나 역할
- 컴파일 과정이나 이용되는 컴파일러 등을 기록하고 이를 이용하여 컴파일을 쉽게 해줌.
- configure에 의해 변경된 내용을 반영하고 타겟과 의존성 관련작업을 하여 실행파일 생성.
- make install : 생성된 실행파일을 지정된 디렉토리에 설치하는 작업.
cmake
- make유틸리티의 대체 프로그램으로 멀티 플랫폼 지원하기 위해 등장한 오픈소스 프로젝트.
- 유닉스 계열 운영체제 외에 MAC OS X, 윈도우 운영체제의 프로그래밍 도구도 지원.
tar(Tape archive)
- 여러 파일들을 하나의 파일로 묶어주는 명령.
- 확장자 형식 : tar.Z / gzip(tar.gz) / bzip2(tar.bz2) / xz(tar.xz)
- 파일을 압축하고 해제하는 방법.
- 압축 형식 : tar [옵션] 생성파일명 압출할파일명.
- 압축해제 : tar [옵션] 파일명
* -z : gzip으로 압축하거나 해제.
* -Z : 압축관련 유닉스 계열 표준 압축파일인 tar.Z에 사용.
* -x : 압축된 파일로부터 압축을 해제.
* -c : 새 저장 tar파일을 생성.
* -s : 저장 파일목록과 똑같은 순서로 압축을 해제.
* -j : bzip2 필터를 이용하여 .bz2파일을 해제.
* -J : 압축파일 .tar.xz 파일을 해제.
* -v : 처리중인 파일을 자세하게 보여줌.
* -t : tar파일 안에 묶여 있는 파일의 목록을 출력.
* -p : 파일이 생성되었을 때의 권한을 그대로 유지하게 함.
* -f 파일명 : 작업대상이 되는 tar파일의 이름을 지정.
* -r : 기존 파일에 추가를 하여 압축.
ex) tar cvzf wonderful.tar.gz ~ -> root디렉토리의 파일들을 .wonderful.tar.gz로 압축 해주세요.
(처리중인 파일과 tar파일 안에 묶여있는 파일도 보여줘)
ex) tar xvzf wonderful.tar.gz ~ -> wonderful.tar.gz파일을 압축 해제 해줘.
(처리중인 파일과 tar파일 안에 묶여있는 파일도 보여줘)
패키지 설치 - RPM(Redhat Package Management)
- 패키지 이름 - 버전 - 릴리즈.아키텍처.rmp 구조로 되어있다.
- 패키지 이름 : 어떤 패키지인가를 설명해주는 패키지의 이름. (쉽게말하면 이름) / mysql
- 버전 : 패키지 버전 / 5.0.22
- 릴리즈 : 한 버전의 패키지를 몇 번 빌드했는지 알 수 있다. / 2.1
- 아키텍처 : 패키지가 사용가능한 시스템 / i386
ex) mysql -5.0.22 -2.1.i386.rmp
패키지 관리
- RedHat에서 개발한 패키지 관리 기법.
- 형식 : rpm [옵션] <설치할 패키지명 또는 삭제할 패키지명 또는 조회할 패키지명>
* -i : 설치 옵션, 이전 버전이 설치되어 있을 경우 설치하지 않음.
* -U : 이전 버전이 설치되어 있다면 업그레이드, 설치되어 있지 않은 경우 새롭게 설치.
* -F : 이전 버전이 설치되어 있을 경우에만 설치, 설치되어 있지 않은 경우 새롭게 설치.
* --force : 강제로 설치할 때 사용.
* -v : 설치 중 메시지를 출력.
* -h : 진행과정을 #으로 표시.
* --test : 실제로 파일에 기록하는 작업을 제외한 대부분에 대한 테스트를 함
* -q : 패키지가 설치되어 있는지 검색, 설치되어 있다면 패키지 이름과 버전을 출력.
* -qa : 현재 설치된 모든 패키지 목록을 검색.
* -ql : 현재 설치된 패키지의 간략한 정보와 설치된 파일을 출력.
* -e : 패키지 삭제.
* --allmatches : 동일한 이름을 갖는 패키지가 중복 설치되어 있는 경우에 모두 제거.
* --nodeps : 의존성 문제를 무시하고 설치하거나 삭제.
ex) rpm -e rdma -> rdma 패키지 삭제.
ex) rpm -e rdma-nodpes -> rdma 패키지 제거시 의존성 있는 패키지 존재할 경우에도 제거.
rpm 패키지 검증 작업
- rpm 데이터베이스에 저장되어 있는 패키지의 메타데이터 정보를 이용하여 변경된 정보를 찾아내는 것을 의미.
- 옵션 -V를 이용하여 파일의 크기, 허가권, 소유권, 파일 형식에 대한 변경 정보를 출력.
YUM(Yellowdog Updater Modified)
- RPM 명령의 의존성 문제를 해결.
- RPM 기반의 시스템에서 손쉽게 패키지 설치하고 자동으로 업데이트 수행하는 명령행 기반의 유틸리티.
- RPM 패키지가 저장된 서버에 접속하고 설치하고자 하는 RPM을 다운로드 하여 설치.
- 형식 : yum [옵션] [모드] 패키지
* -y : 설치여부를 묻지 않고 바로 설치. (모두 yes)
* -v : 자세한 정보를 출력.
- 모드
= list [항목] : 전체 패키지에 대한 정보를 출력.
= install : 패키지 설치.
= check-update : 설치된 패키지 중에서 업데이트가 가능한 패키지의 목록을 출력.
= update : 패키지를 업데이트.
= remove : 패키지를 삭제.
= info : 패키지의 정보를 출력.
= grouplist : 패키지 그룹에 대한 정보를 출력.
= groupinfo 패키지 그룹명 : 해당 패키지 그룹명과 관련된 패키지 정보를 보여줌.
= groupupdate 패키지 그룹명 : 해당 그룹 패키지 업데이트.
= groupinstall 패키지 그룹명 : 해당 그룹의 패키지를 설치.
= groupremove 패키지 그룹명 : 해당 그룹의 패키지를 제거.
YUM관련 파일 및 디렉토리 정보
- YUM에서 패키지를 설치/업데이트하기 위한 저장소 파일들은 /etc/yum.repos.d 디렉토리에 저장.
- CentOS-Base.repo의 주요 구성 항목.
= [base] : YUM 패키지 서버의 기본 경로 설정.
= [updates] : 업데이트된 패키지를 위한 경로 설정 항목.
= [extras] : 유용하게 쓸 수 있는 추가 패키지 경로를 설정하는 항목.
= [centosplus] : 존재하는 패키지들의 기능적 확장과 관련있는 패키지 경로를 설정하는 항목.
- yum환경 설정 파일 : /etc/yum.conf
- yum로그 작업 파일 : /var/log/yum.log
- yum clean all : 이미 cache되어 있는 헤더, 패키지, 메타데이터들 다 제거한다. fastesmirror에러 날 경우 사용.
apt-get
- 데비안 리눅스 배포판에서 패키지관리를 쉽게 하기 위해 제공된 명령행 유틸리티.
- 패키지 설치에서 발생하는 의존성문제와 충돌문제를 손쉽게 해결.
- etc/apt/sources.list 파일에서 패키지 관련정보를 관리.
- 형식 : apt-get [옵션][모드] 패키지
* -y : 설치여부를 묻지 않고 바로 설치. (모두 yest)
* --purge : remove명령 수행시 환경설정부분까지 같이 제거할 때 사용
- 모드
= clean : /var/cache/apt/archive에 생성된 파일을 제거.
= install 패키지명 : 패키지 설치. (/var/cache/apt/archive에 .dev파일 생성)
= update : 패키지 목록을 업데이트.
= upgrade : 모든 패키지를 최신버전으로 업데이트.
= remove : 패키지를 삭제.
ex1) gcc패키지를 설치 -> apt-get install gcc
ex2) /var/cache/apt/archive에 생성된 파일 전부 삭제 -> apt-get clean
'IT > Network' 카테고리의 다른 글
[ FortiGate ] FortiClient VPN for Mac 방법 (0) | 2023.01.12 |
---|---|
[ Home Network ]TP-Link 와이파이 익스텐더 설치 (0) | 2023.01.12 |
[ Linux 마스터 2급 ] 리눅스 편집기 (0) | 2019.07.21 |
[ Linux 마스터 2급 ] 리눅스 프로세스 관리 (0) | 2019.07.20 |
[ Linux 마스터 2급 ] Shell( 쉘 ) (0) | 2019.07.19 |