On Wed, 2003-01-29 at 10:07, Mark Knecht wrote:
Now, given that, what I meant was that a specific
Mandrake distro might ship
Rosegarden, for instance, but it's always an older version than where the
developers are currently at. Given that it's out of date, there are times
when I need to build from source. How do I do that on Mandrake with a
minimum of pain?
Okay, I understand you a bit better now. Hopefully I can answer your
question and explain rpms a bit in the process.
Mandrake is a binary-based distro that releases every six months. So
assuming you upgrade every six months, you should have fairly new
software with no need to compile anything. We spend a LOT of time
(employees and volunteers) keeping things up-to-date.
If you can't wait six months for a new version of package xxx, there are
a few options:
1. Rebuild from source.
This is quite easy for any experienced unix person. Simply remove the
rpm in question:
# urpme ecasound
Then check the Mandrake CVS spec file to see how to properly compile it,
and do so:
$ tar xfz ecasound-xxx.tar.gz
$ cd ecasound-xxx
$ ./configure --prefix=usr
$ make
Then install it with checkinstall so you can later remove it with one
command:
# checkinstall
2. Rebuild from cooker.
Our development version ("cooker") is always up-to-date (almost), but
contains different libraries and development files from the current
release, so you can't install cooker RPMs on an 9.0 machine (contrary to
what people may tell you). You can very easily rebuild the cooker
version for your specific machine though. Simply download the source
rpm (ecasound-xxx.src.rpm) from any cooker mirror (there are many) and
rebuild it:
# rpm --rebuild ecasound-xxx.src.rpm
Your new rpm will end up in /usr/src/RPM/RPMS/i586. Just install it:
# urpmi /usr/src/RPM/RPMS/i586/*ecasound*.i586.rpm
3. Run cooker.
For the daring and brave, you can actually run cooker all the time.
It's usually 90-95% stable. The main drawback is you need lotsa
bandwidth to keep up with daily updates.
Of course #2 is the recommended method.
With Redhat I've had problems because they've
change where stuff goes.
(Prefix == /usr) I had to find these things out the hard ware. That's not
fun and certainly not musical.
All major linux distros use the same convention:
binary packges (rpm/deb) go in /usr
built from source goes into /usr/local
As far as running the program goes, it shouldn't matter where you put
it.
Beyond that, figuring out dependencies is a mess in
Redhat. Probably is for
all distributions. But it's the main reason I use PlanetCCRMA instead of
doing it all by hand. Any solution to that problem?
PlanetCCRMA is a great idea and a great tool, but its rpms are quite
generic, so you may have problems if they are dynamically linked to old
libraries (glibc most notably). That's why it's best to use rpms
designed specifically for your distro AND your version of that distro.
Mandrake uses urpmi which is very similar to the rpm command, but
'should' resolve all dependencies automatically. Most of the time this
is the case. For example,
# urpmi audacity
would install audacity and wxGTK2.4 for you.
Has anyone within the Mandrake inner circle considered
what it's really like
for normal people to use this stuff, and then done anything to make it
easier than Redhat? I'd probably build a Mandrake machine today if the
consensus was that this problem was solved!
We've had urpmi for years. 'Dependency hell' is not a problem. Even
when you are rebuilding an application, urpmi should tell you what
development libraries you need to install.
Hope that helps a bit.
Thanks for your input.
Austin
--
Austin Acton Hon.B.Sc.
Synthetic Organic Chemist, Teaching Assistant
Department of Chemistry, York University, Toronto
MandrakeClub Volunteer (
www.mandrakeclub.com)
homepage:
www.groundstate.ca