카테고리 없음

wsl에서 apt-get update가 안될 때,

개발자_이훈규 2023. 10. 25. 11:14

레퍼런스

 

이렇게 에러가 뜨면서 update가 안되는 경우에는

$ sudo apt-get update
Err:1 http://security.ubuntu.com/ubuntu focal-security InRelease
  Temporary failure resolving 'security.ubuntu.com'
Err:2 http://archive.ubuntu.com/ubuntu focal InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:3 https://packages.microsoft.com/repos/vscode stable InRelease
  Temporary failure resolving 'packages.microsoft.com'
Err:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Reading package lists... Done
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal-updates/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal-backports/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/focal-security/InRelease  Temporary failure resolving 'security.ubuntu.com'
W: Failed to fetch https://packages.microsoft.com/repos/vscode/dists/stable/InRelease  Temporary failure resolving 'packages.microsoft.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.

 

아래처럼 하면 동작합니다

$ sudo bash -c 'echo "nameserver 1.1.1.1" > /etc/resolv.conf'
ash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf

 

자세한 설명:

  1. sudo rm /etc/resolv.conf:
    • sudo: 슈퍼유저 권한으로 명령어를 실행하라는 의미입니다.
    • rm: 파일을 삭제하는 명령어입니다.
    • /etc/resolv.conf: DNS 서버 정보가 저장된 파일입니다.
    • 따라서, 이 명령어는 /etc/resolv.conf 파일을 삭제하는 명령어입니다.
  2. sudo bash -c 'echo "nameserver 1.1.1.1" > /etc/resolv.conf':
    • bash -c: bash 쉘에서 명령어를 실행하라는 의미입니다.
    • echo "nameserver 1.1.1.1": "nameserver 1.1.1.1"라는 문자열을 출력하는 명령어입니다.
    • > /etc/resolv.conf: 출력된 문자열을 /etc/resolv.conf 파일에 저장하라는 의미입니다.
    • 이 명령어는 "nameserver 1.1.1.1"이라는 내용을 /etc/resolv.conf 파일에 저장하는 명령어입니다.
  3. sudo bash -c 'echo "[network]" > /etc/wsl.conf':
    • 이 명령어는 "[network]"라는 문자열을 /etc/wsl.conf 파일에 저장하는 명령어입니다.
  4. sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf':
    • >> /etc/wsl.conf: 출력된 문자열을 /etc/wsl.conf 파일에 추가하라는 의미입니다.
    • 이 명령어는 "generateResolvConf = false"라는 문자열을 /etc/wsl.conf 파일에 추가하는 명령어입니다.
  5. sudo chattr +i /etc/resolv.conf:
    • chattr: 파일의 속성을 변경하는 명령어입니다.
    • +i: 파일을 변경 불가능한 상태로 만드는 옵션입니다.
    • 이 명령어는 /etc/resolv.conf 파일을 변경 불가능한 상태로 만드는 명령어입니다. 
  6. 요약하자면, 이 명령어들은 DNS 설정 파일인 /etc/resolv.conf를 수정하고, WSL(Windows Subsystem for Linux) 설정 파일인 /etc/wsl.conf에 네트워크 설정을 추가하며, 마지막으로 /etc/resolv.conf 파일을 변경 불가능한 상태로 만드는 작업을 수행하는 것입니다.