이 apt-cache 덤프가 재정의 작업과 함께 사용할 수 없는 이유는 무엇입니까?

이 apt-cache 덤프가 재정의 작업과 함께 사용할 수 없는 이유는 무엇입니까?

원격 저장소에서 사용 가능한 패키지를 나열하려고 합니다./etc/apt 또는 /var에 액세스할 필요가 없습니다.다음 명령은 아무것도 반환하지 않고 코드 0으로 종료됩니다.

apt-cache dumpavail -o Dir::Etc=tmp/ -o Dir::Cache=tmp/ -o Dir::State=tmp/

명령이 맞는 것 같습니다문서. 내가 무엇을 놓치고 있는지, 어떻게 다르게 할 수 있는지 아시나요? 내 resources.list는 /tmp 아래에 있으며 내용은 다음과 같습니다.

deb http://br.archive.ubuntu.com/ubuntu/ precise main restricted

현재 적절한 구성이 기본값입니다.

$apt-config dump
...
Dir "/";
Dir::State "var/lib/apt/";
Dir::State::lists "lists/";

Dir::State::cdroms "cdroms.list";
Dir::State::mirrors "mirrors/";
Dir::State::extended_states "extended_states";
Dir::State::status "/var/lib/dpkg/status";
Dir::Cache "var/cache/apt/";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";
Dir::Etc "etc/apt/";
Dir::Etc::sourcelist "sources.list";
Dir::Etc::sourceparts "sources.list.d";

답변1

apt-cache dumpavail본질적으로 읽으면 /var/lib/apt/lists그렇습니다 cat /var/lib/apt/lists/*_Packages. 실제로 전체 apt-cache유틸리티는 로컬로 캐시된 데이터에서 작동하도록 설계되었으며 네트워크를 쿼리하지 않습니다.

apt-get먼저 이를 실행하고 실행할 캐시 디렉터리가 설정되어 있는지 확인해야 합니다 .

dir_cache=$(mktemp -d)
mkdir "$dir_cache/etc" "$dir_cache/var" "$dir_cache/state"
echo 'deb http://br.archive.ubuntu.com/ubuntu/ precise main restricted' >"$dir_cache/etc/apt/sources.list"
apt-get update -o Dir::Etc="$dir_cache/etc" -o Dir::Cache="$dir_cache/var" -o Dir::State="$dir_cache/state"
apt-cache dumpavail -o Dir::Etc="$dir_cache/etc" -o Dir::Cache="$dir_cache/var" -o Dir::State="$dir_cache/state"
rm -r "$dir_cache"

관련 정보