리눅스 패키지 관리
- yum list로 패키지의 개략적인 정보를 알 수 있다.
- yum info로 패키지 설치 여부, 저장소 정보 등 자세한 패키지 정보를 볼 수 있다.
- yum provides로 특정 파일이 속한 패키지를 찾을 수 있다.
# yum list httpd* # httpd로 시작하는 모든 패키지의 정보를 출력
# yum list installed # 설치된 모든 패키지 목록 출력
# yum info httpd # 패키지의 자세한 정보(설치 되었는지, 안되어있는지도 출력)
# yum provides '*/httpd.conf' # /etc/httpd/conf/httpd.conf파일이 어떤 패키지에서 제공되는지 확인
# yum provides '/etc/httpd*/httpd.conf'
- 별도의 yum 저장소 없이 rpm으로만 제공되는 경우 localinstall을 사용한다. rpm -ivh보다 yum의 기능을 사용할 수 있어 패키지 관리가 용이하다.
ㄴ 즉, rpm을 다운받을 일이 있으면 localinstall을 대신 사용하자.
# rpm localinstall mod_dav_svn* subversion* serf-1.3* # 여러 rpm을 내려받아 설치하는 예로,
- yum은 패키지 용도에 따라 그룹단위 관리가 가능하다.
# yum grouplist # 설치된 그룹, 설치된 언어그룹, 설치가능한 그룹, 설치가능한 언어그룹 출력
# yum groupinfo "Container Management" # 그룹의 정보 확인(필수, 기본, 옵션 패키지)
# yum groupinstall "웹 서버" # 필수, 기본 패키지 설치
# yum groupremove "웹 서버" # 의존성을 해결하기 위해 옵션패키지까지 제거
- yum은 플러그인을 이용한 기능 확장을 지원한다. (centos에는 기본적으로 빠른 미러사이트 서칭과 보안기능을 위해 fastestmirror와 yum security가 설치되어 있다.)
- 내 centos에는 일치하는 항목을 찾을 수 없는데, 설명하는 plugin을 간단히 말하면 changelog는 패키지 변경 이력을 볼 수 있고, downloadonly는 패키지 설치 없이 rpm을 다운하는 플러그인이다.
# yum search yum plugin # yum 플러그인 목록 확인
트랜잭션 관리
- yum의 search, info, list와 달리 install, remove, reinstall, update같이 패키지 시스템을 변경하는 명령을 실행한 것을 트랜잭션이라고 하며, 개별 트랜잭션을 구분하기 위한 id가 부여된다.(이전에 rpm대신 localinstall을 권장한 이유: 트랜잭션 관리 가능)
- 모든 트랜잭션 관리 작업은 history 명령을 기반으로 info, list, package-list, summary, addon-info, redo, undo, rollback, new등의 하위 명령을 이용한다.
- yum history list의 Action은 Downgrade, Erase, Install, Obsoleting, Reinstall, Update로 구분된다.
- Altered필드의 기호는 <(트랜잭션 완료 전 DB변경) >(트랜잭션 완료 후 DB변경) *(종료실패) #(종료했지만 다른 종료코드 전달됨) E(에러) P(DB문제) s(몇몇 패키지 건너뛰어짐)로 구분된다.
# yum remove httpd
# yum history list # 전체 트랜잭션 이력 확인(최근 작업 순)
# yum history info 7 # history info ID로 자세한 작업 확인
# yum history undo 4 # 트랜잭션을 이전 상태로 되돌린다.
# yum history redo 4 # 트랜잭션을 다시 되살린다.