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