On Saturday 02 May 2015 16:36:30 Christian Seiler wrote:
> On 05/02/2015 05:06 PM, Lisi Reisz wrote:
> > Does the "-t wheezy-backports" format only work with backports?
>
> No, it works here as well. From the manpage of apt-get:
> > This option controls the default input to the policy engine; it
> > creates a default pin at priority 990 using the specified release
> > string.
>
> This means that ALL packages from that suit will get 990 priority (which
> is really high, see the apt_preferences(5) manpage). This has the
> consequence that if you do that for experimental, ALL dependencies of a
> package will then also come from experimental (because -t affects the
> WHOLE apt-get run, not just a single package). For backports it's
> generally OK, but for other things such as running testing with 1 or 2
> packages from experimental, it can be very problematic.
>
> To give you an example of the consequences:
>
> - package libA is version 1 in stable, version 2~bpo in
>   stable-backports.
> - package libD is version 10 in stable and version 11~bpo in
>   stable-backports
> - package B is version 23 in stable and version 24~bpo in
>   stable-backports
>      - both versions require libA in any version >= 1
>      - version 24~bpo additionally requires libD >= 11~bpo
>        (version 23 didn't require libD at all)
> - package C is version 42 in stable and version 50~bpo in
>   stable-backports
>      - version 42 requires libA with version >= 1
>      - version 50~bpo requires libA with version >= 2~bpo
>
> If you now just want to install package B from backports (but are
> uninterested in C), and neither of the four packages mentioned is
> installed yet, you can do that in two ways:
>
>  1. pin D from backports to priority 500, then try to install it, APT
>     will complain about libD not being installed in the correct version,
>     you then pin libD from backports to priority 500 and then you can
>     install the package
>
>         => libD and B will be from backports
>         => libA is still from stable, because B doesn't require a newer
>            version
>
>  2. apt-get install -t stable-backports B
>
>         => both libA and libD will also be taken from backports
>
> Now with backports this is typically fine (because the aforementioned
> case is also very rare when it comes to backports, and even if it does
> happen, libraries in backports are typically not that prone to causing
> problems), but for experimental - or worse yet, other repositories, this
> can be something you really, really don't want.
>
> (Doesn't have to be libraries btw., can be any dependency.)
>
> Therefore: use apt-get install -t with great care. It's probably fine
> for backports, but don't use it for anything else unless you REALLY know
> what you are doing.

Thanks again, Christian. That is really helpful and lucid.  I have always had 
trouble getting my head round pinning, for some reason.  Not the concepts, 
but actually doing it.  Thanks to you today, light has dawned.  I'm very 
grateful.

Lisi


-- 
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/201505021644.29372.lisi.re...@gmail.com

Reply via email to