최근부터 CentOS 7을 사용하면서 yum으로 update를 하면서 아래와 같은 오류가 자주 발생했다. 하지만 항상 나오는 것은 아니다.
Error: Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
이 메시지가 나오지만 실제로는 동작에는 이상이 없다. 하지만 계속 메시지가 나오니 보기도 싫고 다른 문제가 생길 수도 있을 것으로 생각되어 좀 찾아봤다.
일단 Delta RPM 이라고 하는 것은 RPM 패키지 버전별로 변경사항만 가지고 있는 것을 뜻한다. 다시 말해 update 시에 전체 RPM을 다운 받아서 설치하지 않고 변경사항만 다운 받아서 update를 하게 해준다는 것이다.
처리 과정을 보자면 yum에서 DRPM(Delta RPM)을 다운 받아 이전 패키지에 변경 사항을 병합하여 새로운 RPM을 빌드한 후 설치가 이루어 진다고 한다. 따라서 다운 받는 시간은 줄어들지만 병합하는 시간이 추가로 소요된다. 하지만 네트워크 비용이 더 크기 때문에 사용하는 것이 더 유리하다.
Delta RPM은 Fedora 11부터 적용되었다고 하며 RPM을 사용하는 다른 Linux에서도 사용중이라고 한다. 그런데 CentOS의 minimal 설치시에는 포함되지 않기 때문에 위 오류가 난다고 한다. 그리고 update 대상이 DRPM을 지원할 경우만 위 오류가 표시되는 것으로 보인다.
이 오류를 제거하고 Delta RPM을 사용하는 방법은 간단하다. deltarpm 패키지를 설치하면 된다.
우선 오류에 나와있는 프로그램의 경로(/usr/bin/applydeltarpm
)를 이용해서 패키지명을 찾는다. 사실 이 과정은 굳이 할 필요가 없다(이미 패키지명을 알고 있으니).
$ yum provides /usr/bin/applydeltarpm Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.daumkakao.com * epel: ftp.cuhk.edu.hk * extras: ftp.daumkakao.com * updates: ftp.daumkakao.com * webtatic: sp.repo.webtatic.com deltarpm-3.6-3.el7.x86_64 : Create deltas between rpms Repo : base Matched from: Filename : /usr/bin/applydeltarpm
패키지명을 알았으니 이제 설치만 하면 된다.
$ yum install deltarpm
끝이다. 이제부터 Delta RPM이 지원되는 패키지는 DRPM을 이용해서 다운받는 시간이 줄어들 것이다.