소프트웨어 패키지 관리
- 소프트웨어 소스코드 컴파일 : 직접 소스코드에 대한 컴파일 명령을 수행
- 컴파일(Compile) : 프로그래머가 작성하는 소스코드를 기계어로 변환
- 인터프리터(Interpreter) 방식 : 소스코드를 직접 실행
2. 컴파일 과정을 간편화 : ‘Makefile’
- #./configure // 설치 환경 설정
- # make // 컴파일
- # make install // 컴파일된 파일 적정 위치로 복사
3. 소프트웨어 패키지 설치
- 소프트웨어 패키지 : 동작 환경에 맞게 사전에 컴파일된 파일을 모아놓은 덩어리
- 패키지 설치: 파일을 적정한 위치로 복사, 기타 추가 작업 수행
- 리눅스의 각 배포판에 따라 패키지 설치 방식에 차이가 있음
- EL : rpm(Redhat Package Manager)
- http://rpmfind.net/ : rpm 패키지 검색/다운로드
- ubuntu : deb
4. 소프트웨어를 저장소(Repository)를 통해 설치
- 저장소(Repository): 여러 가지 필요한 패키지 파일을 보유
- 패키지 설치 시 의존성 문제를 스스로 해결할 수 있음
- 배포판에 따라 도구 및 패키지의 차이가 있음
- EL : yum (Yellowdog Update Modified), dnf
- Ubuntu : apt
rpm(Redhat Package Manager)
- <소프트웨어 이름>-<버전>-<릴리즈 번호>. <OS>. <Architecture>. rpm 파일 설치 시 사용
- 옵션
- 설치 옵션
- -i : 설치
- -v : Verbose (상세한 정보)
- -h : Hash. 설치 진행상황을 # 기호로 표시
- [######## ] 30%
- -U : 업데이트
- -ivh : 일반적인 설치 옵션
- # rpm -ivh wireshark.rpm
- -Uvh : 일반적인 업데이트 옵션
- # rpm -Uvh wireshark.rpm
- 쿼리 옵션 (Query) : 질의
- -q : 쿼리 옵션에 기본 포함
- -qa : 현재 설치된 패키지 목록 확인
- -ql : 패키지 설치 시 생성된 파일 리스트
- -qf : 특정 파일이 포함된 패키지 확인
- -qs : 패키지 내 파일 상태 (변경 여부 등)
- -qd : 패키지 내 문서(매뉴얼) 파일 조회
- -qc : 패키지 내 설정 파일(Configuration)
- -qi : 특정 패키지의 상세정보
- -qR : 의존성(Dependency) 정보 확인
YUM(Yellowdog Update Modified)
- rpm의 문제인 종속성에 대한 문제를 쉽게 해결
- 필요한 패키지를 직접 다운로드하지 않고도 설치 가능
- 관련 파일
- /etc/yum.conf : YUM 기능 설정
- /etc/yum.repos.d/ : 패키지 저장소(레포지토리) 설정
- /var/log/yum.log : 패키지 설치 로그 파일
yum 명령어
- 명령어 형식
- yum <서브 커맨드> [argument]
- 패키지 정보 업데이트
- # yum repolist
- # yum makecache fast
- 패키지 탐색
- # yum search [패키지 이름]
- 패키지 정보 확인
- # yum info [패키지 이름]
- 패키지 설치
- 패키지 설치 시 필요한 패키지 의존성 정보 확인 후 필요한 패키지를 레포지토리에서 다운로드 가능할 경우 함께 설치
- # yum install [패키지 이름 1] [패키지 이름 2]...
- -y : 물어보지 않고 설치
- -y 옵션을 사용하지 않을 경우 [y/d/N]
- d : 일단 다운로드
- -y 옵션 사용하지 않을 경우 GPG Key 확인 요청
- # yum localinstall [RPM파일 이름]
- rpm 파일을 yum으로 설치
- 의존성 해결
- 패키지 목록 확인
- # yum list [패키지 이름]
- 패키지 이름을 입력하지 않을 경우 : 모든 설치 가능한 패키지를 포함한 목록이 출력
- 출력 내용
- 패키지 이름 Repository
- Repository 이름 앞 @ 기호 : 설치된 패키지
- # yum list installed
- 설치된 패키지의 목록만 출력
- 패키지 삭제
- 설치 시 의존성을 가지는 패키지를 함께 설치했더라도 삭제 시에는 지정한 패키지만 삭제됨
- # yum remove [패키지 이름]
- -y : 질의 없이 바로 삭제
- 패키지 업데이트
- # yum update : 모든 패키지에 대하여 업데이트 수행
- # yum update kernel : 시스템 커널 업데이트
- 일반 패키지 업데이트 시 이전 패키지 파일 삭제 후 다시 설치
- 커널 업데이트시 이전 커널 정보 유지 후 새로운 커널 추가
- 패키지 그룹
- 용도가 비슷한 패키지들을 묶어놓은 단위
- 기존 yum 명령어에 groups 서브 커맨드 추가
- # yum groups list
- # yum groups info [그룹 이름]
- # yum groups install [그룹 이름]
YUM Repository 관리
- /etc/yum.repos.d : 레포지토리 설정 정보 저장 디렉터리
- 설치 시 기본적으로 레포지토리 미러 정보가 설정으로 저장되어 있음
- 외부 네트워크 차단 등의 이유로 레포지토리를 사용할 수 없을 경우, 접근 가능한 레포지토리에 대한 설정을 직접 추가하여 사용
- /etc/yum.repos.d/[파일 이름]. repo
- 네트워크 위치의 레포지토리 사용
- 테스트 레포지토리 주소 : http://ftp.daumkakao.com/centos/$releasever/os/$basearch/
- repo 파일 작성 예
[test]
name=test repo
baseurl=http://ftp.daumkakao.com/centos/$releasever/os/$basearch/
gpgcheck=0
enabled=1
- Local Repository (DVD Media 등)
- 마운트 한 DVD 미디어 경로: file:///run/media/user/CentOS\ 7\ x86_64/
- repo 파일 작성 예
[DVD]
name=DVD repo
baseurl=file:///run/media/user/CentOS\ 7\ x86_64/
gpgcheck=0
enabled=1
- yum-config-manager
- --add-repo
- # yum-config-manager --add-repo="http://mirror.kakao.com/centos/7.9.2009/os/x86_64/"
- yum-utils 패키지가 설치되어 있어야 사용 가능
EPEL(Extra Packages for Enterprise Linux)
- epel-release 패키지 설치
- # yum install epel-release
- /etc/yum.repos.d/epel* : EPEL 레포지토리 파일
==========================================================
yum repository 미러 관리
- 기본 CentOS 레포지토리는 baseurl이 아닌 mirrorlist 형태로 지정됨
- 미러 목록 중 가장 빠른 미러를 확인하여, 해당 repository를 사용하도록 설정됨
- 필요시 사용자가 갱신 가능
# yum clean all // 현재 repository 미러 캐시 삭제
# yum makecache fast // 미러 갱신
*이 포스팅은 엔코아 플레이 데이터 수업 내용을 참고로 합니다.
'IT > Linux' 카테고리의 다른 글
파일 기반 공유 스토리지 (0) | 2021.04.14 |
---|---|
SSH (0) | 2021.04.13 |
네트워크 관리(기초,NetworkManger,호스트이름) (0) | 2021.04.08 |
NTP (0) | 2021.04.07 |
부팅 문제 해결 (0) | 2021.04.06 |
댓글