답변:
AFAIK에는 현재 소스가 무엇인지 물어볼 수 없지만 쉘 도구를 사용하여 원하는 것을 할 수 있습니다.
리포지토리 목록 가져 오기 :
grep -h ^deb /etc/apt/sources.list /etc/apt/sources.list.d/* >> current.repos.list
목록 적용 :
apt-add-repository << current.repos.list
패키지 (설치 또는 사용 가능)에서 저장소를 얻는 것과 관련하여 트릭을 수행합니다.
apt-cache policy package_name |grep -m1 http| awk '{ print $2 " " $3 }'
그러나 해당 패키지에서 사용 가능한 최신 버전의 리포지토리가 표시되므로 이전 버전의 동일한 패키지에 대해 더 많은 리포지토리가있을 수 있습니다. 전체 목록을 보려면 grep / awk 항목을 모두 제거하십시오.
apt-cache policy |grep http |awk '{print $2 $3}' |sort -u
apt-cache policy |grep http |awk '{print $2 " " $3}' |sort -u
/etc/apt/sources.list.d/*
로 변경해야합니다 /etc/apt/sources.list.d/*.list
. 이유에 대해서는 askubuntu.com/questions/82825/…를
이 시도:
cat /etc/apt/sources.list
grep -Erh ^deb /etc/apt/sources.list*
트릭을해야합니다.
grep -Erh '^deb ' /etc/apt/sources.list*
deb-src
줄 을 제외합니다 .
그건 하지 맹목적으로 다른 컴퓨터에 복사에 적합한 형식,하지만 (내가했던 것처럼) 그들이 아직 여부 저장소를 추가 한 여부를 해결하고자하는 사용자는, 당신은 할 수 있습니다 :
sudo apt update
apt
업데이트 할 때 가져온 리포지토리 목록을 출력합니다. 분명해 보이지만 방금 GET
뱉어 낸 URL이 무엇인지 깨달았 습니다.
편집 : 다음 awk
기반 표현식을 사용하여 source.list를 생성 할 수 있습니다.
cat /tmp/apt-update.txt | awk '/http/ { gsub("/", " ", $3); gsub("^\s\*$", "main", $3); printf("deb "); if($4 ~ "^[a-z0-9]$") printf("[arch=" $4 "] "); print($2 " " $3) }' | sort | uniq
또는 다른 답변에서 알 수 있듯이 다음 cat
과 같은 기존 소스를 모두 사용할 수 있습니다 .
cat /etc/apt/sources.list /etc/apt/sources.list.d/*
비활성화 된 repos는 해시로 주석 처리되므로 의도 한대로 작동합니다.
apt update
출력 / 텍스트를 필터링하여이 질문과 관련된 정보를 추출하는 방법은 무엇입니까?
awk
필터링 에 사용하기 위해 +1
나는 무언가를 위해 여기에 도착했지만 필요한 것은 다음과 같습니다.
cd /etc/apt
nano source.list
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb-src http://http.kali.org/kali kali-rolling main non-free contrib
apt upgrade && update
출처 : https://docs.kali.org/general-use/kali-linux-sources-list-repositories