Slashdot Mirror


Build From Source vs. Packages?

mod_critical asks: "I am a student at the University of Minnesota and I work with a professor performing research and managing more than ten Linux based servers. When it comes to installing services on these machines I am a die-hard build-from-source fanatic, while the professor I work with prefers to install and maintain everything from packages. I want to know what Slashdot readers tend to think is the best way to do things. How you feel about the ease and simplicity of installing and maintaining packaged programs versus the optimization and control that can be achieved by building from source? What are your experiences?"

178 of 863 comments (clear)

  1. Personally by jwthompson2 · · Score: 4, Interesting

    I do a bit of both. I predominantly install items from packages, when available, for testing and review of something new that I am interested in. Once I establish whether what I have been playing with may be useful for some particular purpose I will research the source build options. If there are specific optimizations that can be made for my system's hardware or pre-installed software I will then look at installing from source in order to leverage those optimizations, but if there is no advantage to compiling the source due to lack of any worthy optimizations then I will install from packages any time I want that software.

    That is my way of handling things, do what fits your needs best, that's why we have this option.

    --
    Even if I knew that tomorrow the world would go to pieces, I would still plant my apple tree. -Martin Luther
    1. Re:Personally by LoveTheIRS · · Score: 2, Interesting

      I run Fedora Core 2. The packages I have downloaded have not always been compiled to do everything that I need. Also, the packages sometimes are a couple revisions behind so in that case I tend to build from source. I am ambivalent to Gentoo because on one hand you can get code optomized only for your machine, but on the otherhand you have to wait for days for a working system. I'd say that the best for you would be to start your system out with the packages and then compile your own rpms(or whatever else you are using) (I have never been successful at doing so but it is supposed to be easy,) then you have the best of both worlds, compiled code with everything you need and all the files installed are managed by a rpm database. My 2 cents.

    2. Re:Personally by allyourbasebelongtou · · Score: 5, Interesting

      In short: I have to agree--I do a bit of both, too.

      The main thing I encounter that keeps me from using them all the time is the need for specific add-ons that are available as part of packages but are available when rolling-my-own.

      As an aside, there are certain bits that I just prefer to compile myself for any number of reasons

      That said, there are other bits of software that are pretty generic items that the packages make *trivially* easy to work with, and where compiling those same things from scratch--particularly on older hardware--makes you get a bit long-in-the-tooth waiting for the compile to return.

      To me, this is truly one of the ultimate beauties of open source: you're not stuck with pre-built, but you can leverage it when it makes sense.

      --
      ----------
      Nope. Not gonna do it. Wouldn't be prudent. Not at this juncture.
    3. Re:Personally by Aneurysm9 · · Score: 5, Interesting

      You don't have to wait days to get a working Gentoo system. With the GRP CDs you can have a working system up and running in a few hours. It's still going to take more time than Fedora or SuSE, but it will be optimized more for your platform with the option of recompiling for further optimization. That's how I setup Gentoo on my laptop as it's hideously slow. Over time it's had almost everything recompiled a piece at a time, but I didn't have to wait for it to do everything from glibc up at once.

      --
      There was Cowboy Neal at the wheel of a bus to never-ever land.
    4. Re:Personally by JustinMWard · · Score: 2, Interesting

      Not to knock Gentoo, but don't expect the install to take longer just because you're compiling things. The install process itself is very, very unfinished. While some of this might be in the name of customization, some of it is just the result of being a very unfinished process.. my favorite example is that you have to link the correct timezone files by hand, instead of choosing your timezone out of a list. Sure, it's a little detail, but it adds up. You've also got to make your own partitions (via fdisk) and do your own formatting (via mkfs).. again no more choice, just more grunt work. The installer is full of things like this.

      It's not a bad little distro, IMO. But the installer has a *long* way to go.

    5. Re:Personally by bee-yotch · · Score: 4, Informative

      "But the installer has a *long* way to go"

      What installer? Gentoo's only official "installer" is the install documentation.

      In my opinion if Gentoo wants to gain a larger user base it needs one. But I definately learned a lot from installing it without a pretty gui installer.

    6. Re:Personally by jobsagoodun · · Score: 5, Interesting

      BUT

      The really great thing is how well it wears. I've a RH8, RH9 installation that have lots of other bits & bobs installed, mainly from tgz's I've pulled down & built. Its an arseabout, and both boxes are cluttered with stuff - and as soon as you go off piste with an installed package, you're on your own.

      OTOH I also have a couple of gentoo installations, and for nearly everything I want, I can just 'emerge xyz' and presto, its there. It was a pain getting it installed, but now its there it is really, really good. Also upgrading it was piss easy too.

      If only I could get portage/emerge for redhat...

    7. Re:Personally by Frymaster · · Score: 5, Insightful
      In my opinion if Gentoo wants to gain a larger user base it needs one.

      and why does gentoo need or want a larger user base? gentoo is geared towards a niche market and those people will be attracted to the distro whizzy installer or no.

      porsche has a tiny market share - but nobody suggests they should make a k-car version to get a bigger slice of the pie!

    8. Re:Personally by bee-yotch · · Score: 2, Insightful

      Well, I'm not meaning to imply that they "need" a larger user base. But I'm sure it wouldn't hurt them.

      Anyway, look at it from a different perspective, user base aside, if gentoo really is about choice and control, then why not let the gentoo user's choose between a gui installer and a manual install?

    9. Re:Personally by cayenne8 · · Score: 3, Informative
      Yup....and with Gentoo, once the install is done...it is SOOOO easy to keep up to date or add new programs. emerge this, emerge that...emerge sync.

      Sure, like any distro, an install will blow here and there due to dependencies, but, for the most part, I find it rarely happens with Gentoo....and makes the whole process so easy to do.

      --
      Light travels faster than sound. This is why some people appear bright until you hear them speak.........
    10. Re:Personally by micromoog · · Score: 4, Funny
      porsche has a tiny market share - but nobody suggests they should make a k-car version to get a bigger slice of the pie!

      Yeah, Gentoo adding an installer would be like Porsche making an SUV . . . oh wait, right . . .

    11. Re:Personally by Woody77 · · Score: 3, Insightful

      It's why I recommend Gentoo to those that are computer-literate, and interested in trying linux. You learn so much about how the computer works during the installation.

      I grew up with PCs as they grew up, and learned DOS/Windows through all of it's incarnations (well, windows 3.1 and later). And I realize that I can handle XP MUCH better than most people I know that came into it later, and don't understand how the low-levels of the OS fit together, and what does what.

      I once saw the definition of an Expert as someone that knew the low-level so well that all of the high level stuff was obvious. I'm nowhere near that (I don't think anyone is with Windows, at this point), but that's the route that I like to go towards. It's so much easier to debug things when you understand the computer is a system, and what the parts are, and what are the core required things to get it functional.

      Gentoo's install steps are essentially a how-to guide for bringing up a box after it falls on it's face. Something often learned the hard way. It's really quite simple, and most of it could be automated, but I think that they have intentionally left it manual.

      A) It requires you to learn to use it
      B) It raises the bar on the quality of noobs.

      I'd rather start someone on an OS where they need to learn how it works than on one where it's all magic. Because magic only goes so far.

    12. Re:Personally by jrnchimera · · Score: 2, Insightful

      The problem is that the Gentoo Portage is made specifically for Gentoo and some configurations that out of the box only work on a Gentoo system. So yes, you can use portage on any distribution, but it will not work as well and you will most likely have problems getting stuff to compile without having to contstantly tweak ebuild files etc. The YOS Linux distribution uses Portage and though YOS is nice, the portage system rarely works as well as it does on a real Gentoo box.

    13. Re:Personally by Christianfreak · · Score: 2, Informative

      I use Apt for RPM to keep my RedHat boxes up to date. As a busy Sysadmin/Programmer, its easier to just get the stuff updated or a new machine up than it is to compile everything.

      I know how to compile everything but when the PHB is screaming at you to get stuff done it becomes impractical.

      Oh apt for RPM can be found at Freshrpms

    14. Re:Personally by Reorax · · Score: 2, Funny
      Yup....and with Gentoo, once the install is done...it is SOOOO easy to keep up to date or add new programs. emerge this, emerge that...emerge sync.

      Not in that order, of course.

      --
      This sig is only here so people stop skipping the last lines of my posts.
  2. Support by ackthpt · · Score: 5, Insightful
    After you've gone it will be easier for the prof to get support on a package than something custom. From experience, the less something you have resembles what tech support is expecting the more finger pointing and the less gets done.

    As often as I've lamented how much employers spend on PC's, vs build them themselves from parts, they would rather not have to rely on someone in-house to support hardware.

    --

    A feeling of having made the same mistake before: Deja Foobar
    1. Re:Support by vrTeach · · Score: 5, Insightful

      This is very much the case. I have managed 15-20 linux machines for the past seven years, and have moved from largely building from source to largely depending on packages. The porting of apt to rpm systems has completely changed my work for the better, so if at all posible I use the packages and a small subset of apt repositories. My next step is probably develop our own apt repository.

      In some cases, the packaged version won't play well with something that I need, or I particularly don't want upgrades to disturb something. In that case I put together a pseudo-script that gets and builds the source and dependencies, and mark the packages as "Ignore" in my apt configuration.

      eks

      --
      -- Mein Systemadminstrator hat einen großen schwarzen Moustache.
    2. Re:Support by pointbeing · · Score: 3, Informative
      As often as I've lamented how much employers spend on PC's, vs build them themselves from parts, they would rather not have to rely on someone in-house to support hardware.

      It's generally more expensive to build hardware than to buy it. I work for DoD and buy about a zillion computers a year. My organization has ~2000 employees and PCs are on a four-year replacement cycle. In order to build machines in-house I'd need at least one additional full-time employee (cost about $70K including benefits) and the space to build the machines.

      Right now I'm *buying* computers from a major manufacturer - 3.2GHz, Intel, 768mb RAM, 40G hard drives - perfect corporate machines - for $907 each. The major manufacturer guarantees hardware compatibility for 36 months so my existing sysprep loads will work, provides 36 month onsite warranty support and will inflict my image on these PCs for free. You can't build 'em that cheap.

      I just bought a bit more than 500 machines this year - the full-time employee alone would add at least $140 to the price of each PC you built and I'm a bit skeptical that you could build and support those machines with only one person.

      In short, you can't build the same PC, guarantee hardware compatability, inflict a standard load on them and provide worldwide onsite warranty support for anywhere near the $907 for each unit I just bought.

      --
      we see things not as as they are, but as we are.
      -- anais nin
  3. One word for you... by TwistedSquare · · Score: 4, Informative

    Gentoo! (Combines the best of both worlds)

    1. Re:One word for you... by Anonymous Coward · · Score: 4, Informative

      Which of course was copied from FreeBSD...

    2. Re:One word for you... by micromoog · · Score: 5, Funny

      . . . which of course is dying.

    3. Re:One word for you... by part15guy · · Score: 2, Funny
      which of course is dead.

      No, it's still dying. I am still running FreeBSD at home because I have not found the time yet to switch back to Linux.

    4. Re:One word for you... by Stonent1 · · Score: 4, Interesting

      But why would you ever use Gentoo in a production environment?

      Security updates w/o waiting for them the be packaged?

    5. Re:One word for you... by SoTuA · · Score: 5, Funny

      Gentoo Linux: Because life is too long to waste on windows reboots, but long enough to 'emerge openoffice'. (laugh, it's a joke!)

    6. Re:One word for you... by TimmyDee · · Score: 5, Funny

      That's only because one can associate FreeBSD with Apple, who has been dying for longer than I have been alive.

      --
      Per Square Mile, a blog about density
    7. Re:One word for you... by tverbeek · · Score: 3, Informative
      The Gentoo Portage system was copied from FreeBSD?

      In a word: yes.

      --
      http://alternatives.rzero.com/
  4. Both? by jjares · · Score: 2, Interesting

    I actually make my own gentoo ebuilds and build everything emerging them... so, both.

  5. Gentoo is something of a middle ground. by Novanix · · Score: 5, Insightful

    Gentoo is a great OS as instead of having binary packaged systems, it builds everything from source but can build it effeciently and automatically. In addition it can allow you to just use it to manage the source and you compile it yourself. If you were dealing with many systems you could setup your own gentoo sync server and distribute custom copies of various packages exactly to your specs and compiling details. In addition it can easily determine dependencies, and even install them for you if needed. Gentoo is kind of like a bare bones OS that simply makes it easy to install whatever you want and rather helps shortcut the process of dealing with installing things by compiling things for you.

    1. Re:Gentoo is something of a middle ground. by Chuck+Bucket · · Score: 5, Informative
      Thanks for the very good points and explaination of Gentoo, but *please* remember, you CAN use binary packages with Gentoo as well:
      • emerge -k (packagename)
      This must be pointed out before the normal Gentoo FUD starts getting thrown around. Also, before anyone slams Gentoo, they should read and learn: Dispelling the myths of Gentoo Linux, an honest review

      Cvswdsf
    2. Re:Gentoo is something of a middle ground. by whoever57 · · Score: 5, Interesting
      I have one Gentoo machine that is my "Compile Server" On this, I build binary packages, which go into the portage tree. All other Gentoo machines on the network then sync against the compile server (instead of using "emerge sync"), and thus also get the binary packages.

      Then, on the other machines, I install from the binaries.

      This allows me to test the installs first, resolve any problems, etc.

      Furthermore, to speed up the process, several machines run DISTCC and are used as clients of the compile server.

      --
      The real "Libtards" are the Libertarians!
    3. Re:Gentoo is something of a middle ground. by IntergalacticWalrus · · Score: 2, Informative

      You can just put the /usr/portage from your compile server on nfs and have all other machines export it, you know.

    4. Re:Gentoo is something of a middle ground. by Joseph+Vigneau · · Score: 2, Informative

      Each ebuild (package) specifies a SLOT variable, which is populated by the author of the ebuild. Roughly speaking, this variable tells Portage that the versions of the package are different enough that both versions need to be around, in order to satisfy the dependencies of other packages.

      For example, I have both 1.3 and 1.4 versions of the Sun JDK on my box. The sun-jdk-1.3.1.10.ebuild file has the line SLOT="1.3", while the sun-jdk-1.4.2.04.ebuild file has the line SLOT="1.4". Now, if Sun has another release of JDK 1.3, the ebuild maintainer releases a new ebuild that has that same SLOT="1.3" line. Portage now knows it is safe to replace the old 1.3, but to keep the existing 1.4, as well.

    5. Re:Gentoo is something of a middle ground. by Chuck+Bucket · · Score: 3, Informative

      ...unless you're referring to the limitted selection on the gentoo cd's, then no, you can't use binary packages unless you've pre-built them yourself.

      1) if your mirror doesn't have binaries, add one that does to PORTAGE_BINHOST (check with #gentoo or gentoo forums for urls)

      2) emerge -k foo that'll emerge the binary package of foo.

      more info from Gentoo's FAQ http://www.gentoo.org/doc/en/handbook/handbook.xml ?part=2&chap=2#doc_chap3 :

      2.c. Maintaining Software

      Building or Prebuilt?

      Gentoo provides ebuilds, the Gentoo packages if you like. But when you want to install such an ebuild, you can choose between building the package and using a prebuilt package. But what are the advantages/disadvantages of both approaches, and can they be used next to each other?

      As you probably have guessed, building packages takes a lot of time (especially if you have little resources or want to build big packages, such as KDE, OpenOffice.org, etc.). By building the package, you can use the USE setting to tweak the package to your system. Of course, you can also define high optimization options (in the CFLAGS and CXXFLAGS variables) to compile the package with.

      Using prebuilt packages improves the installation time (as no more compilation is needed), but you will lose the advantages of the USE setting and the CFLAGS & CXXFLAGS variables.

      As previously stated, prebuilt packages are stored in the /usr/portage/packages/All directory, while the source code of the packages is placed in /usr/portage/distfiles. If you have finished installing a package you can remove the package or source code from the respective directory. However, you might want to keep the package/source code of the latest version, just in case you want to reinstall the package (so you don't have to redownload it). ...

      Installing Prebuilt Packages

      When you want to install a prebuilt package, you should use the --usepkg option (-k in short). This will use the binary package available in /usr/portage/packages/All if the package and the version of the application you want to install match.

      Code Listing 18: Installing a prebuilt package for gnumeric

      # emerge --usepkg gnumeric

      If you want to use the binary package, even if the versions don't match, use --usepkgonly (-K in short).

      Code Listing 19: Installing the prebuilt package for gnumeric

      # emerge --usepkgonly gnumeric

      If you don't have the prebuilt package on your system yet, you can have emerge download it from a mirror, defined in the PORTAGE_BINHOST variable declared in /etc/make.conf.

      To download the binary package in case this package doesn't exist on your system already, use --getbinpkg (-g in short):

      Code Listing 20: Downloading and installing a prebuilt package for gnumeric

      # emerge --getbinpkg gnumeric

      This will download the package and the package-related information for you and install it on your system, together with the dependencies.

      CB

    6. Re:Gentoo is something of a middle ground. by Hatta · · Score: 2, Informative

      Indeed. I find the greatest benefit of Gentoo is the USE flags. Because of them I have many more video and audio drivers available on my gentoo box than my debian machines. Just specify, for instance, "opengl" in the USE flags, and everything is automatically built for opengl. I've been surprised to find out how many apps have opengl support that I never knew about. Still, the fragility of portage and its tendency to leave cruft around keep me in the debian camp most of the time.

      --
      Give me Classic Slashdot or give me death!
  6. Who are these people? by bperkins · · Score: 5, Insightful

    While building from source can be fun, and necessary sometimes, I don't think it makes sense. You spend far too much time tweaking minor issues, and lose sight of major problems.

    One problem that I've noticed is the fact the build from source people tend to install things in a way that's completely different than anyone else. This means that anyone who tried to maintain the machine is hopelessly lost trying to figure out what the previous person did. OTOH, When (e.g.) RedHat does something weird, the explanation and fix is usually just a few google queries away.

    Most (all?) package formats have source packages that can be modified and rebuild in case you need some really special feature.

    1. Re:Who are these people? by Anonymous Coward · · Score: 5, Interesting

      Speaking of RedHat doing something weird... RedHat managed to _rename_ p_pptr to parent in task_struct in the kernel. How did they manage to get away with something like that? If there are custom kernel modules that happen to want to use p_pptr, then everything breaks!

    2. Re:Who are these people? by adamjaskie · · Score: 3, Interesting

      I run Slackware. Most of the major stuff I need is avaliable as official packages from Pat, and quite a bit of other stuff is avaliable on LinuxPackages.net. I will usually look first to see if there is an official package, and if not, I will do a quick look on LinuxPackages.net, but those are usually a bit out of date, so I usually will end up just downloading the source and compiling it. I see nothing wrong with compiling my own stuff, as it doesn't take much longer. With checkinstall, I can even enter it into the package management system to uninstall easier in future.

      --
      /usr/games/fortune
    3. Re:Who are these people? by bwy · · Score: 5, Insightful

      You spend far too much time tweaking minor issues, and lose sight of major problems.

      Good point. There are probably very few cases where spending the extra hours of tweak time ever ends up being something that adds a significant amount of value to anybody, except yourself of course. I can think of a couple exceptions, but they are exactly that- exceptions to the rule. IMHO the ability to standardize installation packages is an important aspect of modern computing.

      If time didn't matter, I suppose we'd could all go so far as writing all our own software that would do exactly what we wanted.

    4. Re:Who are these people? by stwrtpj · · Score: 2, Informative
      While building from source can be fun, and necessary sometimes, I don't think it makes sense. You spend far too much time tweaking minor issues, and lose sight of major problems.

      I tend to agree, but I have found one case on Redhat where RPMs give me nothing but trouble: Perl.

      I have always had problems with Perl when I go to install a new module from CPAN if Perl was installed with an RPM file or came with the system (i.e. installed when the system was installed). Perl itself works great, but some CPAN packages barf when I try to compile them. Tk is the worst offender. I have yet to get it to compile cleanly using an RPM'ed Perl. Some modules are very sensitive to the exact configuration under which Perl itself was compiled, and more likely than not the Perl RPM was created on a system different enough from mine to cause problems.

      The same thing happened to me just a month ago when I got a brand new machine with RH9 preinstalled. Tk would not build properly with the preloaded Perl, so I downloaded and compiled my own from scratch and it worked perfectly after that.

      --
      Karma: Frotzed (mostly due to the Frobozz Magic Karma Company)
    5. Re:Who are these people? by jc42 · · Score: 2, Insightful

      One problem that I've noticed is the fact the build from source people tend to install things in a way that's completely different than anyone else.

      While I'd agree with you in general, I've found one curious case where I've learned to install from the source to make all my machines the same: apache.

      For some reason, every vendor (and sometimes every release ;-) seems to have apache installed in a clever way that's different from everyone else. They put the pieces in different directories; they munge the config files in gratuitous ways; they even change what a user's public_html directory is called. In a mixed network, figuring out where the web server is hidden on a disk can be a real nightmare.

      So I just grab the latest stable source kit from apache.org, and compile it. That takes maybe 10 minutes on current hardware. I spend 5 minutes or so munging httpd.conf, changing only what I know has to be changed. I get as close to a default install in /usr/local/apache as I can. I run the command it tells me to run to fire up the server. If it works, I copy that command to wherever it belongs in some boot script. Total time, usually about 20 minutes, far less that what I'd waste repeatedly trying to figure out the installation on a collection of machines.

      I had a fun case a few years back on a project where the management had decreed a Netscape web server. Nobody could get it to run right. The usual reason was that it was installed and managed entirely through a web interface. Sounds fine, right? Yeah, until someone misconfigged something slightly, and the web server was a zombie. Now the managment interface is dead, and all you can do is reinstall from scratch.

      One day I said "The hell with this", grabbed the current kit from apache.org, and 20 minutes later I had a live server. The developers could go crazy building their site.

      Occasionally, I'd say "You know, we really should work on that Netscape server that we're supposed to be running." The reaction was always along the lines of "Yeah; we should, but in the meantime apache is running fine and we have stuff to do today." I talked to them recently, and they're still running apache. They also have an unofficial policy of always installing it from source, because they've been frustrated by the packaged installs that they find on linux distros.

      The apache gang has done a fine job of making an install from source fast and painless. In such cases, a package usually just makes your life more difficult. If you take the defaults whenever possible, you end up in a better situation than with most packages. All your installations for all vendors come out the same, and managing a lot of machines is very easy.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  7. OS is from a package by DR+SoB · · Score: 2, Insightful

    Your installing a OS from a package, so why not applications? Old programmers moto "Don't re-invent the wheel".

    --
    Mod +5 Drunk
    1. Re:OS is from a package by Captain+Pedantic · · Score: 2, Funny

      I realize your trolling

      Could you clarify your meaning there, please? Do you mean that you make a profit on his trolling, or do you bring it to life? Either way, I think that's pretty cool.

      --

      None are more hopelessly enslaved than those who falsely believe they are free. Johann Wolfgang von Goethe.
  8. Whatever get the job done by untermensch · · Score: 5, Interesting

    If you are working for someone else, maintaining servers that are intended for peforming specific tasks, then I think the best solution is to do whatever is most efficient at performing those tasks. If you really don't need the peformance gains brought by compiling from source (and you probably don't) and it's going to take you a long time to do the compiling, time that could be better spend actually doing the research, then it's not worth your effort. If however the compiling doesn't affect the user's ability to be productive and that is what you as sysadmin are most comfortable with, then it seems reasonable that you should be able to maintain the boxes however you like.

    1. Re:Whatever get the job done by ajs · · Score: 4, Insightful

      the best solution is to do whatever is most efficient at performing those tasks

      And if you've ever had to pick up and maintain a system from someone who left you will know that this is just about 100% wrong.

      The best solution is one that works and is maintainable. If you are willing to put in the extra work involved in making your from-source installations clearly maintainable and upgradable so that the next guy isn't going to have to spend 6 hours learning how everything works when he needs to upgrade foobnitz to version 2.0, then great. If not, think about letting someome else do that work for you.

  9. yup by rendelven · · Score: 2, Insightful

    I personally try to use the packages when I can. It makes it a bit easier for myself to keep track of everything.

    It's all in what you need to do. If you need those optimizations or special build options that aren't in the package, go ahead, it's what it's there for.

    --
    R.
  10. Simply by AchilleTalon · · Score: 5, Insightful
    build packages from source!

    Many sources include the SPEC file required to build the package.

    --
    Achille Talon
    Hop!
  11. OSX by artlu · · Score: 4, Interesting

    I used to be a huge debian fan because of apt-get and the direct install of packages, but I have migrated to OSX and find myself needing to build packages from scratch to work correctly. However, I will never hesitate to use Fink as much as possible. I think for 90% of what gets installed the packages should be fine, but if you know that there are certain optimizations that you can implement, why not build from scratch?

    --
    -------
    artlu.net
  12. My experience by Jediman1138 · · Score: 3, Interesting
    Disclaimer: I'm only 15 and am a semi-newbie to Linux.

    Anyways, I've found that by far the easiest and most simplistic and time-saving method is to use rpms or debs. But of any distro, Lindows has it down to one or two clicks...though, they're software database subscription is a serious money leech..

    If it was up to me, source would always be an option to use, and the install process for rpms and debs would be one click and automatically update themselves into Menus and such..

    Just a few thoughts..

    ___________________________________________

    --

    nothing.can.stop.me.now

  13. --No-Deps by Doesn't_Comment_Code · · Score: 5, Insightful

    My biggest grievance against packages is the dependacy fiasco. For instance, I have Red Hat at work. And the majority of the programs are .rpm's. Well there was a certain program that I could only get as source, so I compiled and installed it. It turns out that it was required as a basis for other packages I wanted to install. But when I tried to install those, it didn't recognize the prerequisite programs because they weren't installed via rpm.

    I don't care for the dependancy model of packages, and I'd much rather install programs myself. That way I know I'm getting the program compiled most efficiently for my computer, and I don't have to worry about dependancy databases.

    --

    Slashdot Syndrome: the sudden, extreme urge to correct someone in order to validate one's self.
    1. Re:--No-Deps by idontgno · · Score: 4, Insightful
      I don't care for the dependancy model of packages, and I'd much rather install programs myself. That way I know I'm getting the program compiled most efficiently for my computer, and I don't have to worry about dependancy databases

      That just means that you'll have to store the dependancy databases in your head. A release of a particular software package, whether it's a package or a tarball of source, depends on other software. Always. "config" goes a long ways towards working that out, but if it doesn't work automagically you're going to have to take it by the hand and lead it to wherever your copy of libfoobar.so.17 might happen to be.

      I've just started using yum for RPM management and I'm already liking it a lot. At least dependency management seems a bit cleaner and more automatic.

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    2. Re:--No-Deps by Urban+Garlic · · Score: 2, Informative

      For the record, the problem you describe actually is solveable within the Debian package system, although it comes under the heading of "advanced". You can build an actual package, of course, but short of that, you can make a "pseudo-package" that doesn't install anything, but has the required Debian package "provides" header. Then the apt package database will know about the capability, and will be able to install things which depend on the functionality you've put in by hand.

      I mention Debian because I'm aware of it -- it may be that the RPM system has something similar, I don't know it as well.

      --
      2*3*3*3*3*11*251
    3. Re:--No-Deps by Craig+Davison · · Score: 2, Informative

      With rpm, just write a .spec for your library or whatever it is you're installing, drop it in the source directory, and run rpmbuild to make an rpm.

      Making a barebones .spec that describes what the package provides is easy. Just modify an existing .spec from another package.

    4. Re:--No-Deps by ajutla · · Score: 2, Informative

      My biggest grievance against packages is the dependacy fiasco. That's why you use apt or yum.

    5. Re:--No-Deps by FyRE666 · · Score: 2, Insightful

      Yes, dependencies with RPM are its anchovies heal. I tend to start off installing via RPM until I inevitably encounter something that needs about 600 other RPMs installed first. Then I switch to source builds, at which point you can either forget RPM or use --nodeps --force for each new RPM install. Mind you, Gentoo can be as bad - if you don't constantly keep up to date then a single package update can pull in hundreds of (seemingly) pointless other package upgrades - many of these will offer questionable improvement (often you're forced to upgrade from fuzzlePack.1.2.33.3.r4 to fuzzlePack.1.2.33.3.r5 etc). So you might well end up pulling down 40mb of stuff you don't want to build a 200k library. (yes, I know you can just force portage to build a single package and ignore deps, but the maintainers tend to frown on that).

      So, in summary, stick with packages until you have to switch over to source to get anything done!

    6. Re:--No-Deps by Zathrus · · Score: 4, Insightful

      I need to write a compressed bitmap? Okay, then I include code to do so. I need to read a wav file ripped from a CD? Yup, my own code. Calculate an MD5? Inspired heavily on the RFC reference code, but essentially my own.

      Man, I'm glad other industries aren't as stupid as the software engineering industry. Otherwise car manufacturers would have to have steel foundaries, cloth weaving, a slaughterhouse and tannery (for leather), and innumerable other ancillary businesses on site just to build a car. And, of course, everyone would have to know how to do absolutely everything.

      What you're preaching is directly contrary to the practice of reusing code -- and not just your own. It's insane to reinvent the wheel every time you need to drive to the store -- but that's exactly what you're doing. It's one thing to understand the physics behind the wheel, or the foundary, or the paint shop. It's another to rebuild them from scratch.

      I hope there's never a bug in your code... because if there is you're going to have to patch every single code base, and re-issue every single binary (since you prefer to link statically). All because you felt it was better to not trust others and do it yourself. Not to mention the vast amount of time burnt re-implementing that which already works, and works extremely well.

      The code I'm working on uses a multitude of libraries -- STL, Boost (primarily for its shared_ptr's; we'd use more but much of it doesn't compile on our platform), OTL, libcurl, libxml, pcre, openssl, and others. In some cases we've ditched libraries and implemented our own solution (in particular, MQSeries, which sucked deeply). But to re-implement all of those libraries would literally add years to development. And to what purpose? To have a less feature complete, more buggy, less supportable code base?

      And, yes, we've even used libraries sometimes when the library pretty much sucks. Case in point is cgicc, which we used because it's one of the few C/C++ libraries that interfaces "properly" with fastcgi. It's full of bugs, full of really idiotic #define's, and doesn't implement things quite right... but fixing it took much less time than rewriting it from scratch. Because it doesn't do everything wrong, and there's no reason to toss the baby out with the bath water.

      No thanks. I'll happily replicate what's been done in every other scientific and engineering discipline -- to stand on the shoulders of giants while adding my own knowledge to the repository.

      But when a package links against it for the sake of using a single function that the programmer could have reproduced in under ten lines of code... Well, that just screams "laziness" to me.

      Sure. But that situation is pretty rare, at least among competent developers. If you're seeing that commonly, then you're using crap packages (and god knows there's a ton out there... I've ditched many packages because they had too many esoteric dependancies).

    7. Re:--No-Deps by Zathrus · · Score: 2, Insightful

      Why can't we just include the dependancies? IS that so hard?

      Good point, but it may actually be hard if your code is under a different license from a library you're using (namely, your code is more restrictive). But I'm not sure that's an issue either.

      This breaks alot of programs and in an rpm system only one version of a library or program can be installed??

      Well, there are ways around that. But if the program was linked against libfoo.so.a instead of libfoo.so.17.a then you're pretty well screwed.

      This, BTW, is the exact same thing as "DLL hell" on Windows systems, where multiple copies of a DLL may be installed, or a program may rampantly overwrite the existing version with its own (even if it's older!). Same story, different name...

      But still Its a bandaid solution for a big problem

      Well, GenToo's emerge system is essentially the same as ports from what I understand. But you're right -- it's a bandaid solution. What's the real fix? I dunno. If programs were linked against the full name of their libraries (instead of the symlink/hardlink shortened name) then it'd probably fix itself. Package managers are certainly capable of telling when a library is still required by a package, and there's no reason to remove old versions of a library until it's no longer required. It'd take a lot of packages being reworked, and probably a lot of devtools as well (like autoconfig, automake, etc).

  14. My experience by TwistedSpring · · Score: 5, Informative

    is that compiling from source can sometimes even be slower executing depending on your compiler.

    Also, better to install from packages because:
    1. They WILL work
    2. They install fast
    3. They are easilly de-installed
    4. They are painless
    5. Dependencies are installed automatically sometimes, and other times packages are the only way to resolve a dependency loop
    6. Most other OSes since the dawn of the home computer use pre-compiled binaries, and nobody has complained
    7. It is surely the developers job to make sure it compiles properly and do all the compiler error headache solving

    Packages are just so much nicer. A lot of the time, I can get pentium-optimised versions of the ones I want, and if I can't then 386 optimised versions are OK by me. The difference in speed one sees is pretty much only for the anally retentive, it is so minimal.

  15. Run Debian by jchawk · · Score: 2, Insightful

    Run debian, if you absolutely must install from source you can use APT to get grab the source that you need, compile and then build a deb for it so you're still using the debian tracking system. It really is the best of both worlds.

    For most packages though there really isn't a big need to compile from source.

  16. depends on the system by Evanrude · · Score: 4, Insightful

    I used to be a die-hard build from source person myself back when I ran slackware.
    Since that time I have gained more experience with production Linux systems.
    When it comes to managing production servers, I use Debian and typically only install programs that are in the stable tree.
    Every once in a while I have to build a deb from source, but only in rare circumstances.

    Now, when it comes to my development systems I am more likely to compile from source rather than rely on the packages to supply me with the latest and greatest.

    It really all just depends on what kind of stability vs. "new" features you need as well as ease of managment. Installing a package takes 30 seconds vs. compiling/installing from source can take longer and requires more hands on.

    --

    ~.Evanrude
  17. Depends by Richard_at_work · · Score: 5, Insightful

    I use OpenBSD, which like most of the BSDs has the ports tree, and also has packages. Most of the ports tree are built as packages and are available on the FTP sites, allowing you to either install 3rd party applications from source preprepared for the job, or install the package that has already been preproduced from that port. Best of both worlds, and indeed if you are after customisation and have a number of systems, you can make the changes on one system, and bingo - you have the package ready to roll out to the other systems.

    As for what I use? I used to use solely ports, but now I usually grab all the packages when I do a fresh install, and only use ports for what isnt available as a package, as the packages give me no disadvantage.

  18. Packages, definitely. by imbaczek · · Score: 2, Interesting

    Whenever a binary package for Debian is availible, I prefer it to hand-compiled source. First, it has all the Debian patches it needs. Second, it propably installs without a hassle. Third, it's easy to get rid of it, and last but not the least, apt resolves dependency problems without human intervention in 99.9% of cases.

    In other words, binary packages work for me :)

  19. From another student... by FreakyControl · · Score: 2, Insightful

    I can tell you as a grad student with 3 years experience working in an engineering lab, packages are the way to go. Not just in software, but generally in most situations. As others have mentioned, you have the ease of use, tech support, and the time savings. While you may eke out a little bit of performance, your time is of significant cost to the lab, with which you can be doing many other more valuable services. Also, as a student, you will likely only be there for a couple of years. When you leave, and something goes wrong, someone else has to sort through what you did to try and fix it.

  20. From source, definitely. by mod_gurl · · Score: 5, Insightful

    If you're responsible for the machines you run how can you abdicate that responsibility by using whatever some package maintainer decides to give you? At the University of Michigan we use Linux from Scratch to manage hundreds of machines that provide everything from web servers to IMAP servers to user Desktops & Laptops. The trick is leveraging the work used to administer one machine well out to hundreds of machines. The tool for this is radmind. Radmind doesn't require that you build your software from source, but it leverages the work you put into one machine to manage all of your machines. It also integrates a tripwire with your management software which means you can detect unwanted filesystem changes in addition to managing software.

    1. Re:From source, definitely. by Kourino · · Score: 4, Insightful

      If you're responsible for the machines you run how can you abdicate that responsibility by using whatever some package maintainer decides to give you?

      While in principle I can agree with what you're saying, this is a pretty insulting view to take of all the people who work on GNU/Linux distributions. (Or put another way, how am I better than every Debian developer combined? (Substituting Debian for your distribution of choice, of course.))

    2. Re:From source, definitely. by Hal-9001 · · Score: 2, Insightful
      how am I better than every Debian developer combined?
      Because you are most likely to know your exact hardware configuration than some nameless packager, so you can optimize your compile flags accordingly.
      --
      "It take 9 months to bear a child, no matter how many women you assign to the job."
    3. Re:From source, definitely. by awkScooby · · Score: 2, Informative
      If you're responsible for the machines you run how can you abdicate that responsibility by using whatever some package maintainer decides to give you?

      I agree. Except for the most simple minded of applications someone else has made decisions for you if you use rpms. Maybe those decisions are good enough, but maybe they aren't. The only way to be sure is to grab the source and build it for yourself. I'm building things to be used by 1-2 thousand concurrent users, so I do care about that extra 5% performance improvement.

      As important, if not more important, is that building from source allows you to turn off features you're not using. This can improve security by offering fewer chances for buffer overflows and such. Also it may improve performance.

    4. Re:From source, definitely. by Homburg · · Score: 2, Informative

      Surely, the logical extension of your argument is that you shouldn't abdicate responsibility by using whichever kernel some programmer decides to write, either. That's obviously ridiculous, and so is a blanket rejection of packaged software in favour of building from source. Installing pre-compilled packages isn't an abdication of responsibility, it's delegation - if you ascertain that a particular packager or distribution has standards you're prepared to trust, trusting them is no worse than trusting the power company to keep the electricity flowing to the machines.

    5. Re:From source, definitely. by More+Trouble · · Score: 2, Insightful

      When it comes to testing the software, it must be done against a baselined distribution.

      Sure, but by the same token you wouldn't have one baseline system. In our software development lab, we have a couple of supported RH versions, SUSE, Debian, Mandrake, FreeBSD, OpenBSD, and Solaris.

      :w

  21. The answer is .... by Archangel+Michael · · Score: 3, Insightful

    It depends.

    If you are advanced enough to compile source code in such a way that it performs better or in a tighter controlled manner, which suits the purposes you need better than off the shelf builds (packages), then by all means, build it from source.

    If on the other hand, you don't have a compelling reason to compile the source, then use the packaged product.

    I don't know about you, but for most of my servers, the extra configuration options needed to squeeze an extra few percentage points of performance isn't enough to bother running my own compile.

    Those that say they review ALL code before compiling for security (backdoors, holes etc) problems are probably lying. I am sure there are a couple people who do.

    Basically if you do it just so you can be 1337, you are just vain, as I doubt that most people would see/feel the difference.

    --
    Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
  22. Source and un-install by KenSeymour · · Score: 5, Insightful

    I would have to agree about using packages. One gripe I have about building from source is
    that most packages do not have "make uninstall".

    With packages, you have a much better chance of removing all the files that were installed with the packages when you need to.

    --
    "We can't solve problems by using the same kind of thinking we used when we created them." -- Albert Einstein
    1. Re:Source and un-install by Aneurysm9 · · Score: 3, Informative

      Which is why Portage is so handy. It builds from source and takes care of package removal. It also offers config file protection so a new version of a package doesn't stomp all over your carefully configured system.

      --
      There was Cowboy Neal at the wheel of a bus to never-ever land.
    2. Re:Source and un-install by goon+america · · Score: 4, Informative

      which is why you should always save the output of "make install" somewhere. I keep mine in /usr/local/install_logs

    3. Re:Source and un-install by Draco_es · · Score: 2, Informative

      My solutions for that problem:

      • stow
      • $ make install DESTDIR=/tmp/foo
        $ cd /tmp/foo
        $ find . -type f > /usr/local/installed/list_of_files.txt
      • build from rpm.src
  23. This is BSD vs Linux argument by gtrubetskoy · · Score: 3, Funny
    Any BSD user will swear by "build-from-source" and talk about how the ports are so great (and indeed they are).

    And any RedHat user won't really understand what the BSD user is talking about and will just keep on using binary rpms found from google or rpmfind. In a desparate moment one will use any rpm that seems to do the trick - nevermind security, PGP sigs, all that stuff...

    Seriously speaking, building from source is the UNIX way in my opinion. There is just something very heart warming and satisfying about seeing all the compiler messages scroll every time you install a package. (And try installing the native Java from BSD ports - several hours of pure joy!)

    1. Re:This is BSD vs Linux argument by idontgno · · Score: 4, Interesting
      (And try installing the native Java from BSD ports - several hours of pure joy!)

      I'm not sure whether to mod you -2 BSDTroll or +1 BSDFunny. However, I'll comment instead. (Commented earlier downthread, so it's already a foregone decision, but what the hey, you only offtopic once.)

      The only joy I get watching compiler messages scroll by is laughing my butt off watching all the warnings. Don't these people use lint?

      And that's funny only if I'm already in a good mood. Otherwise, I hate having to actually watch the unavoidable visible indicators of the quality of the software I'm about to start using. Just like most people don't like watching sausage being made...from live pigs...

      Yeah, I know, if I know so much, why don't I fix it? Because I didn't sign up to indentured servitude, I just want to use the damn software. I realize that violates the canon of Open Source ethics in the minds of the extremists, but I have a job to do and it's not fixing your damn object cast mismatches.

      OK, ok, cooling down now.

      Thank you, in all sincerity, to the authors of those software packages. Please forgive me if watching 2423 warnings per compile cycle makes me a little crazy.

      And that's why it was the best summer ever!

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
  24. Use the Source Luke by mike+collins · · Score: 2, Funny

    I always do.

  25. Why choose when you can have both? by Spacelord · · Score: 4, Informative

    Most package systems allow you to "roll your own" packages from the software you build from source. I use Slackware myself, so I first install my apps into a "staging" directory and build my package from there using the makepkg command.

    It takes an extra minute of your time when you're installing software but it really helps to keepi track of what software is installed on the system, what files belong to it, keeping track of versions etc.

  26. Source or Package? by bogtrotter · · Score: 2, Informative

    There's one overriding detail that you should consider.
    You're working for the professor. He's your customer. The customer makes the rules. The old saying "The customer is always right" is true. Most people don't know there's a second half to the saying. "The customer is always right, or he's no longer a customer", meaning if you don't do it his way, he could easily fire you, and rightfully so.
    Regards,
    bt

  27. Stow! by Abcd1234 · · Score: 5, Informative

    Personally, I use both binary packages and source. Basically, if my distribution has binary packages, and they fit my needs (recent enough version, etc, etc), I'll just use the packages. Why not? However, if I do decide I need to build something from source, I like to use GNU Stow to manage my software. Basically, Stow allows you to install your from-source packages in a nice, sane hierarchy (eg: /usr/local/packages/this-program-1.0, /usr/local/pacakges/other-program-2.4), and then Stow does the job of setting up symlinks into the traditional Unix filesystem (typically /usr/local). So, by using Stow, you get the easy management features of packages (minus dependency resolution) for your from-source build software. It's definitely saved my life... and it's especially useful in an NFS environment, as you can export your packages directory and then use stow on the workstations to install individual packages as you see fit. Quite handy. :)

  28. Building from tarballs can be problematic by Theovon · · Score: 3, Interesting

    I've often had a lot of trouble building programs from downloaded tarballs. Besides mysterious dependencies that I can't track down, sometimes things just don't compile, or they crash, or they produce errors of other sorts. But in many of those cases, I could download, say, an RPM of supposedly the same package, and it would install just fine.

    On the other hand, I've never had any problems. Emerging new packages deals properly with all dependencies, and things always compile correctly. And there's like a review process where packages are first added to portage as "unstable" and then once they have passed everyone's criticism, they are added to "stable". So far, the only "unstable" package I've decided to emerge was Linux kernel 2.6.4, and that all worked out brilliantly.

    Also, if you have a cluster of computers, you can do distributed compiles with, I think, distcc and/or some other package. Gentoo documents this VERY well. Plus, if your cluster is all identical machines, you can build binary packages once and then install them onto all other machines.

    BTW, Gentoo isn't for everyone. The learning curve is STEEP. I had to start from scratch and do it all a second time before I got everything right. (Although I am a bit of a dolt.) Setting up is complex but VERY WELL documented. Only once you've finished building your base system does the extreme convenience of portage become evident.

    Also, there are still a few minor unresolved issues that no one seems to have a clue about.

  29. Beyond personally - professionally by Roadkills-R-Us · · Score: 4, Insightful

    I agree. What the professor wants is a readily supportable, production environment, and tat's what you should supply. That means packages wherever possible. IFF there is a clear need, build from source- a 5% speed optimization may not be worth it (that's the prof's call). A 50% speed improvement (unlikely, but possible) would probably be worth it (prof's call). Otherwise, I'd only build from source when there was not a trustworthy package available, or to add features, fix bugs, etc.

    I've been in both your and the prof's position, and this is generally the best bet. It'll make the prof's life a lot easier when you're gone, too.

    1. Re:Beyond personally - professionally by Shakrai · · Score: 5, Insightful
      Otherwise, I'd only build from source when there was not a trustworthy package available, or to add features, fix bugs, etc.

      If you can't find a site with a trustworthy package what makes you think you can find a site with trustworthy source code? Or are you going to review every line of code to make sure it wasn't tampered with?

      The paranoia works both ways :(

      --
      I want peace on earth and goodwill toward man.
      We are the United States Government! We don't do that sort of thing.
    2. Re:Beyond personally - professionally by JAgostoni · · Score: 5, Insightful

      In the parent post's defense, you can almost always get the source code from the "source" or author. However, sometimes you rely on some other guy to produce a .deb or .rpm or whatever which you might not trust as much as the author.

      I almost always trust packages from the vendor and the distro and only trust "3rd party" packages when there's been tons of anecdotal evidence that they work.

    3. Re:Beyond personally - professionally by codegen · · Score: 3, Insightful
      I've also been both positions. As a graduate student and then during my 6 years in industry, I was extremely interested in building from source (custom kernels, custom libaries, webservers, the whole nine yards).

      However now as a profiessor, I've become more interested in focusing on building the tools that are part of my research. These I publish (or will publish once they are ready) as open source. But for the other elements such as development libraries, servers, etc.: I just want them to work.

      --
      Atlas stands on the earth and carries the celestial sphere on his shoulders.
    4. Re:Beyond personally - professionally by infra-red · · Score: 3, Interesting

      If you want to rebuild a package to get the optimizations out of them, you should probably learn how to build the packages.

      Build once deploy everywhere makes it easy to maintain. Last time we had to do a massive openssh upgarde on our equipment, the rpm based boxes were done in 15 minutes, while the source based boxes took about 2 hours. The real kicker is that we had (at that point) about 3 times the number of rpm based systems compared to source based.

      Source is great for the hobbiest, but as a sysadmin, I won't touch them.

    5. Re:Beyond personally - professionally by boinger · · Score: 2, Informative
      I can give an example and then some.

      SNMP-monitoring tools that can be compiled to pre-load MIBs often (usually?) default to "all". Setting it to "none" and feeding the MIBs in by OID only as you need them can show improvements of 1600%. I've done it myself.

      --
      Send your friends messages of love at fuck-you.org
  30. yes, hybrid by CrudPuppy · · Score: 2, Interesting


    build packages from source exactly how you want them , make a tarball of that, and then use ssh and key trusts to shoot them out everywhere (this coming from a person who maintains almost 1000 servers)

    it works very well.

    --
    A year spent in artificial intelligence is enough to make one believe in God.
  31. If I were your prof by October_30th · · Score: 2, Insightful
    If you'd make your case simply "It's the right thing to do" that would definitely not convince me - in fact, such argumentation would only aggravate me. It smells like an ideological argument.

    If you could demonstrate that installing/upgrading from the source results in a quantifiable improvent in maintenance or performance over a pure binary distribution, I would consider it. If there are no existing reliable benchmarks, but you'd make a good case, perhaps I'd let you turn your own workstation into a demonstration system.

    Anything else. No way. If it works, don't mess with it.

    I run Gentoo at home and, while updating with "emerge" is kind of nice, I've yet to find any compelling reasons why it'd be better than up2date or apt-get. There really are no measurable performance or reliability advantages.

    --
    The owls are not what they seem
  32. Source Daemons -- Package Libs by Fritzy · · Score: 2, Informative

    I tend to do a lot of customization for daemons like a Apache, and some libraries like PHP. However, it's best to leave most libraries to your packaging system being as many other packages are likely to depend on them. It's a balance. Compile when you want/need to... but try to limit it to major apps like daemons that not many other packages depend on.

  33. Source Builds = Administration Nightmares by JM · · Score: 5, Insightful

    I used to run an ISP, built everything from source, but eventually it got to the point where it was un-manageable.

    You end up with different versions, different compile options, upgrades are a mess, and it's hard to support.

    Another problem is filesystem pollution. When you do your "make install", it's hard to track what files are installed, and when you upgrade to a new version, you can't be sure it's clean, since you might have configuration files or binaries anywhere on your system.

    So, one day, I started to make RPM packages of stuff I needed, and modified existing RPMS, and sent all the patches to the community.

    What happened is that Mandrake accepted all my packages, so all I had to do was to install the standard distro, and all I needed was there.

    And eventually, I made so many packages that they hired me ;-)

    But even if I wouldn't work for Mandrake, I'm still sold on RPMs. You have a clean SPEC file that contains the pristine source code, plus the patches, and basically all the instructions to build the stuff. You can specify the requirements, you can easily rebuild on another machine, uninstall the old stuff, or upgrade, with a single rpm command.

  34. FreeBSD by bsd4me · · Score: 2, Informative

    I don't use Linux; I use FreeBSD. I build applications from source (ie, from the ports tree rather than packages) on my work machines, and my home machines.

    The biggest reason is that I can have macros in the global Makefiles that control how the application gets built (ie, globally build everything without LDAP support), and for things like PHP I can compile in exactly what I need, and not have to link against libraries I don't want.

    --

    (S(SKK)(SKK))(S(SKK)(SKK))

  35. Build you own packages, maintain your repository by grattwood · · Score: 2, Informative

    I've been working as a Solaris/Linux sysadmin since '99 and I can definatly say that over the long haul, packages are way better. However, I tend to custom build, or at least tweak, my own packages and create a local repository to store them in. Then create a local blog about what is installed where and anything special you had to do.

    Best of both worlds with documentation for the next admins.

    Oh yeah, -Os often gives better performance on modern processors than -O2 (IME) because more of the loop fits in cache.

  36. Do both by bigbadbob0 · · Score: 2, Interesting

    Why not build from source on machine 1. Then have machine 1 build a package to use on machines 2->n? Yahoo! Best of both worlds.

  37. Gentoo is not good for everybody... by lazy_arabica · · Score: 2, Insightful

    Yes, I know, it is a great distro (it is mine too), it compiles everything from scratch, let you optimize the produced code for your machine, and does it automatically and nearly flawlessly. But I don't think enterprises having to manage dozens of linux servers will ever be really excited about this. Why ? Because compiling simply takes *time*, and that is exactly what most serious system administrators are trying not to loose. However, I agree Gentoo is an excellent distro for geeks and advanced users, especially because of its BSD-like+compiling powerful packaging system. But it is ridiculous to stand up to say gentoo combines "the best of both binary and sources packages". It doesn't.

  38. Ports or Portage by iiioxx · · Score: 4, Interesting

    As a FreeBSD user, I build almost everything from source using ports. I never install from packages. My reasons for this are many and varied, but basically, I prefer to build software myself, with the precise options I need. When you use packages, you are at the mercy of the packager and their preference for options and optimizations. Several years ago when I used Linux, I often encountered problems of pre-built packages lacking a particular build option, and sometimes installing to odd places, or other strangeness.

    And once you've started using packages and package management, it gets harder to introduce source-built software into the same environment without screwing up your dependency databases, or worse - breaking things. So if a package lacks a required option, you really have to build your own package with the option included in order to keep things orderly. That's a lot more work than just installing from source.

    I'm not a Linux user anymore (several reasons) but if I were I to go back to Linux, I would use Gentoo, specifically for its Portage system.

    So, in my opinion, building from source may be a little more time and CPU consuming, but it is the better option for a controlled, tailored environment.

  39. Depends in Hardware and Purpose of Machine by polyp2000 · · Score: 3, Informative

    I have a dual processor Athlon MP machine; I use this machine for my Desktop at home every day. I use gentoo because I want the latest and greatest bleeding edge and I want it to runs as fast as possible on my set-up.

    Some distro's (mentioning no names) still build for 386 and I've come across distros that only utilise one processor at kernel level let alone build individual packages for multiprocessor support. I prefer to know that im using my hardware to the best of its ability.

    However if im installing a server; I'd probably choose a tried and tested distro Red-Hat for a colocated machine which i may never even get to see with my own eyes; Reason being a colo shop will have in house support staff able to fix any run of the mill problems that occur.

    For an in house server I might choose Mandrake or SuSe (more likely Suse) and maintain packages that way (last thing you want is to spend several days at work getting a gentoo box up and running!);however, stuff like apache / php etc i often like to compile fresh and configure how i need them. plus it makes patching that little bit easier if you have a specific set up.

    Generally speaking anything mission critical I'd try to use packages that have had a fair crack at being tested well after build.

    Anything personal you might not care too much about uber-stability like a desktop / research/hacking machine its generally fun to hack about with stuff and compile your own from source.

    --
    Electronic Music Made Using Linux http://soundcloud.com/polyp
    1. Re:Depends in Hardware and Purpose of Machine by Poppa_Chubby · · Score: 2, Interesting
      I'm pretty much just the opposite of where you're at. I generally prefer to use packages for a workstation and src on servers. The reason being that workstations generally have a vast amount of software installed with the accompanying dependency hell. Servers, on the other hand, usually only need one or two applications installed and its easy and preferable to maintain that by hand.

      However, this goal is difficult at best to undertake with most linux distributions, since everything is maintained through packages and the whole concept of third party software is very blurry. In the BSD world, that line is strongly delineated, so maintaining BSD servers with src installations tends to be much easier.

  40. FreeBSD... by BSDKaffee · · Score: 2, Informative

    has a great ports system which allows you to build software from the source automatically. I find with ports, you can get the latest software in a more timely fashion as a package is not always available and it can be built to use your machines entire potential. The package system is integrated into the ports system, however, so you can build your own package from the newest port then distribute it onto several machines. The other good thing about packages is for older machines with small hard drives and slow processors-you would probably run out of drive space (and patience) trying to build something like openoffice from source. That's just my experience using source and packages for a particular system.

  41. Easy. by AntEater · · Score: 2, Informative

    Build your software from source and then create a package. Distribute and install the packages. It is a trivial matter if you use Slackware. Other distributuions are not too difficult if you use the checkinstall utility. You get the best of both worlds.

    --
    Alex, I'll take keybindings not used by Emacs for $400....
  42. make your own "packages" by drdanny_orig · · Score: 5, Insightful

    I use fedora, and most often I get the *.src.rpm versions, then tweak the SPEC files as required, build my own binary rpms, and use those. Best of both worlds, IMO.

    --
    .nosig
    1. Re:make your own "packages" by tjwhaynes · · Score: 5, Insightful

      I use fedora, and most often I get the *.src.rpm versions, then tweak the SPEC files as required, build my own binary rpms, and use those. Best of both worlds, IMO.

      And the tweaking need not be that tricky or time consuming either. Decent defaults for building RPMS can be placed in your ~/.rpmrc file (or /etc/rpmrc, etc.). Once you have set your optimising settings, architectural preferences and packager name and cryptographic signature (if you want to submit them to other people), that's done for all future packages.

      I used to run a mix of RPM packages and tarballs (./configure --prefix=/usr/local && make && su -c "make install") so I could tell what was under RPM control and what was not, but it became annoying when I wanted to build a Source RPM with dependencies on a package I had built from tarballs. These days I usually try and wrap any install up in an RPM - it's not difficult once you get hold of a skeleton spec file for your distro and it saves much hair pulling later on. Also the dependency requirements of RPMs actually save time in the long run because you know when removing a package will hose your system (or part of it) .

      Cheers,
      Toby Haynes

      --
      Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
  43. Compile important programs from source, but!... by mgoodman · · Score: 2, Informative

    I prefer to compile most important programs from source.

    For example, if I'm running a web server, I'll install and configure apache, php, some database, etc. from source. But I really won't care if I have vim or cron or jabber or whatever installed from a package. If you do a base OS install with all basic/necessary components regardless of the application of the server, and then install important software from source, this will generally be the case.

    The key to managing this is creating a separate directory for your crap. I.e. don't just shove your stuff in /usr/local with everyone elses crap. If you're compiling it from source, it's important enough that it should be separated.

    Then, if someone else comes in you can say, "Everything is packaged, except for important software which is in this directory. All the source and configure files for that software are located in this directory, in case you need to figure something out."

    Just my two cents.

    --
    01100111 01100101 01110100 00100000 01101111 01110101 01110100 00100000 01101101 01101111 01110010 01100101 00101110
  44. Building from source is often just a bloody waste by multipartmixed · · Score: 5, Insightful

    ..of time.

    It's like the programmer who spends six hours hand-optimizing the inside of a loop that gets called once a day and already executes in 10ms... but ignores the fact that the program takes 20 times longer to run than it should because of an inefficient algorithm. This programmer doesn't know *why* his program is slow, he's guessing, and he will almost always guess badly. This is why profiling was invented.

    Look at it this way. Installing from the packages you get the following benefits:
    - You save time compiling (multiply this by the number of patches you have to add over the box's life time)
    - You save time tracking down dependencies
    - You have a standard platform you can re-deploy at will
    - You have something that another administrator can work on without asking where you shoved shit.
    - You have a package database you can query for version information, dependencies, etc.
    - You have an easily available source of "known good" binaries if you have a suspected intrusion problem.
    - Depending on the package system you use, you might be able to stay on top of security vulnerabilities with very little (or no) work.

    Now, installing from source, you get the following benefits:
    - You can pick where the files go (whoopie)
    - You tune the performance for your platform
    - You can select specific features
    - You can de-select specific features to save disk space

    The only one which gains you a lot 99% of the time is where you can select specific features which are turned off in the standard package. If you need those options, you build it from source. If you're doing ten machines, though, you build it from source on *one* machine, package it up, burn it, and install it from YOUR package on all ten machines.

    Saving a few CPU cycles is never worth saving a man-hour. You can use the man hour more productively on the macro-optimization level. Similarly, you can take the dollars that you would be pay the man and buy a new CPU with it.

    The same argument goes for saving a kilobyte of disk space. If found out that any of my guys spent *any* significant time trying to cut less than a gigabyte out of our application footprint, I would give him a footprint of my own, right in the middle of his colon. Disk is cheap. People are not.

    If you have an application is which is CPU-bound and running too slow, find out why (profile the system or binary), and build from sources only what you need to make your application conform to the target specification. Or, if that will take too long, just buy more CPU.

    Long story short -- tuning of ANY kind should not be done at the micro-level across the board, that's just a waste of time. Tuning should be done by profiling the system as a whole, identifying the constrants, and relieving them. If that requires micro-tuning of a few things, that's fine... but squeezing every last little bit of performance out of absolutely everything is either impossible or incredibly time-prohibitive. And, of course, if you were going to spend that kind of time, you could either buy new hardware with the money (remember Moore's law), OR you example the system more closely at the macro level and come up with a better way to do things.

    --

    Do daemons dream of electric sleep()?
  45. academia! by cybin · · Score: 2, Insightful

    i worked at a university in virginia in the music technology lab, where we had two linux servers that did everything from serve web pages to run netatalk. my boss (also a professor) liked the RPMs too, simply because after i left there was no guarantee he'd get any help from the IT department, and he understood how to use RPM from the command line.

    i guess in academia they are used to having funding for some things some of the time -- your professor probably wants to keep those machines running as long as he possibly can, because money has to be used for other things.

    and besides, compiling programs is a hard thing for the "sorta unix geek" to get his head around :) for a while i would recompile the kernel and he flipped out -- so i started using those crappy RPMs.

    fortunatly, i think this will change when people realize there is an ample supply of knowledgeable folks out there who can do this stuff. it's easier to find a geek now than it was even 5 years ago!

  46. Use Pacakges where possible by cmg · · Score: 2, Insightful

    If you have an application that you need performance out of, spend time compiling that once and then packaging it once and installing it on your 10 machines.

    When looking from the prof's view, it will be easier to get someone else up to speed after you have graduated if your machines stick closely to standard packages.

    Use the time that you'd spend compiling/installing doing more CS related activities.

    Most people (including myself) that have gone through the phase of wanting to compile everything get out of it as soon as they have some real problems to solve.

  47. Build your own packages! by PoochieReds · · Score: 2, Informative

    As an experienced SysAdmin, I'm kinda on the side of your prof. Packages give ease of installation of over many machines and (perhaps most importantly) proper tracking of files that are installed to prevent files from being overwritten, and to allow for uninstalls too. OTOH, building from sources gives you fine tuned control over what gets installed and where, and specific build options.

    So, why not have the best of both worlds? Build your own packages! I use EPM to do it and it's a breeze. You can get EPM at:

    http://www.easysw.com/epm/

    I'm not religious about building everything from scratch, but I like being able to include my own default config files, as well as have control over what gets installed where (I mostly manage Solaris machines, but often build Linux packages too).

    As a shameless self-plug here, I recently wrote an article for SysAdmin magazine on packaging with EPM. It's especially handy in multi-platform environments. If you want to see my article check out the Dec. 2003 issue of sysadmin mag:

    http://www.samag.com/articles/2003/0312/

  48. Re:Gentoo by maximilln · · Score: 2, Insightful

    Oh stop already. Unless you're building _every_ library from source then the optimization of later libraries is lost on the precompiled libraries they're dependent on.

    It's a nifty feature of Gentoo but how many users really want to wait for glibc? If they don't wait for glibc then are they really gaining anything significant when they build Mozilla manually as opposed to using a nightly build?

    Think Tetris. If you don't optimize from the very first row then optimization at row 15 isn't going to save your backside.

    --
    +++ATHZ 99:5:80
  49. Context by Second_Derivative · · Score: 3, Insightful

    For servers, go with something like Debian: good clean integrated system with timely and automatic security updates. Not bleeding edge, but if it's at all a serious server you really don't want it to be.

    Desktops, Ports based system all the way. Why? Because with something like Gentoo, it might take several days to compile but you can be assured you're not going to dependency hell anytime soon when you want to try the latest and greatest. Headers and such are installed by default, so you can usually compile something by hand and it will Just Work whereas if you're using three different unofficial package streams and you need to do some upgrade of a simple library somewhere which has an anal retentive versioning and dependency specification, attempting to apt-get that new version will cause your entire house of cards to come crashing down. I lived with Debian on a desktop like that for god knows how many years until I decided "No more". Yeah I have to wait a while with Gentoo but at least I only have to do it once.

  50. Re:Gentoo by TheCarp · · Score: 2, Informative

    This makes gobs of sense in some situation and very little in others.

    I grant that when my coworker build the beowulf cluster, it made lots of sense to have everything optimised out the hilt. However when I watched him build his desktop, and it took him, on a very modern machine just a year ago, nearly 3 days to have a full working system with X etc... thats overkill.

    I don't need an optimised ls and df... I can do just fine with them compiled for a 386. The vast overwhelming majority of binaries on my system will give no benefit whatsoever if compiled with all the optomisations to tweak it to the box.

    I am a fan of this...

    I use debian... I install everything from packages as a rule. However for those few, oh so very few, packages that really need customization, then I compile them myself.

    At this point, I can't think of a single package that I do that with right now.

    My basic view is this:
    Compiling something that I don't NEED to compile is a waste of my time and CPU. I also like the idea of NOT having to have a compiler on every machine I run. A production server should never have a compiler on it, doesn't need it. Now I know the security argument is silly, any cracker worth his salt can put a compiler somewhere and use it... however....

    Nobody should ever be compiling anything on a production server. If the machine is in production, then development should not ever be done on it. All that should be done elsewhere. SO why leave a compiler sitting there begging lazy admins to use it?

    (OH yea and every rule can and should be broken at times, but its important to understand the rule so you know when those times are... thinking about where compilers are needed and where they arn't is a good exercise in developing those disciplines)

    Overall, I think gentoo is neat... and on our solaris systems
    we are considering stealing portage and hacking it a bit to build
    solaris packages for us. Anyone else done this?

    -Steve

    --
    "I opened my eyes, and everything went dark again"
  51. Well, the *best* way is obviously... by gosand · · Score: 5, Funny
    Obviously, the absolute best way to maintain your systems is to install Windows Update. But since Linux is stuck in the dark ages, you'll have to manage your systems like the cavemen did.

    Now if you'll excuse me, I have to go reboot 100 systems.

    --

    My beliefs do not require that you agree with them.

  52. dear slashdot... by DrWhizBang · · Score: 5, Funny

    which is better, vi or emacs? ;-)

    --
    Schrodinger's cat is either dead or really pissed off...
  53. because by mgkimsal2 · · Score: 2, Insightful

    I'm guessing it's a bit harder to rebuild and duplicate environments exactly. If I build 3 machines today, it's not easy to ensure I can rebuild the exact same machines 3 months from now, at least not with the standard 'gentoo' approach. At least, not as easy as saying 'pop this mdk10 in and install'. You at least know what base everything is starting from.

    1. Re:because by Joseph+Vigneau · · Score: 4, Informative

      It's not really harder, I would argue it is in fact easier in Gentoo. To reproduce a Gentoo system, you need the list of installed packages (either from the 'world' file, or from 'qpkg -i'), and the global make.conf. You can easily emerge any version of any package, so if you don't want the latest tested code, you can request earlier versions of the packages...

  54. He took a Gentoo in the face at 250 knots. by thinkninja · · Score: 2, Interesting

    Duck and cover, incoming Gentoo zealots :P

    Personally, I install from packages (apt) wherever possible. If something is unpackaged and looks new and shiny, then I'll install from source. I really can't imagine managing a large number of applications without a package manger, even if it's something you've written yourself.

    If installing everything from source is your thing, you're probably already using Gentoo with its package mangagment. So the question is moot.

    --
    "The number of Unix installations has grown to ten, with more expected." (Unix Programmer's Manual, 2nd ed.; june 1972)
  55. apt-build by _aa_ · · Score: 2, Informative

    apt-build provides automatic source based package installation in debian. Not every package offers a source package, however. This is something I'd like to see expanded in debian.

    Also note the aptly named, though apparently dead project www.debtoo.org (google cache) which is based on apt-build. Don't let this stop you though, 'apt-get install apt-build' and give it a try.

  56. Not always the case by Anonymous Coward · · Score: 5, Interesting

    Sometimes the exact opposite is true, especially in terms of "community support". For instance, mod_perl, which for some reason Red Hat decided to ship a very early version. The typical response on the mailing lists for mod_perl or any other alpha/beta package RH included usually goes "try it from source, then email us" (that's after someone submits a reasonably complete bug report).

    Let's not forget the GCC fiasco and probably dozens of other examples where RH decided to "lead the pack" in terms of version numbers but not stability.

    Of course, then there's Debian woody, living in circa-2001 land.

    1. Re:Not always the case by jd142 · · Score: 2, Insightful

      Ah, but you see you're asking for support from the mod_perl list. If you are using the package from Red Hat, you should try Red Hat support or Red Hat specific mailing lists.

    2. Re:Not always the case by macdaddy · · Score: 2, Funny

      Debian made it into the 21st century? No way!

  57. On building from source by Kourino · · Score: 4, Interesting

    Optimization? Control?

    Man, what is this, Gentoo?

    Any sane distributor these days builds binary package with reasonable optimizations that won't break across architecture submodels, and occasionally releases binaries targetting submodels (e.g. PentiumPro-specific packages). On many machines, for many workloads, however, the model-specific optimizations just aren't that helpful. Obvious exceptions are floating point math on most platforms (especially x86, where x87 math code is a dog and should be replaced with SSE code if possible) and - I'm told - really slow hardware. (I'll be able to test that once I get these Indys running GNU/Linux.) In my experience, Debian hasn't really felt any slower than my LFS systems for personal use.

    So, I'll say this: if you have enough time to build everything you're using, do some careful speed comparisons between your self-built packages and the vendor's binaries. If there's really a significant speed increase, and you need that increase, source is the only way to go for the packages that need the speed increase. Otherwise, it's probably not worth your time.

    Unless whatever you're doing is extremely security critical, you can probably deal with the fact that server app foo has features bar and baz installed that you won't use. If you can't, you're probably auditing the source of everything you use anyway, and that doesn't sound like the case, so "control" probably isn't a real issue here either. Control can be found in config files as well as in the configure script.

    People say, "but package dependencies suck!" Well, yes, rpm (the program) isn't built to deal with dependencies that gracefully. If it annoys you that much, go install apt-rpm or something, or even Debian (gods forbid). Package management isn't rocket science.

  58. Depends upon your hardware. . . by bplipschitz · · Score: 2, Insightful

    this is coming entirely from a *BSD perspective [especially FreeBSD], but the older and slower your hardware, the more you might depend upon packages, just because they take less time to install.

    That said, I routinely build stuff from source on a Pentium Pro 200 MHz dual CPU machine at work. It's not our main server, so the performance hit is never noticed.

    Portupgrade is a absolute must on this machine, as we have all kinds of software running on it. Without portupgrade, I'm sure it would be a nightmare.

    In the end, it's whatever works best in your situation, and to have this as 'news' on slashdot seem really freakin' ridiculous.

  59. my $0.02... by Raxxon · · Score: 3, Informative

    For quite a while I used RedHat and did enjoy the ease that package management gave to a system. For a workstation equivilant, I still agree with this solution in general. However having run through Linux From Scratch (www.linuxfromscratch.org) I see that on a server-class machine, there is a TON of unnecessary bloat. Why should it take a GIG of space , or more, to host just a Web server with MySQL and FTP access? With LFS I can build a specific purpose system and get that footprint down to around 350 to 425mb and that's including the kernel sources being left for recompile and a full compile environment. I've been told that some people can get the same functions stripped down to less than 200mb (this is all of course NOT counting your SQL databases).

    At this point there needs to be a big fork somewhere to divource the Linux Desktop from the Linux Server. Linux will do both, but one should not cause issues for the other. If a desktop user wants to run a FTP server, they should be able to. If the server admin wants to have a mail client (pine) or an IRC client (BitchX) installed for accessing information, he should be able to. But these features should be implemented with that specifically in mind. Not installing half a million libs because *maybe* the server admin wants to install addon XYZ for pine and it needs this lib while pine itself doesn't...

  60. Use RPM's or DEB's if at all possible. by BenRussoUSA · · Score: 5, Insightful

    I've been a UNIX sys-admin for about a decade.
    My advice is that for a workstation that is managed by an individual you can let the admin do whatever they want, but for any server that has to be stable and maintainable you want to stick with a well maintained package repository and try to avoid 3rd party packages and tarballs if possible.

    You have to understand that there is a software stack in most services.
    With the kernel and core libs (like glibc) and such at the bottom of the stack, and applications like Evolution at the top of the stack. In between you can have gdb and openssl and various perl modules (in AMAVIS for example) and you have sasl stuff which may be related to pam and openldap and cyrus or wu.... etc..

    The thing is that even though all of those various pieces of the software stack may be linked against different libraries on the box, the maintainer of the library code may not have a QA group to co-ordinate regression testing and compatability testing before the latest CVS commit is enacted to fix a bug referenced in a CERT alert.

    RedHat and Debian and SUSE and all the others have package repositories, the repository maintainers do an amazingly fantastic job of QA and testing to make sure that new patches don't break your software stack. As an individual you simply can't keep up with that.

    For example the Development team that takes care of OpenSSL doesn't backport their bug fixes and security patches to old versions of the code. They just maintain the latest release version and the current CVS version. If you have an old server running IMAPs and HTTPs and SSH and SMTP/TLS and such, and CERT announces a bug in openssl vX.Y, then the OpenSSL development team will certainly release a patch for the latest version which may be version Z!

    That might cause you to have to upgrade APACHE or wu-IMAP or OpenSSH or Postfix etc... Those things might then have divergent dependencies that would cause you to go and rebuild half a dozen other packages, and so on and so on. Also, do you remember all the magic flags you used for configure and make? Do you have the same environment variables set today that you did the last time you built PostFix? The possibilities for problems are endless. And if you do have a problem you are kind of on your own since your system will be a unique box. Whereas if there is a problem with a standard RedHat or Debian package, then you can always go to the general newsgroups and chances are there are a dozen other "me too" posts with answers already.

    It is much easier to use apt or up2date.

    So, unless you have a very good reason for using a tarball on a production server that requires reliability and security and high availability, then you should stick with packages.

    If you want to build the packages from source, feel free! RedHat and Debian and SuSE make the SOURCE packages available so that you can dig in and read all about'em. I'm sure the Debian team could use a new package maintainer, if you are addicted to compiling and testing things, check them out.

  61. Have your cake AND eat it, too! by tmoertel · · Score: 5, Insightful
    Packages and package managers solve a real problem: Keeping track of software installations, their files, and their interdependencies is hard, hard work. By packaging software and using good, "higher-level", package managers (like yum and apt-get) you can delegate most of this problem to the computer. That's a smart move.

    It's still a smart move if you're building from source. Just package your source. Then you can build the sources under the control of a package manager (like RPM), and install the resulting packages. You get the full benefits of build-from-scratch and the full benefits of using packages.

    This is exactly the approach I use. In fact, I'm a bit more strict about it: My policy is that I don't install any software that isn't packaged. If I need to install something that isn't packaged, I'll package it first. If I don't like the way a packager built an already existing package, I'll repackage it.

    The bottom line is that creating your own packages (or fixing packages you don't like) is much easier than maintaining a from-scratch, unpackaged installation. Or ten of them.

    To get you started, here a couple of RPM-building references:

    Don't give up the benefits of source. Don't give up the benefits of packaging. Have them both.

  62. Stow: uninstall from source by cquark · · Score: 3, Informative

    Stow lets you install each package in its own directory (i.e., /opt/pkg-x.y.z), then symlinks them into a unified /usr/local tree. Stow -D pkg-a.b.c removes the symlinks for just that package, letting you do a single package uninstall. You can manage the files on a per-package basis, while users can ignore all the details, as it looks like everything is installed in /usr/local/bin to them. Stow provides a simple solution for building packages from source on any UNIX.

  63. checkinstall is your friend by Dunkirk · · Score: 2, Informative

    I use SuSE (formerly RH), so I'm "into" using RPM. OTOH, I usually only like RPM's that have been built by the distro's creator. (Noteable exception: PackMan RPM's for Xine.) Anything else, I usually compile from source and stick in /usr/local. Checkinstall is what you need here. After configure and make, you ``checkinstall -R'', and it makes an RPM of whatever would be installed with ``make install''. That way you can take it back out very easily.

    --
    Acts 17:28, "For in Him we live, and move, and have our being."
  64. The real issue by Starky · · Score: 4, Informative
    The real issue is whether you feel the time savings you gain from installing packages outweighs the increased performance and your own increased knowledge regarding your computing environment you gain from building from source.


    You can have the best of both worlds with Gentoo. I began using it about a year ago, and I am sold.


    Building from source using Portage is almost as easy as installing a Red Hat package. The community is extremely proactive. (I have only had problems installing or updating a couple of times in the last year, and the problems were remedied within a day or two and the portage trees updated after I submitted a bug report.) And you don't give up variety. The number of ebuilds available in the Portage tree is simply astounding.


    I am even using it on my laptop these days and am extremely pleased that it seems to work well as both a server and desktop distribution.


    Hope this helps :-)

    --
    -- My choice of computing platform is a symbol of my individuality and belief in personal freedom.
  65. Depends on who is paying. by jellomizer · · Score: 2, Interesting

    If the professor has some sort of grant he may prefer a package because it is quicker to setup and save time so you can be more productive in other areas. If it is some sort of continuing income then you might as well try to incorage recompiling the source because you get more out of it educationally.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  66. But less than 12? by dmccarty · · Score: 2, Funny
    I work with a professor performing research and managing more than ten Linux based servers.

    Is that, like, 11 Linux-based servers?

    --
    Have fun: Join D.N.A. (National Dyslexics Association)
  67. GCC optimizations by vlad_petric · · Score: 4, Informative
    If you used Intel's C Compiler then yes, it would be worth it (for instance icc does automatic loop vectorization, and different processors have different vector support) - with gcc however the speedups you'd get are minimal (if not inexistent ...).

    icc, btw, is free for non-commercial use on Linux.

    --

    The Raven

  68. Re:Supprt: Naa, that's not true at all. by cbreaker · · Score: 4, Interesting

    No way.

    Usually when one builds from Source, they install it to wherever the original developer has it set to by default. Unless you did some heavy patching, the software will very likely be more "true" to the original software then many packages.

    RPM's for distributions such as RedHat or Fedors often have to move configuration files all over the place to mesh with the OS properly.

    You're more likely to be able to sit down at a strange Linux box and troubleshoot whatever program when it's compiled from source tarballs versus an RPM. Unless of course, you know the RPM, or the RPM doesn't do anything funky.

    Considering the stuff is Open Source, and chances are the programs are not under a paid-for support contract, it's pretty safe to say that BOTH methods would have to be supported "In House." And if not, your support contract could very well support the source compiled versions anyways.

    I choose the Gentoo way. Everything is compiled from source; it's just nice and automated. Almost never have I run into something where the program had to be modified to fit the distribution.

    --
    - It's not the Macs I hate. It's Digg users. -
  69. Depends on your distribution by MerlynEmrys67 · · Score: 2, Interesting
    I would choose a distribution based on either source/binary packaging. Don't bother fighting your distribution (have the worst of both worlds)

    That said - for a work machine, I prefer binary packages. I just want the damned thing to work, work well, and not futz with it.

    For a hobby/play/research machine - I prefer source packages. I have found there are many compilers out there that will massively outperform GCC, especially when you turn on those crazy optimizations that most binary distributions won't (plus optimize for the EXACT processor I am running on, etc.)

    --
    I have mod points and I am not afraid to use them
  70. Re:Many words for you... by Brazilian+Joe · · Score: 3, Insightful

    Actually, you can 'emerge -buildpkg foo' and share packages between machines. if you are managing multiple machines, chances are that you will not have each one with an unique configuration, but only a few profiles.

  71. Source-based, binary-packaged Gentoo by strider(+corinth+) · · Score: 4, Interesting

    My arguments on why to use a source-based distribution have been covered in other posts, so I won't repeat them here. I think Gentoo provides a solution that will satisfy both you and your professor: you can use a source-based, custom-built binary distribution.

    As you probably know, Gentoo is a source-based distribution, but it also allows binary packages. Many (such as Mozilla Firefox) are distributed by Gentoo as source and binary; you can choose to install either. The ability to build a binary package from a source .ebuild (the file that describes to the system where to find the source and how to build it) requires adding only a single flag to the package compile command, ebuild.

    Additionally, since (if I read you correctly) you're probably using similar hardware for each of your machines, it would be trivial to set up a compile box which would produce binary packages for your other boxen. Packages compiled for your architecture would be faster than most binary-only distributions (many are still compiled for the i386 architecture), and writing a new ebuild is trivial compared to writing a new spec file. (Trust me; I spent a quarter writing a paper on the topic while I was in school, not to mention having had to do it myself in the Real World.)

    Finally, Gentoo integrates and tests its packages. Ebuilds come with Gentoo-specific patches, so you don't have to spend the time to make each source package work with the rest. This is probably one reason why your professor likes binary distributions: they all work together, and enough people rely on them that if something breaks, it gets fixed. A package-based Gentoo distribution would allow you to leverage that, while keeping your machines unified in their versioning (as much as you want them to be, at least) and also provide all of the benefits of a source-based distribution.

    --

    Love justice; desire mercy.
  72. What would a time/dollar evaluation say? by plcurechax · · Score: 3, Insightful

    How you feel about the ease and simplicity of installing and maintaining packaged programs versus the optimization and control that can be achieved by building from source? What are your experiences?

    Humans do not scale well, they have very low bandwidth of information sharing, and have high latency (i.e. you can't get ahold of them). Humans are also expensive, wander off into different jobs, graduate or drop out of college, etc. So I tend to prefer the reducing human cost of the system administration complexity as a default position.

    So my gut feeling is that unless there is a major time or dollar savings in the optimization by building from source (i.e. avoid buying 10+ new CPUs for the systems, or computation runs take a day less) go with the reducing administation complexity by using a package management systems so that you can concentrate on your actual goals (research, profit, or whatever).

  73. Depends. by WWWWolf · · Score: 2, Interesting

    My general idea is that if a pre-built binary is available, unless there's a good reason not to use it, I use it. The pre-built binaries are not always 100% cool, at least according to some people, but they tend to work for me in most of the cases.

    I'm usually using prepackaged binaries if they're out there in a reasonably well-documented repository - that is, included in Debian, in some rare cases I might even consult apt-get.org.

    For stuff that Debian doesn't yet have, or that absolutely insists that I build from CVS, there's always GNU Stow for easy management of stuff. I also build kernel from source using make-kpkg (because, once upon a time, it was a great Heresy to use the Pre-Packaged, Unoptimal Kernel, and building the kernel seemed to be everyone's baptism by fire so to speak).

    The reason I'm often relying on pre-built binaries is that I'm a very patient person except when installing software (having had a share of installing proggies for friends and relatives tends to hurt one's very being), and I just prefer to have a quick and easy installation.

    Building from source always seems to involve installing required development kits, and then million and one little bits and packages in semi-random order. There have been some pathological cases like mp1e / rte / whatever the hell it was that seemed so complex and convoluted that I needed a week's rest after that, or something like that.

    Then there have been cases where I haven't been even able to build the things due to system constraints. Back in the early days of GNOME, it was hell to try to compile MICO on my Pentium 166MHz when I had meager 32 megs of physical memory, and trying to grab the last available bits of swap space from my 6 gigabyte disk... Oh, and this happens ocassionally even on recent times: I was unable to build Ardour on my current machine. Glad I found it from apt-get.org, and it's now in main Debian tree too.

    I'm just secretly hoping that Debian goes i586 instead of i386 some time...

  74. Amen. by Sevn · · Score: 5, Insightful

    What some people don't seem to understand about Gentoo or the BSD's is that not everyone is hell bent on world domination and market share. Some people want something specific, and Gentoo and the BSD's are there for them. It's not like they are ever going anywhere. BSD "despite the rumors" has never done anything but grow in usership with the steady, yet slow trickle of new users and the fiercly dedicated long time users. Gentoo is growing rather fast, but will no doubt plateau off and settle in the same way the BSD's have. But by all means, continue to have your OS flame wars and make your comparisons and talk about market share or other things that aren't important or even remotely interesting to the majority of most Gentoo and BSD users. It's very humorous. :) HAVE FUN STORMING THE CASTLE!!!

    --
    For every annoying gentoo user, are three even more annoying anti-gentoo crybabies. Take Yosh from #Gimp for example.
    1. Re:Amen. by Halcy0n · · Score: 2, Informative

      They already have one based off of Anaconda. I have no problem making things easier...I just don't think it should be their ultimate priority to try and become like Mandrake or something like that, and if they want to go that path, I'd hope they would keep the old way of installing.

      --
      Mark Loeser
    2. Re:Amen. by mvdwege · · Score: 2, Informative

      I don't know if you still get to read this, but if you use unstable in your sources, try installing apt-build.

      As long as there are Debian source packages available, it will build everything from source (including dependencies) with whatever flags you like, and put the built packages in a local repository. Just add that repository to your sources.list, and you can install locally built and optimised packages of just about everything.

      It is not quite up to the standards of usability of Gentoo's portage or BSD's ports system, but it works quite nicely.

      Mart
      --
      "I know I will be modded down for this": where's the option '-1, Asking for it'?
    3. Re:Amen. by dotKAMbot · · Score: 2, Insightful

      Seriously dude, you are being ridiculous.

      What are you saying? That because a majority of the people in the world use Windows, Gentoo should have a flashy installer?

      If we give all the distros flashy installers and gear them to be simple and not as powerful, I will be in chains with the rest of them, so lets cut the nonsense.

      People use Windows/Mac/Fedora/Gentoo/BSD/Amiga/etc because they want to, and that what fits them best. It makes sense, and there is nothing wrong with any of those choices. Stop trying to save those that don't want saving.

      daniel

  75. FreeBSD offers a one-line solution to the debate by fahrvergnugen · · Score: 2, Informative

    #portupgrade -a

    or, if you prefer packages

    #portupgrade -aP

    --
    Even Jesus hates listening to Creed.
  76. This Really Isn't Either-Or by Chris+Tyler · · Score: 2

    This isn't an either-or situation.

    One of the main design goals of the RPM system (the most common package format, used in RedHat/Fedora, SuSE, Mandrake, Conectiva, and others) is that you can reliably rebuild packages in an automated way.

    The meta-data provided by a package system is essential when maintaining production servers -- you need the ability to easily figure out which package owns a given file and what will break if you change something. This is not nearly as critical for a home machine, or a system that will not be running for years, gradually upgraded over time.

    If the binary package works for you, cool. If you want to rebuild with the latest libraries and better optimizations, or for a newer architechture (amd64 vs. x86 for example), then go for it.

    Most .src.rpm files will use the ./configure provided with the package, which will generally figure out good defaults for your system, and you can further tweak this with your RPM macros.

    If there's no RPM for something you want to install, then create one! It will take you half a day to make a really good RPM the first time, but just an hour the second time, and you'll have it down to 5-10 minutes + the compile time after your first dozen.

    And to get out of dependency hell, use yum or apt/synaptic.

  77. At the mercy of package builders by bangular · · Score: 2, Insightful

    When you use binary packages you are generally at the mercy of how the maintainer decided to build the package. Want mysql with --with-lo-mem? You're stuck either without it or stuck trying to find someone else's build. I understand the need for binary packages. How many people would need coreutils with a specific build option? OTOH, how many people need Apache built a certain way. If you're using a binary package with something like apache that probably needs to be built for your needs, you done missed the boat.

  78. Depends on the program by AciDive · · Score: 2, Insightful

    If the program is available for my favorite distro (Debian) as a package I will use the package. But if there isn't a package available then I use will compile from source. But as most of the other posters have pointed out it also depends on the program and if I am testing it or if it is for a production system. If it is for testing then I take the package over the source if the package is available. But I, like many others here, will usually compile from source if I am going to us the program in a production environment so I can get the pest performance for my system.

    --
    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect." Linus Torvalds
  79. Different stages by matt-fu · · Score: 5, Insightful
    As far as as I can tell, there are four stages of sysadmin as it relates to installed software:

    1) I am a newbie and have to use packages for *.
    2) I know my way around. I like the level of control I get with compiling/know how to code/read far too much Slashdot. I compile by default.
    3) I manage more than three boxes in my basement now. Having the ability to back out of system changes without a full OS reinstall is a necessity. I build my own packages from source that I've compiled.
    4) I manage more than just three boxes in a department now. Now I have to deal with politics, ordering hardware, the freakin' network, and I generally have time for sysadmin. On top of all that I now have a family so spending two or three extra hours per day on my Unix hobby is no longer feasable. Precompiled packages work just fine.

  80. Fink is the reason I hate package managers by weston · · Score: 2, Informative

    However, I will never hesitate to use Fink as much as possible. I think for 90% of what gets installed the packages should be fine

    90% of what gets installed when you use Fink has nothing to do with what you're installing.

    I've given Fink a shot on a couple of occasions over the last two years, and every time I've invoked it, it's come up with false dependencies. X11 is not necessary to install, say, the Python interpreter, and there've been dependencies far more ridiculous than that.

    I've had the same problem with the CPAN shell. RPMs, on the other hand, seemed to fail to install necessary things.

    I build from source, then, simply because I don't trust the dependency handling from package managers. It's true that I have to pay more attention to such nonsense and would love to have it automated, but until I find a package manager that gets dependencies right, I'm going to have to do that anyway.

  81. Devine Guidance by buffoverflow · · Score: 2, Funny

    God intended man to compile from source. It's the 11th commandment.

  82. my way: some source, mostly binary by Skapare · · Score: 4, Informative

    I build the mission critical programs from source code, and just let the rest be installed as binary packages. I build from source even if I don't need to just to be sure I won't have extra unexpected issues should I ever need to actually make modifications to source and rebuild. I really don't have very many local modifications, but I'm prepared just in case.

    Additionally, I do this all on one master machine (with a backup of it kept live on another machine), build binary packages of my own from my source builds, and install those packages on the actual servers. That way I have even more consistency, though at the cost of ultimate optimization. But I think it is better to be able to quickly reinstall a machine, as well as use checksum verifications that there are no trojans.

    I use Slackware, but this could be done with most systems, including FreeBSD, Linux (most distributions, including Debian and the RPM based ones), NetBSD, OpenBSD, and even Solaris.

    --
    now we need to go OSS in diesel cars
  83. Re:Use sources by Anonymous Coward · · Score: 2, Funny

    People with jobs managing servers use binary packages. Real geeks work at Wendy's and live in their mom's basement.

  84. Building from source has it's uses by petrus4 · · Score: 2, Interesting
    >- You have an easily available source
    >of "known good" binaries if you have a
    >suspected intrusion problem.

    A rather dangerous assumption to my mind, this one. I've heard of Red Hat releases in particular making it to the shelves while still having at least the odd security flaw. Of course you're not going to have time to go over it with a fine-toothed comb, but if you know how to read code I'd give at least really critical apps a cursory once over. It's better than your system going down or being invaded by some anarchistic 14 year old, anywayz IMHO.

    As well as the security/stability issue, one of my main reasons for changing to Linux has been the level of customisability. I suppose we can let overworked corporate sysadmins off the hook for wanting to use predigested distros, particularly if they have to deploy to a lot of machines, (even the most broken distro release is likely to be infintely more secure than the IE+OE knock-out punch ;-)) but I'm not sure anyone else wanting to call themselves a respectable Linux user has an excuse.

    To me, compiling from source is one of the main reasons for using Linux. The ability to compile exactly for your CPU and particular environment, coupled with the security of knowing that what you're getting is exactly what you think it is, and not something that's going to turn your system into a script kiddie gang's next 0-day ircd.

    If you need something that can be deployed on a lot of machines, buy standard hardware that you know Linux supports, (avoid exotic Winmodems, onboard cards etc) prototype from source on one machine, and then mirror it to the rest. To me, a secure, stable, well-configured system is something that cannot and should not be attained in five minutes, and any corporate sysadmin who thinks it should be possible, ought to look for a career change. Just as it's true that in the rest of life there is no such thing as a free lunch, when it comes to security, the emphasis should NOT be on short cuts.

  85. Listen to Him by jmhodges · · Score: 2, Insightful

    Do what your professor wants. Why you ask? Because its your damn professor. He will be happier with a package management system that he feels comfortable with. This will make him happier with you. Do not trifle with the grey beards, they have powers you do not yet comprehend.

    I, myself, am working with a professor on a momentum problem generator in Perl (we're physics people) and I was given a nice equation solving library that he wrote for another issue. I've showed it to a number a people with years (1 or 2 near a decade) of experience with Perl and they said that it was some of the worst code they had ever seen. I thought the way I had to interact with it was stupid and klunky. One giant kludge. I fought it in my own head but tried not to let my emotions about it out in front of him. So I worked at it again and again and you know what a few months later he, a peer of mine and I will be doing a seminar for our deptartment on it this April. The code wasn't as awful to work with as I thought (though to this day I wish it wasn't so klunky) and it worked. I just had to suck up my pride and get it done.

    Don't argue with them. Make their lives easier and you get to see the grey beards happy side. May you have many publications in your future.

  86. Packages by Chanc_Gorkon · · Score: 2, Insightful

    I do packages when available and use whatever package management system available be it apt, fink, darwinports or whatever and I use whatever format for the packages that the management system needs if there is one. I have used rpm, darwinports,deb and llp(AIX). Packages with a management system allow you to easily install and uninstall items when you need to. They also ease upgrades.

    --

    Gorkman

  87. Re:Building from source is often just a bloody was by ameoba · · Score: 2, Informative

    The original poster has obviously never dealt with any number of machines. Building from source (with or without a package/ports system) is great fun for a single user systm. Once you get to multiple multi-user systems, it's just not worth the trouble to optimize one program by 5% when nobody ever cares about speed, just that they deleted an important email they've had sitting on the server for the last 18mo and never bothered reading.

    For some things, building from source is unescapable, but with a large number of systems what you want is something that can easily be done itendically to any number of systems with little to no effort.

    Right now, at work, we're trying to transition over to a system that uses Debian with FAI to do roll-outs/reimages and Cfengine to handle updates & other administrative changes (all the while, putting config files in CVS). About the only thing that's going to be custom compiled is going to be our kernel and we're only doing that 'cuz we like some custom patches applied to it.

    --
    my sig's at the bottom of the page.
  88. The point? by Anthony+Boyd · · Score: 5, Insightful

    Wow. There sure are a lot of posts about which is better, but I don't see any comments that deal with the underlying problem. And that is this: don't get into a pissing match with your professor. Seriously, what are you hoping to accomplish here?

    If you were thinking that you'd get tons of pro-compiling comments, and then put that in front of the professor, stop right there. Coming to Slashdot for validation of your side of the argument is about as helpful as those wives who write to Dear Abby about their husbands. Because no husband on Earth is going to appreciate getting chastised by Dear Abby, and if Abby sides with him, he's going to gloat. It's lose-lose for the wife, just like it's lose-lose for you if you try to use Slashdot as leverage. Screw with the computers that the professor relies on, and he'll find a way to "thank" you for it. Don't sabotage yourself.

  89. Build optimized packages from source by rwa2 · · Score: 2, Insightful

    Hey, you get the best of both worlds... easy install, maintenance, uninstall; plus everything is optimized and you still get to say that you build from source "just because you can".

    We'll make a Debian package maintainer out of you yet!

  90. SOURCE by macdaddy · · Score: 2, Informative
    I always compile from source for *any* outward-facing daemons on all of my servers. I do this for many reasons. 1) I can strip out all the unnecessary modules, plugins, features and other crap from the installation that I don't need. This streamlines the overall installation. This has been benefits: 1a) It removes all unneeded features and leaves you only with what you need. The fewer compiled in features the fewer chances their are for your installation to be vulnerable to attack. 1b) The less misc crap that's compiled in the CPU has to deal with the better. Less crap means it will run noticeably faster. 2) I can provide compile-time optimizations for my specific system, not some generic everything's supported package like what Redhat builds. This lets me select which gcc optimizations I want to use, not some Redhat engineer that's trying to compile a binary that will work on almost any x86 system. Think about the Redhat-compiled kernels. Talk about bloatware. They have to build a kernel that will run on almost any system out of the box. That means you have an unbelievable amount of crap compiled in that you sure as hell don't need. Eliminating that bloat provides a significant performance boost.

    That said, perhaps you two can come to a sort of compromise. You didn't say what distro you're using some I'm going to assume you're using Redhat. You could use RH's source RPM functionality to both compile packages the way you want them compiled and yet make it easy to distibute them to other machine and update them with little overhead. It's not too terribly hard to do. Frankly I won't ever do it this way but I can understand if someone does. I currently maintain an identical directory structure on all machines of tarballs (NFS shared of course) and host-specific source files (exploded tarballs in an organized fashion of course). I can quickly copy and paste the previous ./configure options from the older release (after reading the Changelog and docs) and get that package compiled and installed within minutes. A few minutes per host doesn't hurt me any.

    Personally I'm looking into switching to Gentoo. It sounds like it matches my style of administration better than RH (anything's better than RH). You might consider trying it out as well. portage is supposed to be excellent.

  91. It depends on the app by Angst+Badger · · Score: 4, Informative

    I prefer to install everything from packages when I can. For stuff that I have to upgrade frequently -- usually server processes that need security patches -- I do it from source, partly because I prefer not to wait for a package to become available, but mostly because it saves me from the tangle of dependencies that come with packages. (The difference between RPM hell and DLL hell, as far as I'm concerned, is only that you don't have to pay for the privilege of RPM hell.)

    In general, I haven't found that there is any real optimization benefit in compiling from source in most cases -- the kernel itself and Apache being the primary exceptions. I'm sure it's there, but it's small enough to be unnoticeable in most cases, and therefore not worth my hourly wage to futz with when I could be doing something that actually generates revenues.

    Mind you, this is at work. At home, I tend to prefer compilation, but that's just because I like screwing around with the source.

    --
    Proud member of the Weirdo-American community.
  92. Am I the one who thinks... by ArchAngelQ · · Score: 2, Insightful

    the OP should be modded -5 flamebait?

  93. Re:Use sources by bigjnsa500 · · Score: 2, Funny
    People with jobs managing servers use binary packages.

    Not necessarily true when your needs are custom.

    Real geeks work at Wendy's and live in their mom's basement.

    Oh, that's where I remember you from. You didn't give me my Biggie fries.

    --
    This is a test. This is a test of the emergency sig system. This has been only a test.
  94. try lunar by sofar · · Score: 2, Informative


    http://lunar-linux.org/

    the installer is maybe not friendly enough for you, but maybe it is.

  95. Support? What's that? by macdaddy · · Score: 2, Insightful
    Here's another perspective. I've been admining Linux systems for years and I have never had pay for Linux support. I contend that a compotent sysadm using an open source piece of software needs no support other than what's available freely online in FAQs, web forums, newsgroups, mailing lists and his own professional experience. They certainly don't need commercial support. Hardware is a different story. How many people do you know that can still perform component-level repair? How likely do you think it is that a compotent component-level repair technician can get a schematic for an IBM mobo? First I suspect they'll not know what you're asking for. Then once they do realize what you're asking for they'll laugh out loud under the grease their shorts. After that they'll probably suspect you have bad intentions for the data you're asking for and sic their legal team on you.

    In short, Support? Who needs it? Not me. Do you?

  96. Re:Convenience vs. optimization/security/features by Gilk180 · · Score: 2, Insightful

    I agree completely for vi, grep, etc.

    However for glibc or other common libraries you gain much more than if you hacked sendmail or any other service.

    If you have a backdoor in glibc, nearly ANY program will activate it. You just wait until a setuid root program accesses something in the library, and you have your exploit.

    Or if you need something that stays aware, have this insert a kernel module that hides it's own existence and does whatever you need or launches and hides another process that does what you want.

    In the end, putting a backdoor in a common library has many advantages to putting it in any program or service.

  97. For me it depends... by ErisCalmsme · · Score: 2, Informative

    I'd rather use source all the time, but when you are using a really slow machine that could take forever... thats where packages make things a bit easier...

    However, the problem I've run into very recently, with mandrake 10, are that even though certain programs like apache, and php, can support a lot of things (i.e. can be compiled to support things), the binaries distributed with mdk 10 dont include all of things I needed...

    Specifically, when installing Mambo on a webserver here I found that zlib support and xml support were both missing, even though apache and php were both installed. The only solution I could find is to install zlib (from source), and then recompile php and apache. I still havent quite figured out why xml support is missing, but I digress;)

    Using packages and source together can also be extra work because a lot of the stuff you need to compile programs are in "devel" packages that arent installed by default (That doesn't happen at all with LFS.)

    It's a tough call but the way I see it, try packages and if you don't run into problems, then fine... otherwise just don't forget that open souce is... well open source? =)

    Sorry if all this was said already but I had to give my .02

    --
    Chaos is Divine *
  98. Source is the best ... for now by Kleedrac2 · · Score: 2, Interesting

    As there are over 500 comments I'm assuming I'm being "-1 Redundant" but I'm also assuming moderators probably won't get this far ... come to think of it neither will readers! Oh well. Anywho I've always been a build-from-source kind of guy but that's due (at least in part) to my FreeBSD background. In FreeBSD I had the best of both worlds, the port list which made it very easy to install a software package, and the fact that the port list downloaded source and installed! Nowadays I use Suse and as such I can use RPM's, however I usually find myself building from source whenever possible. One of those, "just because I can doesn't mean I should" type of things. I think that until there is a universally accepted and implemented package type that simply works in all linuxes I'll stick to source, not packaged.

    Kleedrac

    --
    Sure we wang, can.
  99. Start from packages; document the modifications by karlandtanya · · Score: 2, Insightful
    If the "standard" package gets the job done, leave it alone.


    I know there is temptation to make things a little bit better, but support after you're gone is the issue.


    The genius who designs a system that only (s)he can maintain is a poor engineer.


    Find out what your customer's (the prof sounds like the customer in this context) requirements truly are. Is good enough good enough for the prof? If you give him what he wants and he finds out next week that it could have all been optimized to perform .5% better, will he be pissed? Functionality? Optimization?Robustness? Maintainability? Look & Feel? Thorough documentation? Easy transfer of support (to the next slave^H^H^H^H^H student?


    Meet those requirements with the minimum customization.


    Document the system. This may be a nightmare if the system has already been "tweaked" by the previous maintainers. If that's the case, it's even MORE important to simplify and document.


    Provide recovery tools--as simple as a set of drive backup images, or as complex as a set of scripts that rebuild the system from source. At a minimum, supply a system administrator's manual.


    Building a system for a customer to use is a completely different endeavor from elaborately tweaking your own box so it is just exactly the way you like it.

    --
    "Reality is that which, when you stop believing in it, it doesn't go away." - Philip K. Dick
  100. Compiling A Red Hat Kernel from .src.rpm by KidSock · · Score: 2, Informative

    If you should need to recompile your Red Hat kernel do not try to install the raw kernel source from kernel.org. Red Hat and other distributions require that they use their versions of kernels specifically taylored to their distribution. For Red Hat, install the kernel-.src.rpm (note that this is different from the kernel-source package) and look at the file /usr/src/redhat/SPECS/kernel-2.4.spec. At the top of this file you will see something like the following:

    Summary: The Linux kernel (the core of the Linux operating system)

    # What parts do we want to build? We must build at least one kernel.
    # These are the kernels that are built IF the architecture allows and
    # no contrary --with/--without arguments are given on the command line.
    %define buildup 1
    %define buildsmp 0
    %define buildBOOT 0
    %define buildenterprise 0
    %define builddebug 0
    %define buildjensen 0
    %define buildtape 0
    %define buildBOOTtape 0

    Change all of the 1's to 0's leaving a 1 for only the kernel version you wish to build. The above listing shows the modified spec file for building the uni-processor kernel. Now build with an appropriate target option like:

    # rpm -bb --target i686 SPECS/kernel-2.4.spec

    If you do not do this, RPM will attempt to build multiple kernel versions. Usually it is only necessary to build one kernel specifically targeted for your machine. Building all of the kernels defined in the default kernel.spec will take many hours even on a fast machine. When the build is complete there should be an RPM in the RPMS/i686 directory (or the directory for the specified target) that can be installed with:

    # rpm -Uvh RPMS/i686/kernel-2.4.20-28.7.i686.rpm

    Now can someone explain how to run make xconfig beforehand?

  101. Build vs use by po8 · · Score: 4, Informative

    I've been building from source since the late 80s. What has happened is, I've gotten old, and tired of the same ol' repetition and screwups. These days, I always try the Deb package first. 95 times out of 100, that works fine. Even if it doesn't, the infrastructure to build is typically installable as Deb packages.

    It's not even the compile time that's so significant. It's the pain of figuring out somebody's config/build system, and the even greater pain of configuring the thing once its installed. Deb packages make these problems mostly go away.

    Go ahead and build from source if you like. Someday you'll get old too.

  102. FreeBSD is the way to go. by rawg · · Score: 2, Insightful

    I am currently migrating to FreeBSD from Debian. The main reason is the easy of installing and maintaining software. With FreeBSD Ports system, installing is easy.

    I get the latest stable software. I don't have to worry about crazy dependancies (I don't want MySQL dammit, I use Postgres). The software is in a standard place. It's easy to tweak things.

    I also find that FreeBSD is much faster than my Linux system... Especially RedHat.

    --
    The above is not worth reading.
  103. source vs package & packaging, or just support by Sleepy · · Score: 3, Insightful

    Usually when one builds from Source, they install it to wherever the original developer has it set to by default. Unless you did some heavy patching, the software will very likely be more "true" to the original software then many packages.

    Correct me if I am wrong, but are you contridicting yourself here? Gentoo DOES use developer source, but they ALSO do what you call "heavy patching".

    I interpret this "source vs package" debate to be something different: What is the NORM for your distribution, and are you using the OS in ways that were not tested by the vendor's SQA team

    For example, ANY of these distros can get borked if you install Ximian on top of them and THEN go back to the vendor for updates. It wouldn't matter if you did it from source or packages.

    Same with Alien packages on Debian, or "Redhat centric" rpms on Mandrake or SuSE.

    Bottom line is don't mix oil and water. :-)

    I agree with your comments about what is good with Gentoo. I happen to like Gentoo and FreeBSD for the very reason that there's a BAZILLION source packages that all have cross-testing against each other. Same for Debian I suppose.

    Best thing RedHat ever did for their desktop distro was set it free. They NEVER wanted to be in the business of supporting user-borked desktops when they install random stuff from the net, and they never wanted to manage and QA a large repository. Now it looks like there's a Fedora community (two actually) addressing the package distribution issue. Good for them.

  104. Re:Gentoo + PHP = infinite pain by dotKAMbot · · Score: 2, Interesting

    personally I think you are silly if you use packages or ebuilds when it comes to Apache + modules. Your best bet is to just do it from source.

    I run gentoo, redhat or FreeBSD, and I never use any of their packages/ports/portage for Apache or MySQL anymore, it just rarely works out right if you have complex needs.

  105. Numbers Matter by smwalker · · Score: 2, Interesting

    1 Server, 1 Admin - Build from source
    5 Servers, 1 Admin - Build Packages and install
    1 Server, 5 Admins - Use Standard Packages
    5 Servers, 5 Admins - Build Packages with custom names/versions and install

    Seriously, I have 7 Admins managing a mix of 160 Servers.
    The simplest way I've found to have the best of both worlds, is to D/L the source RPM (SRPM), customize to taste, modify name slightly, rebuild, and distribute.

    For instance,
    Needed customized apache to support a couple of things we're doing.
    D/L apache SRPM
    Modify config files with our own patch
    modify configure line in SPEC file to suit
    modify package name (!Important!)
    rebuild
    uninstall old packages
    install our packages
    WA-LA

    Advantages
    - still get to run up2date/autorpm/fav-update-package with no worries of breaking your own custom stuff
    - Know which packages you've mod-ed by running rpm -q -a | grep "myinitials" or whatever.

    Disadvantage
    - Auto Update doesn't fix the stuff you're behind on...gotta keep up!

  106. Re:Supprt: Naa, that's not true at all. by ArsonSmith · · Score: 2, Interesting

    Exactly why developers shouldn't be systems admins. all too often source tar balls put things in the most f-ed up places. Atleast when I install a pre packaged debian supplyed .deb that it will fit to the system layout. conf files, documentation, binaries, and libs will all be in the expected places and not where the programmer thought about putting them. Some programmers would rather just run everything out of your home directory.

    --
    Paying taxes to buy civilization is like paying a hooker to buy love.
  107. Re:How do you uninstall? by Maljin+Jolt · · Score: 2, Informative
    How do you uninstall stuff installed from source, when the original build files aren't available?

    That's easy. Get the source again and build with the same target options as previously. Then "make uninstall" as root.

    Isn't that the #1 reason to use packages instead?

    No, it is not.

    --
    There you are, staring at me again.
  108. packages--the only way to go by hak1du · · Score: 2, Insightful

    Packages in a distribution like Debian update and uninstall cleanly, you can build every one from source if you want to, and someone else has worried about (1) testing the binary and (2) getting all the dependencies right.

    Build from source if you need the software and no package exists, or if you really, really need a processor-specific version. But for most applications, go with the pre-packaged version: as a system manager, there are a lot more useful things you can do than recompile "ls" on a dozen machines.

  109. Re:How do you uninstall? by Maljin+Jolt · · Score: 2, Informative
    I hardly ever keep the original files around. How do you uninstall then?

    That's matter of methodology. I always keep a source tree I have built from, for 1. uninstall ;-) and 2. just for case something went wrong so I can look at the source.

    I always uninstall old version only if new version build succeeds. If it fails at runtime, no problem to roll back the old one. This is not so easy with packaged dependencies. With critical ware, I keep even multiple versions build tree around. A single dedicated 100GB drive holds me stuff for all platforms I use (i486, i686, arm), and I still have a 80G in reserve. A CD/RW is my friend, too. And you are right, broadband *is* essential, but even some distros are about 1G of packages updates monthly (Mandrake cooker).

    For example, I don't want to waste time compiling

    No need to waste your time. Did you try "nice -n 10 make"? I always run builds on lowered priority. Just now, I am building globulation somewhere on the background here...

    --
    There you are, staring at me again.
  110. I do both by fairfax · · Score: 2, Informative
    I have used Debian Linux since version 0.93 (about 1995), and I teach Linux at a community college. I have a seven-node home computer network with a SUSE firewall, a Debian workstation, a dual-boot (Linux/Windows) machine for the kids, a Windows machine for my wife, and two laptops (one for me, one for my wife, mine is dual-boot). I built all the machines, except the laptops, from parts.

    When I build a machine for Linux, I will typically download and install the latest stable build of the Linux distribution which is going to land on the machine. From there, what I do varies. Anything that could affect security or efficient operation of the machine (starting with the OS here -- I always prefer to build my own kernel locally, you never *really* know what is included in a pre-built kernel) I build from source packages. Anything trivial included in default packages from Linux distribution (for example, games) I download as a package -- but with that comment, keep in mind that no package is ever *truly* trivial: if you are building a server that must be secure, you need to know what is in the package you are loading.

    But I believe (and from a cursory view at the headlines to the responses here, I think most probably agree), that you have to draw the line somewhere. If you are running a top-secret government laboratory, you ought to compile from source, and not even start from a Linux distribution. If you are setting up a machine for your kids to play games and won't connect it to the internet, would it be worth it to compile from source?

    Somewhere in between, there is a line you must draw.

    The two cases I presented above are the two absolute extremes. Discounting the trivial game box, I think one should always compile their own kernel for that specific machine (and possibly for the kids' game box, possibly not); if you are building a server, or a machine which needs to have high performance or will see extreme usage, then there are obviously certain things which need to be compiled from source.

    But do you need to build (trying to think of a fairly trivial example) more/less/most from source in most cases? Why?

    Check the security sources -- are there any security holes reported for that particular package? Do you suspect any may be possible (it is possible to build a trivial game that includes a security hole, but how important is it to you to check the game's source for possible security holes?).

    I will not say that it is wrong to compile *everything* from source, that is certainly admirable. But compile a to-do list with all the compiles and all the other stuff you have to do during the day/week/month, and then order all the tasks according to importance.

    Now, think about the question about compiling a trivial package from source once again: how important is that to you?

    Some instances of compiling from source are going to end up high on your list no matter how you order it, others near the bottom.

    Fairfax

  111. My two cents by digitalhermit · · Score: 2, Insightful

    You probably won't ever see this because of how late I'm posting... However:

    Building from source is great if you want to tweak a system and get it running exactly how you imagine. Be prepared for configuration and all the various issues associated with source builds. I'm assuming that even if you build from source that you are using some sort of package/file management system to alert you of dependencies and file modifications. This is easy to do with binary packages, not so easy managing sources. I regularly rebuild *on my test machines* all manner of software from source, including the kernel, KDE, glibc and a bunch of other libraries.

    Now for the problems with source builds:
    1) You need a development machine. I.e., you need the compiler tools and libraries. For a regular workstation this is no problem, but you DO NOT want these tools accessible on a server even if they're 'chmod 700' or otherwise locked away. This means you'll build on another machine and create a binary package and... well, you're back where you started except you lost some time.

    2) There's no easy way to create snapshots of packages. Differences in libraries and config files can make or break software. The best errors are those that prevent the software from compiling. The worst are those that compile, but errors or weirdness doesn't show up until a month later. Now RPM is much maligned, but it does allow you to keep the build instructions, dependency information, etc.. inside the package. You get lots of control, once you've learned RPM, on where things get installed.

    3) Backouts are not as easy. You can often do a 'make uninstall' but this requires the sources be kept around in some cases. Tools like checkinstall can ease the burden, however.

    4) Duplication of effort. Source builds are good for customizing, as I mentioned. It's a myth, however, that rebuilding from source will dramatically improve performance except in a few, somewhat rare cases. E.g., rebuilding a 2.4 kernel with a pre-emptible patch can make your desktop faster. Rebuilding a stock 2.4 from kernel.org or your distro's sources will likely not be noticeable.

  112. As the numbers increase, the meaning changes by Karora · · Score: 2, Insightful

    As the numbers of machines you manage increases, you will find the meaning of the word "control" changes. We only manage a couple of hundred, but the pressure to standardise, as far as is practicable, is a strong one.

    Look at the people running clusters, and you can see where that gets to in the end.

    The reason we (primarily) use Debian is that the potential architectures for distributing change, and for customisation-with-binary-releases seems to be much greater.

    --

    ...heellpppp! I've been captured by little green penguins!
  113. build from source -but with a strategy by chegosaurus · · Score: 2, Interesting

    I do ./configure --prefix=/usr/local/pkg_name plus whatever other options, then make. When make finishes, I mkdir/usr/local/pkg_name-version, and ln -s /usr/local/pkg_name to that, then make install.

    I get all my applications in their own directory, and it's only a matter of changing a link to roll back a version or two. It's also easy to copy an app to another host.

    Some discretion is necessary here: I just dump a lot of small stuff into /usr/local (gnu utils like groff, less, stuff like that) only things like gimp, gcc, TeX, python etc get their own directory. This keeps the PATH sensible.

    My main OS is Solaris, but I employ this technique on HP-UX, Linux, BSD, whatever I'm working on at the time. Keeps things simple for me, and it's easy to tell someone else just where things are.

    The only time I go outside the app dir is for things like logs, which always live in /var/log/app_name, and tablespaces. I always try to keep /usr/local as static as possible.

    As for maintining consistency across a network - NFS?