apt-key 오류, 원인은 파일명에 붙은 콜론(:) 때문.

콜론은 우리말로 뭘까? 찾아보니 이중점, 쌍점, 포갤점 등등 여러 별명(?)이 있다. 이 중 하나도 내 눈에 익숙한게 없다. 누구의 문제일까?
세미콜론은 머무름표, 쌍반점, 그리고, 한자로 봐도 이해가 잘 안되는 반구절점(半句切點). 흠…??


언젠가부터 가끔씩 짜증나게 만들었던 apt-key 오류. 그 이유를 오늘에야 알아냈다.
거두절미하고, 어떤 오류가 발생하는지부터.

$ sudo apt-key del "F987672F" 
gpg: invalid key resource URL '/etc/apt/trusted.gpg.d/home:Alexx2000.gpg'
gpg: keyblock resource '(null)': General error
OK

del 을 했지만, add 를 해도 마찬가지다.

$ wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
gpg: invalid key resource URL '/etc/apt/trusted.gpg.d/home:Alexx2000.gpg'
gpg: keyblock resource '(null)': General error
....

위와 같이 오류가 발생했고, 사실 답도 나와있었는데..

어쨌든 home:Alexx2000.gpg 에 문제가 있다고 투덜댔기에, 애꿎인 저 키파일만 넣었다 뺐다를 반복했었다.

그/러/나/

문제는 파일 자체가 아니고 ‘파일명’에 있었다. apt-key 는 파일명에 들어있는 ‘포갤점’을 인식하지 못하는 모양이다.

이 문제를 해결하는 방법은 두가지.

  • 첫째 : gpg 파일명에서 쌍점을 없앤다.
  • 둘째 : apt-key 를 사용하지 말고 직접 키를 /etc/apt/trusted.gpg.d 에 추가한다.

어떤 방법이든 편한 대로.

다만, 둘째 방법을 쓰려면 살짝 파일변환을 해줘야만 한다. 보통, 저렇게 공개된 키들은 ASCII 형식인데, /etc/apt/trusted.gpg.d 에 들어가는 키는 2진 형식이고, 확장자는 gpg 라야만 한다.

winehq.key 는 아스키 형식이고, 확장자도 gpg 가 아니므로, 이걸 바꿔줘야 하는데, 이건 gpg 프로그램으로 가능하다.
명령을 모두 합쳐 쓰면 이런 형식이 된다. (VS Codium 등등, 몇몇 상황에서 이걸 썼었다.)

wget -qO - https://dl.winehq.org/wine-builds/winehq.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/winehq.gpg > /dev/null

VS Codium 때도 언급했지만, 이 방식의 장점은 키가 /etc/apt/trusted.gpg 에 합쳐져서 기록되지 않고 따로 저장되기에, 관리가 조금 더 편하다는데 있다.

간단한 스크립트를 만들어도 될 듯은 하지만.. 사실, apt-key 는 Shell script 이고, add-apt-repository 는 Python3 script 다.
뭐 그렇게 자주 쓰지도 않기에.

Tags:,

안녕하세요. 글 남겨주셔서 고맙습니다.