Bug#227805: /usr/bin/apt-cache: using a command-line specified sources.list (apt-cache -o, -p oddities)
Package: apt
Version: 0.5.14
Severity: normal
File: /usr/bin/apt-cache
I was trying to query a different sourcelist for a particular package
without changing my /etc/apt/sources.list. So I seem to have ventured
into unchartered terretory.
I did the following.
1. Created a file in /test/my_source, in it I had
deb ftp://ftp.nerim.net/debian-marillat/ testing main non-free contrib
The actual URI is immaterial - you can replace 'ftp.nerim.net/debian-marillat'
with say 'archive.progeny.com/debian' or whatever (same problem).
2. I then try to do a search on this new source list file via (as both
normal user and 'root'),
apt-cache -o=Dir::Etc::SourceList=/test/my_source -p /tmp/my_db search moo
and I get some odd errors about,
W: Couldn't stat source package list ftp://ftp.nerim.net
testing/main Packages
(/var/lib/apt/lists/ftp.nerim.net_debian-marillat_dists_testing_main_binary-i386_Packages)
- stat (2 No such file or directory)
which leads me to question why is it going to /var/lib/apt/lists (I did
use the -p option which ought to be have it be reside somewhere else, no?).
If I use something that is listed in /var/lib/apt/lists/, I get the following
error if I run as non-root,
E: Could not open file /var/cache/apt/srcpkgcache.bin - open
(13 Permission denied)
The fundemental problem I have with all of this, is that one is unable
to query outside what is listed in /etc/apt/sources.list and it seems
to me some of the hooks are there to get that done (or maybe I'm
misunderstanding things). It seems that in order to do a search a
cache file must be generted and to generate a cache file one has to
do a 'apt-get update' and with the above I would screw my system
over, so isn't there a way to search a different source list without
completely changing my system. If not, why are all those options
availble on the command-line on 'apt-cache' and 'apt-get' (namely
"pkg-cache", "Dir::Etc::SourceList", etc) ?
In passing, apt-cache's (and apt-get's) manpages about the '-o'
syntax option is VERY confusing. I believe it needs to be
'-o=CONF_VAR=value' and not '-o CONF_VAR=value' or '-o=CONF value'
as is noted in the man page (it would be best if '-o CONF=value'
was made to work). In the manpages there is also no mention of
using multiple '-o' options. So is '-o=CONF_VAR1=value1
-o=CONF_VAR2=value2' (ie. two -o on the same command-line) legal ?
It would be nice if the manpage noted something with this regard.
Regards.
-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux sina 2.4.22 #2 Thu Sep 18 20:47:45 PDT 2003 i686
Locale: LANG=C, LC_CTYPE=C
Versions of packages apt depends on:
ii libc6 2.3.2.ds1-10 GNU C Library: Shared libraries an
ii libgcc1 1:3.3.2-4 GCC support library
ii libstdc++5 1:3.3.2-4 The GNU Standard C++ Library v3
-- no debconf information
Reply to: