[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#786609: apt: undesirable behaviour when installing from repositories with low pin priorities (like experimental)



Package: apt
Version: 1.1~exp8
Severity: wishlist

Hi,

this bug is about installing a package from a repository with a low pin
priority. I will use experimental as an example but this really works
with any repository with low pin priority.

My problem is, that there seems to be no way to install a package from
experimental without either specifying all packages manually (and thus
giving apt the exact solution I want - this is stupid because apt should
find a solution for me) or specifying "-t experimental" which will then
get *all* packages from experimental even for those dependencies that
would be satisfied by packages from unstable (which is also stupid
because of course I only assigned a low pin priority to a repository
because I do *not* prefer packages from that repository, so please
minimize the amount of packages from there).

I created a small test suite that illustrates the problem:

https://gitlab.mister-muffin.de/josch/apt-install-low-pin

The script test.sh sets up two local apt repositories with different pin
values and then tries to install a package from the repository with
lower pin priority.

It shows the following problem:

When just using "apt-get install package-from-experimental" apt will not
automatically use experimental to satisfy the dependencies of that
package and will fail to install.

When using "apt-get install -t experimental package-from-experimental"
then apt will take *all* packages from experimental, even those that
would be satisfied by packages from unstable.

The last situation even leads to uninstallabilities where a package from
experimental has a versioned dependency which is only satisfied in
unstable and another versioned dependency which is only satisfied in
experimental. The test suite shows this situation. How can one install
such a package without specifying the solution manually?

In the end I show how the execution of:

apt-get install --simulate --solver aspcud \
	-o APT::Solver::Strict-Pinning=false \
	-o APT::Solver::aspcud::Preferences="-new,-removed,-changed,+sum(solution,apt-pin)" \
	pkg-a

does exactly what I expect would happen by default:  It takes only the
packages from experimental where it needs to and gets the rest of the
packages from the repository with higher pin priority (unstable).

Should it not be possible to do this with apt alone?

cheers, josch


Reply to: