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

Re: questions on apt-pinning



On Thu, Sep 20, 2007 at 14:20:27 +0100, Bob wrote:
> Hi, I just tried Lenny and MergeFB is busted for that combination of 
> xserver-xorg-core and xserver-xorg-video-ati, for the moment the fix is 
> install xserver-xorg-video-ati from experimental, so I have to delve in the 
> world of apt-pinning.
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=420628
>
> If I install a package from experimental or sid, is there any way I can 
> track it's progress down the tree? that is to say, in some months time, 
> when a fix or feature has trickled down to Lenny, I don't necessarily want 
> to be running whatever even newer version is in experimental or sid, which 
> may well have problems of it's own.  Failing that how do you downgrade a 
> package from the one in sid to the one in testing?

You don't have to pin anything; apt assigns a very low priority to
"experimental" packages by default:

$ apt-cache policy xserver-xorg-video-ati
xserver-xorg-video-ati:
  Installed: 1:6.6.192-1
  Candidate: 1:6.6.193-3
  Version table:
     1:6.7.192-4 0
          1 http://ftp.de.debian.org experimental/main Packages
     1:6.6.193-3 0
        500 http://ftp.de.debian.org unstable/main Packages
 *** 1:6.6.192-1 0
        100 /var/lib/dpkg/status
     1:6.6.3-2 0
        500 http://ftp.de.debian.org stable/main Packages
        500 http://ftp.de.debian.org testing/main Packages

As you can see, the experimental version is ignored as an installation
candidate even though it is the newer than the one in Sid.

A priority of 1 means that the package will only be installed if there
is no installed version of that package; see "man apt_preferences". In
other words, an experimental version of a package will never
automatically displace an already installed version of that same package
(even if the installed version itself came from experimental). When a
newer version of that package comes to Lenny, on the other hand,
apt(itude) will automatically replace the older version if you use
"upgrade". If I understand you correctly, this is what you want.

Therefore you can simply add an "experimental" repository to your
sources list and run

apt-get install -t experimental xserver-xorg-video-ati

to install the new ati driver. You system will continue to have that
driver until a newer version comes to Lenny or until you ask for a newer
experimental one by using the "-t experimental" switch again.

I myself prefer to use aptitude's interactive interface when I mess
around with (experimental) packages since this gives me better control
and a quicker overview of dependency issues. (The "-t" option works the
same for aptitude.)

Please note, however, that all my remarks only concern the package
management; I have no ideas about possible problems of the experimental
driver itself. Also, there can be complications related to sets of
interdependent packages, but you would run into the same issues when
using pinning. The apt-cache command is always helpful to get a feeling
for what is going on.

> In the /etc/apt/preferences file, is there any way of pining to a release 
> rather than to stable or testing?  I've got used to using the release 
> codename in my sources.list so that I don't upgrade until I change the link 
> in sources.list and issue an apt-get dist-upgrade.
> It seems in the preferences file an entry like
>
> Package: *
> Pin: release a=etch
> Pin-Priority: 700
>
> doesn't work and you have to use a line like,
> Pin: release a=stable
> Is there a way round this inconsistency?

I don't know of any, but I have never really investigated this issue
since it does not concern real men (Sid users) like me. In the absence
of a general solution I hope that what I wrote above is at least helpful
for your specific problem.

-- 
Regards,            | http://users.icfo.es/Florian.Kulzer
          Florian   |



Reply to: