9월 102016
 

우리는 ubuntu에서 패키지 인덱스를 업데이트 하기 위해 apt-get update 라는 명령을 사용하여 업데이트한다. 하지만 만약 커스텀 패키지를 이용하는 경우 (예: owncloud)에 keyexpired라는 문구를 볼 수 있다. 이는 패키지를 서명하는데 사용된 인증키가 시간이 지나 만료되었기 때문이다. 따라서 키를 다시 업데이트 해주는 작업이 필요하다. 아래의 절차를 따라 새로 받아보도록 하자.

1)  아래와 같은 메시지를  apt-get update 사용시 발견

Reading package lists... Done
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://download.opensuse.org  Release: The following signatures were invalid: KEYEXPIRED 1472205884

W: Failed to fetch http://download.opensuse.org/repositories/isv:/ownCloud:/community/xUbuntu_14.04/Release

W: Some index files failed to download. They have been ignored, or old ones used instead.

2) apt-key list 명령어를 통해 expired 키를 찾기

# apt-key list | grep "expired:"
pub 1024D/BA684223 2012-02-08 [expired: 2016-08-26]

3) 목록에 있는 내용을 통해 “BA684223″이란 키가 2016-08-26에 만료되었으며 업데이트 해야함을 확인 가능

4) apt-key 명령으로 새로 키(BA684223)를 업데이트 받음

# apt-key adv --recv-keys --keyserver keys.gnupg.net BA684223

# apt-key adv --recv-keys --keyserver keys.gnupg.net BA684223
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.DE4JfiHL45 --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg --keyring /etc/apt/trusted.gpg.d/docker-maint-testing.gpg --keyring /etc/apt/trusted.gpg.d/openjdk-r-ppa.gpg --keyring /etc/apt/trusted.gpg.d/webupd8team-java.gpg --recv-keys --keyserver keys.gnupg.net BA684223
gpg: requesting key BA684223 from hkp server keys.gnupg.net
gpg: key BA684223: "isv:ownCloud OBS Project <isv:ownCloud@build.opensuse.org>" 5 new signatures
gpg: Total number processed: 1
gpg:         new signatures: 5

5) 다시 우분투 패키지 업데이트 작업을 진행한다.

# apt-get update

# apt-get upgrade

 

참고 자료

[1] http://superuser.com/questions/513609/how-to-apt-update-when-apt-is-not-accepting-the-repository