일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Windows 부팅 오류
- python
- vmware 반응 속도
- 실시간로깅
- 리커버릿
- 지훈현서
- Recoverit
- 임베디드 시스템 해킹
- pwn
- OpenAI 개발
- Python.h: No such file or directory
- z3 signed 이슈
- DYNAMIC Section
- python3.11 pip
- vhdx 파일 복구
- pwntools
- tool
- GEF
- GDB
- Seccomp bypass
- docker
- 공유 라이브러리는 왜 항상 같은 순서로 맵핑 될까?
- c++
- python3.11 설치
- std::cerr
- 개발
- VSCode C++ 표준 버전 수정
- Python3
- pip 에러 해결
- wsl2 복구
- Today
- Total
OZ1NG의 뽀나블(Pwnable)
[Tips] add-apt-repository Error: user or team does not exist. 오류 해결 본문
python3.11을 Ubuntu 20.04에 설치하려고 아래의 레포를 추가하려고 하니 다음과 같은 에러가 발생했습니다.
그래서 이 에러를 해결하기 위해 삽질한 내용을 정리해봤습니다.
일단 이런 문제가 발생하는 이유로는 주로 다음의 이유들이 있는 것 같았습니다.
1. repository 경로가 없거나 틀린 경우 (오타 등...)
2. 인터넷이 끊긴 경우
3. 프록시 등을 사용하여 해당 망에서 접근이 불가능한 경우
4. 방화벽에서 막히는 경우
5. 그 외
참고로 제가 정리한 방법들은 repository 경로가 없거나 틀린 경우에 효과적인 방법들입니다.
따라서 네트워크 관련된 이슈 때문에 안되는 경우 아래의 방법을 사용한다 해도 해결되지 못할 수 있으니 이 경우에는
최하단의 [참고]를 보고 해당하는 이슈에 대한 해결 방법대로 해보시길 바랍니다.
정리 순서는 사용하기 쉬운 것 순서입니다.
참고로 저는 3번째 방법으로 성공을 했습니다.
[첫 번째 - 따옴표]
sudo add-apt-repository 'ppa:deadsnakes/ppa'
단순히 경로에 ' (따옴표)를 추가하는 것입니다.
[두 번째 - sudo -E 옵션 추가]
sudo -E add-apt-repository 'ppa:deadsnakes/ppa' -y
참고로 sudo의 -E (--preserve-env) 옵션은 man에 따르면 다음과 같습니다.
"사용자가 기존 환경 변수를 보존하려는 보안 정책을 나타냅니다. 사용자에게 환경을 보존할 수 있는 권한이 없는 경우 보안 정책에서 오류를 반환할 수 있습니다."
추가로 뒤의 -y 옵션은 그냥 yes/no를 묻지 않고 추가를 하라는 뜻입니다.
[세 번째 - repository 수동 추가]
- 가장 복잡하지만 가장 확실한 방법입니다.
1. 정확한 repository 경로를 알아냅니다.
추가하고자하는 apt repository의 정확한 경로를 알아냅니다.
양식은 다음과 같습니다.
[양식]
http://ppa.launchpad.net/[PPA Name]/[OS Type]/
[예시]
'ppa:deadsnakes/ppa'를 추가하려는 경우
=> http://ppa.launchpad.net/deadsnakes/ppa/ubuntu/
2. /etc/apt/source.list에 repository 경로 추가
apt는 /etc/apt/source.list에 apt repository의 경로를 저장하고 있습니다.
따라서 다음과 같이 추가를 해주면 됩니다.
sudo vim /etc/apt/source.list
3. apt update로 공개키 값 알아내기
apt repository와 통신할 때는 GPG(GNU Privacy Gourd)를 통한 암호화된 통신을 하기 때문에 전용 공개키값을 사용하여 암호화된 통신을 한다합니다.
때문에 경로를 추가하더라도 공개키가 필요한데 공개키를 추가하지 않은 상태에서 apt update를 사용하면 아래 그림4와 같이 어떤 공개키값을 써야하는지에 대한 GPG 에러가 발생하게 됩니다.
이를 통해 필요한 공개키 값을 알아낼 수 있습니다.
4. GPG 공개키 추가하기
이제 3번에서 알아낸 공개키를 추가해줘야합니다.
다음의 명령어로 공개키를 추가할 수 있습니다.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [공개키]
추가로 찾아보니까 WSL에서는 이 방법이 안될 수 있다하는데 그 경우에는 다음의 명령어로 시도해보시기 바랍니다.
curl -sL "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x[공개키 값]" | sudo apt-key add
(참고로 저는 WSL2 였고 첫 번째 명령어로 잘 실행이 되었습니다.)
5. apt update로 apt repository 업데이트
sudo apt update
이제 다시 apt update 명령어를 사용해주면 위와 같이 오류 없이 해당 레포지토리 업데이트에 성공하게 됩니다.
6. 확인
마지막으로 apt search 명령어를 사용하여 제가 추가하고자하는 패키지가 검색 되는지를 확인해봄으로써 최종 확인을 할 수 있습니다.
[참고]
- https://askubuntu.com/questions/971877/cannot-add-ppa-user-or-team-does-not-exist
- https://www.linuxcapable.com/ko/how-to-install-python-3-10-on-ubuntu-22-04-lts/
- https://github.com/tmatilai/vagrant-proxyconf/issues/171
- https://stackoverflow.com/questions/66597894/why-cannot-add-ppa-deadsnakes
'Tips' 카테고리의 다른 글
[Tips] python XML 파싱 (0) | 2022.12.12 |
---|---|
[Tips][python-requests] get/post -> 403 forbidden 해결 (0) | 2022.12.12 |
[Tips] python3.11 설치 - Ubuntu 20.04 (0) | 2022.12.08 |
[CTF][문제 제작] docker container 원격 접속 후 Error opening terminal: unknown. 오류 해결 (docker container <--> ncurses 충돌) (0) | 2022.11.12 |
[python3] subprocess.Popen() grep 명령어 사용법 (0) | 2022.09.15 |