リモートストアで利用可能なパッケージを一覧表示しようとしています。/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"