apt-get 및 이미지 오류가 있거나 이미지를 얻을 수 없습니다.

apt-get 및 이미지 오류가 있거나 이미지를 얻을 수 없습니다.

/etc/apt/sources.list내용은 다음과 같습니다.

deb http://ubuntu.mirror.garr.it/ubuntu/ focal main
deb-src http://ubuntu.mirror.garr.it/ubuntu/ focal main

deb-src http://ubuntu.mirror.garr.it/ubuntu/ focal restricted universe multiverse

deb http://ubuntu.mirror.garr.it/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://ubuntu.mirror.garr.it/ubuntu/ focal-updates main restricted universe multiverse

deb http://ubuntu.mirror.garr.it/ubuntu/ focal-security main restricted universe multiverse
deb-src http://ubuntu.mirror.garr.it/ubuntu/ focal-security main restricted universe multiverse

deb http://ubuntu.mirror.garr.it/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://ubuntu.mirror.garr.it/ubuntu/ focal-backports main restricted universe multiverse

deb http://archive.canonical.com/ubuntu focal partner
deb-src http://archive.canonical.com/ubuntu focal partner

그러나 예를 들어 소프트웨어 업데이트와 관련된 작업을 시도하면 sudo apt update --fix-missing && sudo apt upgrade터미널에 다음과 같은 출력이 표시됩니다.

    sudo apt update --fix-missing && sudo apt upgrade
Err:1 http://archive.canonical.com/ubuntu focal InRelease
  Temporary failure resolving 'proxy_server'
Err:2 http://ubuntu.mirror.garr.it/ubuntu focal InRelease
  Temporary failure resolving 'proxy_server'
Err:3 http://ubuntu.mirror.garr.it/ubuntu focal-updates InRelease
  Temporary failure resolving 'proxy_server'
Err:4 http://ubuntu.mirror.garr.it/ubuntu focal-security InRelease
  Temporary failure resolving 'proxy_server'
Err:5 http://ubuntu.mirror.garr.it/ubuntu focal-backports InRelease
  Temporary failure resolving 'proxy_server'
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.
W: Failed to fetch http://ubuntu.mirror.garr.it/ubuntu/dists/focal/InRelease  Temporary failure resolving 'proxy_server'
W: Failed to fetch http://ubuntu.mirror.garr.it/ubuntu/dists/focal-updates/InRelease  Temporary failure resolving 'proxy_server'
W: Failed to fetch http://ubuntu.mirror.garr.it/ubuntu/dists/focal-security/InRelease  Temporary failure resolving 'proxy_server'
W: Failed to fetch http://ubuntu.mirror.garr.it/ubuntu/dists/focal-backports/InRelease  Temporary failure resolving 'proxy_server'
W: Failed to fetch http://archive.canonical.com/ubuntu/dists/focal/InRelease  Temporary failure resolving 'proxy_server'
W: Some index files failed to download. They have been ignored, or old ones used instead.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

설치하려고 하면 무엇이든 비슷한 문제가 발생합니다.

$ sudo apt-get install indicator-cpufreq
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package indicator-cpufreq

애플리케이션에서 서버를 변경하려고 하면 Software update캐시 플러시가 중단되거나 유사한 오류가 반환됩니다 Failed to fetch one(Windows에서는 출력 오류를 복사하여 붙여넣을 수 없습니다).

내 시스템에 대한 추가 정보:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.4 LTS
Release: 20.04
Codename: focal

services.list합계에는 무엇이 포함되어야 하며 proxy무엇이 문제일까요?

편집 #1: 제가 틀렸다고 생각합니다. /etc/apt/apt.conf해당 파일의 내용을 이해하는 데 도움이 필요합니다. echo "$http_proxy"아무것도 반환하지 않으며 아무것도 반환되지 않습니다 env | grep -i proxy. 설정-->프록시 네트워크가 비활성화로 설정되어 있는데 확인하면 "프록시 HTTP" 필드로 들어가는데 Manual포트 입니다.proxy-server-ip8080

편집 #2: 광산 /etc/apt/apt.conf.d/proxy.conf에는 두 줄이 포함되어 있습니다.

Acquire::http::Proxy "http://proxy_server:port/";
Acquire::https::Proxy "http://proxy_server:port/";

답변1

