Hi,

I admit i'm a little confused as to what the use is of dselect when
we have tools like aptitude and apt-get.
Off course, if you like dselect, stop reading ;)
I don't like it so i try to use other tools to accomplish the same
stuff you can do with dselect.
To try to figure this out,i looked at dselect, dpkg, apt-get and aptitude.
According to the manpages of the aformentioned packages, the tools
match up like this:

Package Manager: dpkg
Backend Tool: apt-get
Frontend Tools: dselect, aptitude, synaptic, etc

By looking at the manpages, i first looked at what files the tools
use:

1) Dpkg
/var/lib/dpkg/status:        status of packages
/var/lib/dpkg/available:     available packages

2) Apt
/var/lib/apt/lists:          available packages
/var/cache/apt/archives:     saved/cached packages

3) Dselect
/var/lib/dpkg/available

4) Aptitude
/var/lib/aptitude/pkgstatus  status of packages

1. Now, the manpage of apt-get says this about /var/lib/apt/lists
"/var/lib/apt/lists/
Storage area for state information for each package resource specified
in sources.list(5) Configuration Item: Dir::State::Lists. "
This seems to be incorrect as the files in that dir seem to be
about what packages are available on what location and not what
the status of the package is on the system.

2. /var/lib/dpkg/available seems the same as /var/lib/apt/lists.
But to get the same in both files, you also need to do a
dselect update (as opposed to a apt-get update)

3. Something that wasn't clear for me: where does an "apt-cache policy"
command gets it's info?

4. If you do an "apt-get update", then i think aptitude knows
about the updated lists.

So as to what is the use of dselect:

For the common daily use, apt-get and aptitude seem to do the job.
The only situation i can think of where you'll need dselect is
after a dpkg --set-selections < myselection.
Because this changes the status of the packages and thus the
/var/lib/dpkg/status file. "apt-get dselect-upgrade" is the
command you should run to update the system and not
"apt-get dist-upgrade".

Why can't use apt-get in this situation (well according to me)?
Because apt-get doesn't use the file /var/lib/dpkg/status.
So it will probably just upgrade the system and not install
for instance the new packages that where set by
dpkg --set-selections.

But, in order to do this correctly, you'll have to make sure
that your sources.list matches the one from the source system
(to have the same packages available) and that you've done
a dselect update. That will make sure /var/lib/dpkg/available
is in working order.
apt-get dselect-upgrade then calls dselect to install the
packages. So the versions of the available packages need to be
known before we can change their status with dpkg --set-selections.

So if the above is true, wouldn't it make sense for apt-get
to do like dselect and use /var/lib/dpkg/available or would that
typically be more of a job for a frontend tool like aptitude?
If so, is there a similar command in aptitude for
"apt-get dselect-upgrade" ? Or does it also use dselect to do this?
It wouldn't make sense that if those tools are ment to replace
dselect that they would still use dselect for some stuff.
And frankly i find it confusing :)

Any comments are appreciated.

Benedict


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to