[Python-Dev] [Distutils] how to easily consume just the parts of eggs that are good for you

Stanley A. Klein sklein at cpcug.org
Wed Apr 9 22:00:18 CEST 2008


On Wed, April 9, 2008 3:19 pm, Gael Varoquaux wrote:
> On Wed, Apr 09, 2008 at 02:26:31PM -0400, Stanley A. Klein wrote:
>> The rpm and deb package managers (and their yum and other higher level
>> dependency managers) do a lot of things:
>
>> 1.  They install packages and maintain databases of what packages were
>> installed
>> 2.  They manage dependencies
>> 3.  They support clean uninstalling of packages
>> 4.  They can query packages, both installed (via their databases) and
>> not
>> yet installed (e.g., as rpm or deb files), to determine attributes, such
>> as files they install, dependencies, and other information defined at
>> packaging time.
>> 5.  They build packages and (in some cases) can rebuild packages.
>> 6.  They can verify packages for integrity and security purposes.
>> 7.  They can download package files and maintain archives of installed
>> package files for use as local repositories.
>
> You are collapsing three different functionalities in one:
>
>   * Dealing with repositories and downloading: yum/apt
>
>  * Installing + uninstalling packages, and dealing with system
>    consistency (thus checking the dependencies are available): rpm/dpkg
>
>   * Building
>
> For me it is important that the 3 are separated:
>
>   * I may want to download the dependencies of a package to burn to a CD
>     for a computer that does not have internet access.
>
>   * I may want to send a tarball to a build server that does the building,
>     but no install (so as not to corrupt my working system).
>
> Cheers,
>
> Gaël
>

Gael -

The functionalities are combined in programs but are not necessarily
required to be used all at the same time.

I'm not that familiar with apt, but yum also installs, including
downloading both a package and its dependencies.  Yum also has a query
capability (yum list, yum info).  I think synaptic does the same thing yum
does, and adds a GUI and search capabilities similar to yum info as well.

The build capabilities of rpm were moved to rpmbuild, but the building
remains part of the rpm system.  IIRC, bdist_rpm actually calls rpmbuild
as part of its processing.

Also, IIRC, rpmbuild can build from a tarball if it contains an rpm spec. 
It does not install in the same process.  That is a separate step.  You
would not corrupt your working system by building an rpm from a tarball on
it.

BTW, I would not want to do dependencies with rpm if yum is available. 
Doing dependencies with rpm is very difficult and it is easy to wind up in
"dependency hell".  Yum will find the dependencies and install them as
long as they are in repositories that are registered in the yum
configuration.

I looked at "man yum" and couldn't find an option to download dependencies
to the local repository without installing.  However, if you did install a
package and its dependencies, and if you have selected the option of
retaining the cache and not cleaning it after installation, the rpms
(e.g., for updates) are in /var/cache/yum/updates/packages/.  They can be
copied from there to a CD for a system without internet connectivity. 
Also, both Fedora and Ubuntu have software for building installable live
CD's, although I don't know how they get their package files.


Stan Klein




More information about the Python-Dev mailing list