귀하의 컴퓨터가 말 그대로 이름이 인 호스트를 확인하려고 시도하는 것 같습니다 proxy_server. ping -c 5 proxy_serverIP가 나열되어 있는지, ICMP를 통해 접속할 수 있는지 확인해 보세요 . 프록시를 사용하려면 /etc/hosts또는 IP를 확인하고 TCP를 사용하여 나열된 IP에 연결할 grep 'proxy_server' /etc/hosts수 있는지 확인하세요 . proxy_server포트는 일반적으로 HTTP의 경우 8080이고 SOCKS의 경우 1080이지만 실제로는 어떤 값으로도 설정할 수 있습니다. 구성 파일에서 포트 정보를 가져오며, 구체적인 단계는 다음과 같습니다.telnet proxy_server [port]nc proxy_server:[port]apt

ping이 가능하다면 proxy_server프록시가 제대로 작동하고 아래 파일에 나열된 올바른 포트에서 수신 대기하는지 확인하세요 /etc/apt. 이러한 파일을 나열하려면 를 실행하십시오 grep -rl 'proxy_server' /etc/apt.

프록시를 사용하여 연결하지 않으려면 grep -rl 'proxy_server' /etc/apt이 문자열이 나열된 파일을 확인하세요. 이 문자열이 포함된 모든 줄을 삭제하려면 루트로 다음 명령을 실행 grep -rl 'proxy_server' /etc/apt | xargs -I file sed -i '/proxy_server/d' file하고 다시 시도하세요.

파일이 출력에 나열되지 않으면 grep실행 sudo http_proxy= https_proxy= apt update --fix-missing && sudo http_proxy= https_proxy= apt upgrade하고 다시 시도하십시오.

작동한다면 환경의 어딘가 http_proxy(아마도 )에서 및/또는 변수를 설정하게 될 것입니다. 그러나 현실적으로 이러한 변수는 얻을 수 있는 다양한 파일에 설정될 수 있습니다. 이러한 파일에 대한 자세한 내용을 보려면https_proxy/root/.bashrc이 답변을 확인하세요. 이러한 변수가 에 설정되어 있는지 확인하려면 /root/.bashrc아래 명령을 실행하여 제거하거나 뒤에서 스크립트를 실행하는 것이 더 안전합니다.

즉시 http_proxy삭제 https_proxy명령 .bashrc:

sudo sed -i '/http_proxy/d;/https_proxy/d' /root/.bashrc
sed -i '/http_proxy/d;/https_proxy/d' ~/.bashrc

참고: 내가 자신의 프로필을 나열하는 이유 ~/.bashrc는 경우에 따라 루트가 사용자 프로필을 상속하도록 설정되기 때문입니다.

이 줄을 삭제하기 전에 실제로 존재하는지 확인하는 스크립트(줄이 존재하지 않아도 이전 명령은 실패하지 않지만 실제로 출력에 줄을 반환하므로 해당 줄이 어디에 있는지 알 수 있습니다) :

#!/bin/sh

if grep -E '(http_proxy)|(https_proxy)' /root/.bashrc; then
  sudo sed -i '/http_proxy/d;/https_proxy/d' /root/.bashrc
fi
if grep -E '(http_proxy)|(https_proxy)' ~/.bashrc; then
  sed -i '/http_proxy/d;/https_proxy/d' ~/.bashrc
fi

또는 한 줄을 선호하는 경우 복사/붙여넣기할 수 있습니다.

if grep -E '(http_proxy)|(https_proxy)' /root/.bashrc; then sudo sed -i '/http_proxy/d;/https_proxy/d' /root/.bashrc; fi; if grep -E '(http_proxy)|(https_proxy)' ~/.bashrc; then sed -i '/http_proxy/d;/https_proxy/d' ~/.bashrc; fi

중요한:이러한 파일에 .bashrc에이전트를 직접 전환하기 위한 기능이나 별칭이 있는 경우 http_proxy또는 가 포함된 모든 줄이 제거됩니다 https_proxy. 귀하의 경우 http_proxy위 명령/스크립트에서 및 를 로 바꾸세요.https_proxyproxy_server

귀하의 구체적인 문장은 다음과 같습니다.

if grep 'proxy_server' /root/.bashrc; then sudo sed -i '/proxy_server/d' /root/.bashrc; fi; if grep 'proxy_server' ~/.bashrc; then sed -i '/proxy_server/d' ~/.bashrc; fi

