Making an RPM Distribution play nicely with ./configure && make && make install packages

Tim Wunder tim
Mon May 17 12:00:19 PDT 2004


On 3/5/2004 4:03 PM, I believe that Roger Oberholtzer wrote:

> On Fri, 2004-03-05 at 21:12, Tim Wunder wrote:
> 
>>On 3/5/2004 2:07 PM, I believe that Roger Oberholtzer wrote:
>>
>>
>>>On Fri, 2004-03-05 at 18:14, Tim Wunder wrote:
>>>
>>>
>>>>On 3/5/2004 11:03 AM, I believe that Roger Oberholtzer wrote:
>>>>
>>>>
>>>>
>>>>>On Sat, 06 Mar 2004 02:19:35 +1100
>>>>>James McDonald <james at jamesmcdonald.id.au> wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>I use Redhat Fedora Core 1. I have installed apt4rpm and done the usual 
>>>>>>apt-get upgrade etc. So once you get to that stage you then have to 
>>>>>>compile from source to get 'the latest'.
>>>>>>
>>>>>>Typically I also install packages that I don't bother to role into an 
>>>>>>rpm but they are required by other components I want to install via rpm 
>>>>>>/ apt-get.
>>>>>>
>>>>>>How do you tell apt-get / rpm to either ignore that it can't see the 
>>>>>>package in it's database or update the rpm database with the package 
>>>>>>despite it wasn't installed via rpm?
>>>>>
>>>>>
>>>>>gentoo ... Gentoo ... GENTOO
>>>>>
>>>>
>>>>I'm fairly ignorant on other package management systems used by non-rpm 
>>>>distros, slackware, gentoo, debian. I'm fairly familiar with how rpm 
>>>>works and believe apt to be similar, a database tracks what's installed. 
>>>>Is gentoo different? Slackware?
>>>
>>>
>>>Gentoo deals with dependencies very well. It uses sandboxes to make
>>>things so it ALWAYS knows what will be installed, not depending on a
>>>list or makefile. Also, it compiles from source on your system. This
>>>really helps lessen library conflicts. If I wanted the latest  firefin,
>>>I would type:
>>>
>>>	emerge firebird
>>>
>>>It will get all needed parts that are not installed as part of doing
>>>this. I need not worry. It also has a concept of stable and non-stable
>>>releases. You can decide what you want. It you are curious if anything
>>>you have installed has a newer version, you would:
>>>
>>>	emerge rsync		(update concept of what is 'out there')
>>>
>>>	emerge -up world	(tell me what is new. But don't do 
>>>					anything about it. Remove the 
>>>					-p and it will update.)
>>>
>>>'world' is what you have already installed. Not everything out there.
>>>
>>>It works quite well. Since it is compiled locally, my preferences are
>>>used. So, if I want any packages that use ALSA to have that enabled, I
>>>set 'alsa' once in a global config file. Each package checks these to
>>>see how to set flags. So, the maintainer of the package makes the
>>>connection between Gentoo's variables and what the specific package
>>>wants to make that happen. I need not sort that out. Everything you have
>>>installed is compiled how you want it, not how it was made for some RPM.
>>>Still, the package's config method is used. Gentoo does not make a new
>>>compilation system for each package. That would be a real drag. Instead,
>>>it maps your wished to the package.
>>>
>>
>>But as I read this, it still seems like it depends on a packager, "the 
>>maintainer of the package makes the connection between Gentoo's 
>>variables and what the specific package wants to make that happen."
> 
> 
> Yes it does. But the package is a script. So you could choose to change
> to suit.I have never had to do this,
> 
> 
>>And I don't see where I can mangage multiple versions of a package like 
>>I can with rpm.
> 
> 
> Yep. In emerge-speak they are called slots. 
> 
> 
>>Lemme throw another example out there:
>>I follow the gnucash project fairly closely. I run 1.8.8, which is the 
>>current stable release, for my day-to-day use. I also like to have 
>>compiled and installed, the 1.8.x branch, and the HEAD branch from CVS.
>>I have two scripts that run perodically (a couple times per week.) One 
>>pulls down the 1.8.x branch, compiles it, and installs it via RPM (well, 
>>checkinstall,) the other does the same with HEAD. They get different 
>>names when installed and yum/apt/rpm are all fine with it. Nothing gets 
>>in the way of anything else. They're all separate. If I want to 
>>uninstall the HEAD, or 1.8x branch CVS copies, I just rpm -e <insert 
>>correct package name here> and I'm done. If I want to back rev from a 
>>bad HEAD install, I rpm -e..., then rpm -i... and I'm done.
>>Can this be similarly done with Gentoo's package manager?
> 
> 
> I guess that depends in part on the package itself. Some developers
> insist that things be in a specific place. Short of changing the source
> code you are not going to make it work. I do know that Gentoo supports
> many features in this area that I do not use. I would be surprised if
> Gentoo did not support this type of thing. At any given time, for any
> given package, there are always multiple versions available. Including
> old versions, new versions and stable versions.
> 
> Check out http://packages.gentoo.org/search/?sstring=gnucash for the
> current gnucash for Gentoo. BTW, note that Gentoo is available for
> numerous CPUs.
> 
> 
>

Thanks for the info. Did a little surfing on the projects at gentoo.org, 
and it looks like it's reasonably do-able. They have a project for 
installing multiple versions of KDE:
http://www.gentoo.org/proj/en/desktop/kde/index.xml

I'd just have to figure out how that's done and incorporate that into 
gnucash. I'd also probly need to have /usr on a separate partition, 
since it looks like they put everything there...

Gentoo is starting to look a little more interesting. Perhaps my next 
experiment will have to involve trying that out...hmmm, I just cleared 
off 15 GB's on an IBM R40 laptop, that might be a good place to play...

Regards,
Tim





More information about the Linux-users mailing list