Le 11.06.2014 08:41, John D. Hendrickson and Sara Darnell a écrit :
berenger.mo...@neutralite.org wrote:

Le 08.06.2014 17:10, The Wanderer a écrit :
Maybe it's possible to configure aptitude so that it doesn't do that...
but if so, I would think that configuration should be the default,
because as things stand it seems almost worse than useless for anything
but the simplest operations.
Can't agree more about the aptitude's "solver". That's why I **never** use it, I prefer to break packages, and then fix the system myself, through the curses interface. Since I am running a fairly minimal system ( in average 800-900 packages are installed on my computers ) it does not take ages, even if the aptitude's solver makes things very slow when something is broken ( it tries to find new solutions after every user action, even moving on next broken package ). I tried to go into it's source code, but I was not able to understand it's structure. At least I learn that, at a point in time, there was a Qt port, a Gtk port, and another one that I do not remember. But it's hard to find a point to start hacking it unfortunately. It have other defaults, for sure, for example since multiarch browsing packages is painful if you have more than one arch: every package corresponding to your pattern will be found as many times as the number of architectures you enabled. Another one is the CHANGELOG system, which only retrieves Debian's changelog, which is not really informative about what was changed in source code: lot of "maintainer change", "contributor added", etc. It is also impossible to select text from it to copy paste, and suffer various limitations when you are downloading/installing stuff: you can not then change state of packages, there is no possibility to install a package at the point where all it's dependencies has been downloaded, or better to unpack it while waiting ( in short: it is mono-threaded ), it can not install things in a different place than system's defaults ( unlike dpkg which is able to, so it's not a dpkg's limitation, and it would make it possible to manage distant computers by mounting their partitions through sshfs or whatever. Or why not, manage multiple computer at the same time, but this would be a lot more complex of course. ). And finally, it would be pretty nice if it had different colors depending on the version increase: major, minor, build. But no software is perfect, right? Apt-get can't do those things either, and I bet the same for synaptic. So I still prefer aptitude ( for it TUI, clearly ), and maybe in the future I'll have more motivation to enhance it than last time I tried ( but it's not even possible to find correct documentation about libpkg, IIRC, so I doubt it ). Or to prove another time that http://xkcd.com/927/ is so true :D However, about the solver, I have noticed ( when I was trying to hack it, I subscribed to the dedicated mailinglist ) that the idea of a multiple solver was there. With this feature, implementing a null solver, or whatever, would be possible. Our "toys" are not unmaintained.



NO.  APT does not break packages as far as i know.

point is. NO. aptitude is going fast. it is a long problem to solve

!!! SEE BELOW for how to make it really fast !!!

apt-get doesn't have a wishlist picker (see below) neither does dpkg,
that is why they are "faster".

how do i know?

------------------------

aptitude has a feature which tries to choose whish lists when there
are multiple choice paths to try (some or all of which may not
comprise the subset you need, it's complicated). I read the C++ code, and errors i've not heard of aside: it's picker is theoretically good.

i wrote this debian tool(s)

   http://sourceforge.net/p/dep-trace/

it installs removes etc like apt-get and dpkg BUT also has a
auto-chooser which asks user to make choice if necessary.  (see the
page ^^ it has new features i won't describe here).  dep-trace goes
"faster" (simpler resolver) but can't do wishlists like aptitude.
dep-trace slower than dpkg round-trip install but designed to be far
faster for given larger lists of pkgs.

back to point.  point is.  NO.  aptitude is going fast.  it is a long
problem to solve.


========================================
!! TADA i got an answer that will make you speedier that you were in
the 1990's !!


reduce the size of your /var/lib/dpkg/available.  HOW ?  well just
open the file and delete stuff and save !  ok.  there are too many
ways to choose how.  back up before doing it.  and don't delete any
you'll need (ie, dependancies)

obviously: don't install extra CD's you don't use (ie, non-free) they
will bloat the "available" file.

also: check /etc/apt/preferences (debian docs) about if there's an
option to filter updates/paths of "available" packages.

(if you don't have the file make aptitude export it, it won't unless
asked).  file is also made by delect(1) update available choice.

obviously you need tools (dep-trace has some, debian many more) to
help you grep which available to drop, to sort things out

dep-trace could tell you which you are not depending on

/var/lib/dpkg/available is actually a catenation of many Packages
files on ftp.debian.org found in directories. you might exclude whole
directories would be another approach


"DISTRIBUTION".  well what a distro is is a set of packages that are
all known, as far as dependancies go, not to conflict.

so really when you take it upon yourself to remove packages from
"available" your in effect making your own distribution (source
compiling aside).  so definetly keep in mind you may need to restore
the original, maybe you MUST install something and dpkg says it's
unknow because your new availble doesn't have it. and etc


---------- dep sorting is not np-complete ----------------

speed: dep-trace solves all deps of all installed almost
instantaneously, while dpkg or apt only solve a subset and don't know
all they need to.  then why isn't dep-trace faster?  well #1 it does
some list choosing/selecting like aptitude.  but mostly it's because
parsing the 40mb data into logic that's needed is lengthy: and must
work without using much software**  dep-trace is in sh(1) and awk(1)
and doesn't have the array speed.  but even if it did: there'd be a
speed problem.

there's definitely a speed problem.  it's a lengthy problem that just
grows.  one cannot keep growing the "available" file with more pkgs
and more deps.  it has to be split into sections at some point so you
get the wait times you volunteer for.  you can't database it thinking
delaying the problem will suffice.

debian admins should consider "easy ways" to filter what gets in the
"available list" until user asks for more.  there are some already
none come to mind at the moment.

**(ie, dpkg cannot use octave(1) for solving since that has
dependancies and isn't installed before dpkg, dpkg installs it!  well
ok could if made to be so, but no one has a standard simple base that
does that, and if they did there'd be no backport which would be bad,
and etc)

I might be wrong, but removing stuff in /var/lib/dpkg/available will have to be made after every update, and, personally, I try to often update. Plus, yes reducing that file will help, but it is only a workaround. Aptitude's interface should no be frozen when it tries to find solutions, and especially when a user's action have no impact on currently known list of solutions.


--
To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
https://lists.debian.org/ce0c0cb994b32954800b2ee7a54de...@neutralite.org

Reply via email to