편집하다:귀하의 의견을 바탕으로 명령을 수정 했으며 grep귀하의 질문을 다시 읽은 후 프록시에 전혀 연결하지 않으려는 경우 mv /etc/apt/apt.conf.d/proxy.conf /tmp/명령을 다시 실행하면 제대로 작동합니다. 이것이 나타나는 유일한 proxy_server장소라면 줄을 삭제해도 왜 작동하지 않는지 잘 모르겠지만 proxy.conf어딘가에 캐시될 수 있습니다. 파일을 완전히 삭제하면 프록시 설정이 다시 초기화될 수 있습니다.

문제의 실제 원인은 실제로 /etc/apt/apt.conf.d/proxy.conf포트의 호스트를 확인하려고 시도하는 더미/예제 설정이 있다는 것입니다. 아시다시피 실제로 존재하지 않으며 성공적으로 연결하려면 실제 포트 번호여야 합니다.proxy_serverportproxy_serverportapt

proxy.conf파일을 삭제하면 이 문제를 해결할 수 있습니다(전혀 필요하지 않으며 apt일반적으로 기본적으로 존재하지 않습니다).

편집 #2:프록시에 연결해야 하는 경우 프록시를 그대로 두고 프록시 서버의 실제 IP 또는 호스트 이름과 실제 포트 번호 로 /etc/apt/apt.conf.d/proxy.conf바꾸세요 . 또는 실제 포트 번호를 바꾸고 실제 프록시 서버의 올바른 IP 주소를 가리키는 항목 을 만들 수도 있습니다.proxy_serverportport/etc/hostsproxy_server

최종 편집:사용자와 채팅한 후 삭제했지만 /etc/apt/apt.conf.d/proxy.conf여전히 동일한 문제가 발생합니다. 단 proxy_server, unresolved 대신 unresolved 이므로 proxy.server프록시 설정이 다른 위치에 설정되어 있다고 생각됩니다.

나는 그들을 도망가게 했고 grep -rlE 'Acquire::.*::Proxy' /etc/apt/그들은 다시 돌아왔다 /etc/apt/apt.conf.

그런 다음 실행하도록 지시 grep -nE 'Acquire::.*::Proxy' /etc/apt/apt.conf하면 다음이 반환됩니다.

...
5:Acquire::http::Proxy "http://user:[email protected]:port/";
6:Acquire::https::Proxy "http://user:[email protected]:port/";
...

이는 기본적으로 와 동일하며 /etc/apt/apt.conf.d/proxy.conf호스트 이름만 proxy.server변경됩니다 proxy_server. 여전히 더미/샘플 설정입니다. 5행과 6행을 주석 처리하고 다시 실행하도록 지시하는 초기 명령 후에 sudo apt update --fix-missing && sudo apt upgrade그들은 제대로 작동하고 업데이트를 받고 있음을 확인했습니다.

답변2

부분 답변:

터미널 출력은 프록시 서버가 어딘가에 구성되어 있음을 나타냅니다. 완전한 apt 구성을 제공하지 않았으므로 프록시 서버 apt 구성 방법을 참조하십시오(예:여기, 첫 번째 Google 결과) 그런 다음 전체 적절한 구성을 확인하여 /etc/apt어딘가에 프록시 설정이 있는지 확인하십시오.

그렇지 않은 경우 다음 단계는 sudo env환경을 살펴보는 것과 같은 작업을 수행하는 것입니다.뒤쪽에 sudo프록시가 설정되지 않았는지 확인하십시오.

현재 질문에는 디버깅이 필요한 실제 원인을 파악하기 위한 정보가 충분하지 않습니다.


에 프록시 관련 항목이 없고 sudo envapt 구성 어디에도 프록시 설정이 없는 경우 다음 단계는 man apt.conf디버그 출력을 보고 활성화하는 것입니다. Debug::Acquire::http및 로 시작하십시오 Debug::Acquire::https.


만약 너라면문자 그대로가지다

가져오기::http::proxy "http://사용자:[이메일 보호됨]:포트/";

적절한 구성 파일에서 이것은 전혀 의미가 없습니다. 따옴표 안에 있는 것은 단지 자리 표시자일 뿐입니다.실제사용자 이름, 귀하의실제비밀번호,실제서버의 호스트 이름 및실제포트.

그러니 네가 없으면특정한프록시 서버를 사용해야 하며 사용자 이름, 비밀번호, 서버 주소를 알고 있으면 파일을 삭제하면 됩니다.

proxy.server현재 apt는 문자 그대로 에 요청을 시도하고 proxy.server있으며 물론 해당 호스트 이름이 존재하지 않으므로 연결할 수 없으므로 아무것도 다운로드할 수 없습니다.

관련 정보