[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- 

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.


 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