Por que esse dumpavail do apt-cache com substituições não está funcionando?

1

Estou tentando listar pacotes disponíveis a partir de um repositório remoto sem acessar / etc / apt ou /var.O comando a seguir não retorna nada e sai com o código zero.

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

O comando parece correto, conforme docs . Alguma idéia do que estou perdendo ou como eu poderia fazer isso de forma diferente? Eu tenho meu sources.list em / tmp com conteúdo:

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

e a configuração atual do apt é padrão

$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";
    
por ottodidakt 28.06.2013 / 11:39

1 resposta

1

apt-cache dumpavail/var/lib/apt/lists - essencialmente, cat /var/lib/apt/lists/*_Packages . Na verdade, todo o utilitário apt-cache foi projetado para operar nos dados em cache local, nunca consultando a rede.

Você precisa executar apt-get primeiro e verificar se definiu um diretório de cache onde possa operar.

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"
    
por 29.06.2013 / 02:32

Tags