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

Re: Pining for Qt 5.4



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


Reply to: