[Beowulf] Re: wajig for Ubuntu/Debian package management

Tim Cutts tjrc at sanger.ac.uk
Mon Feb 18 04:26:29 PST 2008


On 18 Feb 2008, at 11:10 am, Leif Nixon wrote:

> Tim Cutts <tjrc at sanger.ac.uk> writes:
>
>> On 15 Feb 2008, at 11:57 pm, Andrew Piskorski wrote:
>>
>>> Their only other major flaw that I'm aware of, is that, just like  
>>> all
>>> the rpm based tools, you can only have one single version of a  
>>> binary
>>> package installed at a time (yuck!).
>>
>> That's not true.  Look at the gcc or emacs packages.  Or automake.   
>> Or
>> autoconf.  Many, many versions, all of which can coexist on your
>> system at the same time, and you can use update-alternatives to  
>> choose
>> which one is the default.  The trick is that the packages have to  
>> have
>> different names, so in the case of gcc there are gcc-3.3, gcc-3.4,
>> gcc-4.1 etc.
>
> But that's not the same package, then. Hm, can you have a package
> depend on "any version of gcc", without listing the various gcc
> packages explicitly?

Yes.  That's what "Provides" does in a package's control file.  So,  
for example, postfix, exim and sendmail all provide "mail-transport- 
agent".  Anything that needs an MTA then depends on "mail-transport- 
agent" rather than a specific MTA package.  The same thing happens for  
C compilers.  If you to aptitude show for gcc-4.1, for example:

Package: gcc-4.1
New: yes
State: installed
Automatically installed: yes
Version: 4.1.1-21
Priority: optional
Section: devel
Maintainer: Debian GCC Maintainers <debian-gcc at lists.debian.org>
Uncompressed Size: 1323k
Depends: gcc-4.1-base (= 4.1.1-21), cpp-4.1 (= 4.1.1-21), binutils (>=  
2.16.1cvs20051214), libgcc1 (>= 1:4.1.1-21), libssp0, libc6 (>= 2.3.6-6)
Recommends: libc6-dev (>= 2.3.6-7), libmudflap0-dev (>= 4.1.1-21)
Suggests: gcc-4.1-doc (>= 4.1.1), gcc-4.1-locales (>= 4.1.1), libc6- 
dev-amd64, lib64gcc1 (>= 1:4.1.1-21), lib64ssp0
Conflicts: gcj-4.1 (< 4.1.1), libssp0-dev (< 4.1.1-6)
Replaces: gcj-4.1 (< 4.1.1), libssp0-dev (< 4.1.1-6)
Provides: c-compiler, libssp0-dev
Description: The GNU C compiler
  This is the GNU C compiler, a fairly portable optimizing compiler  
for C.

Tags: devel::compiler, devel::lang:c, implemented-in::c,  
interface::commandline, role::program, suite::gnu, works- 
with::software:source

You can see it provides a virtual package "c-compiler", and that's  
what something should depend on if it doesn't actually care which gcc  
package is installed on the machine, as long as there is one.

Tim


-- 
 The Wellcome Trust Sanger Institute is operated by Genome Research 
 Limited, a charity registered in England with number 1021457 and a 
 company registered in England with number 2742969, whose registered 
 office is 215 Euston Road, London, NW1 2BE. 



More information about the Beowulf mailing list