On Sun, 2007-02-04 at 11:09 -0500, Rami Michael wrote: > #1. Most of these apps have a lot of requirements when you build > them, for example libpcap-devel or gnome-something-devel. I realized > I do not need the "*devel*" rpms to be installed on the boxes i was > compiling to. However, since there is no dependancy checking when I > copy something over how can I know that the libpcap libraries actually > exist? I assume my app will bomb out in the middle?
Or bomb out right at the start, which is when shared libraries are usually loaded. For many applications you can use a --disable-shared flag in a configure file so that the library becomes part of the binary you build. This will increase file size, sometimes dramatically, but will often make the application start faster and will make it much more likely to work when copied to another system. If you know there are particular shared libraries, you can build local (i.e. in /usr/local/lib) versions and copy them too. > > #2. If I compile something on 586 openSuse will it work in 586 CentOS > ? Is this just not a smart thing to do? Should you only copy between > the same distro? You should be fine unless you pass specific flags to the compiler. Typically I use something like $ export -march=pentium4 -O2 -mfpmath=sse -msse -msse2 -malign-double -Wall -pipe -Wno-long-long $ ./configure Without the first line, I get a generic binary that should run on different distros (as long as they are based on basic i386 IIRC). With the flags, it will only run on systems with newer P4 chips, though should still be distribution-independent. As an example, I've compiled gcc itself on one system and then copied the binaries to another. It works. > #3. is there any way to keep track of the files installed? Or am I > doing something findamentally wrong? Do I ./configure and make on one > system and then do a make install on all of them? > Make sure they are all installed in /usr/local rather than anywhere else. Then you can typically copy the files in /usr/local/bin from one system to another without problems. SuSE doesn't install files to /usr/local/ and you're unlikely to overwrite anything (such as fonts in /usr/local/share/fonts) that you might otherwise have installed locally. There are alternatives, such as building in a subdirectory of /opt, but /usr/local is searched for binaries; so no special configuration is required. > #4. How does one easily uninstall stuff that is installed by these methods? If you haven't too many files, it's usually easy to identify and deleted the required ones from /usr/local/ make uninstall usually (but not always) removes all the files associated with a particular application). You could also try setting up rsync to mirror the whole /usr/local tree from one machine to another. Then when you delete files on the build machine (e.g. with a make uninstall) rsync (with --delete flag IIRC) from another machine will automatically delete the required files for you. -- JDL -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
