저는 sublime-text를 설치하기 위한 적절한 설정을 위해 아래 링크된 지침을 사용하고 있습니다. Sublime을 타사 저장소의 예로 사용하여 Debian 및 Stackexchange 페이지에 설명된 타사 저장소를 연결하는 방법을 의도적으로 적용했습니다.
https://www.sublimetext.com/docs/linux_repositories.html
https://wiki.debian.org/DebianRepository/UseThirdParty
그러나 실행할 때 apt update
암호화 키와 관련하여 다음 오류가 발생합니다.
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F57D4F59BD3DF454
이것이 내가 하는 일이다:
키를 다운로드하고, 키를 ASCII에서 바이너리로 변환하고, 키를 공유 위치로 이동합니다.
curl https://download.sublimetext.com/sublimehq-pub.gpg | gpg --dearmor > ~/Downloads/sublime-keyring.gpg
sudo mkdir -vp /usr/local/share/keyrings/
sudo mv -v ~/Downloads/sublime-keyring.gpg /usr/local/share/keyrings/sublime-keyring.gpg
sudo chown -v root:root /usr/local/share/keyrings/sublime-keyring.gpg
sudo chmod -v 0640 /usr/local/share/keyrings/sublime-keyring.gpg
소스 목록을 생성합니다:
printf "deb [signed-by=/usr/local/share/keyrings/sublime-keyring.gpg] https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
저장소 사용을 제한하는 고정 규칙을 설정하십시오.
printf "%s\n" "Package: *" "Pin: origin download.sublimetext.com" "Pin-Priority: 1" "" "Package: sublime-text" "Pin: origin download.sublimetext.com" "Pin-Priority: 500" | sudo tee /etc/apt/preferences.d/sublime-text.pref
그런 다음 sudo apt update
Sublime Text 저장소와 관련하여 다음 출력을 생성하여 실행합니다.
Get:1 https://download.sublimetext.com apt/stable/ InRelease [2.536 B]
Err:1 https://download.sublimetext.com apt/stable/ InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F57D4F59BD3DF454
W: GPG error: https://download.sublimetext.com apt/stable/ InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F57D4F59BD3DF454
E: The repository 'https://download.sublimetext.com apt/stable/ InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
gpg의 debug 를 사용하여 실행하면 sudo apt -o Debug::Acquire::gpgv=True update
더 자세한 정보를 얻을 수 있습니다.
Get:1 https://download.sublimetext.com apt/stable/ InRelease [2.536 B]
0% [Waiting for headers] [Waiting for headers]inside VerifyGetSigners
Preparing to exec: /usr/bin/apt-key --quiet --readonly --keyring /usr/local/share/keyrings/sublime-keyring.gpg verify --status-fd 3 /tmp/apt.sig.zwA50y /tmp/apt.data.zbzsmw
Read: [GNUPG:] NEWSIG
Read: [GNUPG:] ERRSIG F57D4F59BD3DF454 1 8 01 1627009220 9 -
Got ERRSIG F57D4F59BD3DF454 !
Read: [GNUPG:] NO_PUBKEY F57D4F59BD3DF454
Got NO_PUBKEY F57D4F59BD3DF454 !
gpgv exited with status 2
Summary:
Good:
Valid:
Bad:
Worthless:
SoonWorthless:
NoPubKey: NO_PUBKEY F57D4F59BD3DF454
Signed-By:
NODATA: no
Err:1 https://download.sublimetext.com apt/stable/ InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F57D4F59BD3DF454
W: GPG error: https://download.sublimetext.com apt/stable/ InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F57D4F59BD3DF454
E: The repository 'https://download.sublimetext.com apt/stable/ InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
이는 apt가 내가 다운로드한 키의 위치를 올바르게 전달한다는 의미라는 것을 읽었습니다. 이는 gpg가 키의 내용을 읽을 수 없음을 의미할 수 있습니다. 아니면 탈형 과정에서 키가 손상되어 더 이상 의도한 내용이 없을 수도 있습니다. 이는 순전히 내 추측이다.
Dear Key를 확인하면 sudo gpg --show-keys /usr/local/share/keyrings/sublime-keyring.gpg
다음과 같은 정보가 나오는데, 이는 올바른 것 같습니다.
pub rsa4096 2017-05-08 [SCEA]
1EDDE2CDFC025D17F6DA9EC0ADAE6AD28A8F901A
uid Sublime HQ Pty Ltd <[email protected]>
sub rsa4096 2017-05-08 [S]
언급되지는 않았지만 키를 읽을 수 있습니다 F57D4F59BD3DF454
.
그럼 무엇이 잘못됐나요? 어떻게 하면 제대로 작동하게 할 수 있나요?
답변1
공개 키 파일을 읽는 모든 프로세스에 root
액세스 권한이 있다고 가정합니다. 그러나 그것은 사실이 아닐 수도 있다는 것이 밝혀졌습니다.
권한을 설정하면 0640
제가 보고한 문제가 발생하고, 설정하면 0644
문제가 해결되기 때문입니다.
업데이트된 명령은 다음과 같습니다.
sudo chmod -v 0644 /usr/local/share/keyrings/sublime-keyring.gpg
이번 변경으로 질문에 설명된 프로세스를 사용하여 Sublime Text를 업데이트하고 설치할 수 있었습니다.
답변2
뭔가 빠졌을 수도 있지만 gpg를 사용하여 모든 단계를 수행할 필요는 없다고 생각합니다. 다음 줄은 내 시스템의 키를 설치합니다.
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
언급한 첫 번째 URL에 잘 설명되어 있습니다.
답변3
편집자 주:
이것해결책정답도 아니고 전혀 해결책도 아닙니다. 사용하지 마십시오!
동일한 문제가 있습니다. 오류는 다음과 같습니다.
Err:2 https://download.sublimetext.com apt/stable/ InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F57D4F59BD3DF454
[trusted=yes]
해결책은 /etc/apt/sources.list.d/sublime-text.list 파일에 옵션을 추가하는 것입니다.
deb [trusted=yes] https://download.sublimetext.com/ apt/stable/
실제로 문제가 해결되지는 않고 "잘못된 키"가 계속 표시되지만 apt-get install sublime-text
완벽하게 수행할 수 있습니다.
다음은 실행할 때 받는 메시지입니다 apt update
.
apt update
Get:2 https://download.sublimetext.com apt/stable/ InRelease [2,536 B]
Ign:2 https://download.sublimetext.com apt/stable/ InRelease
Get:3 https://download.sublimetext.com apt/stable/ Packages [6,373 B]
Fetched 6,373 B in 3s (2,482 B/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1861 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: GPG error: https://download.sublimetext.com apt/stable/ InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F57D4F59BD3DF454