Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

It might sound like a trivial question to some but even though I have been using Linux for quite a few years I haven't really figured out this question.

Little background info; I recently upgraded my system from Mint12 to Mint14 and as I started my eclipse installation I realized that I need to install SVN again. It turns out the latest version is 1.7.8 (as of now) while the version I get from the repos is 1.7.5. Now one might argue whether or not it's a big deal, but I personally like to stay in-sync with the current version to avoid downstream issues.

I was wondering what kind of problems might arise from skipping the repos and installing from the developers homepage (subversion.apache in this case).

share|improve this question
    
See my answer here: unix.stackexchange.com/a/59736/13796 –  jordanm Jan 8 '13 at 16:03
    
@jordanm so you're saying don't skip the repo unless you want to bother with maintenance? –  posdef Jan 8 '13 at 16:15
    
Pretty much. For your personal workstation, it's generally fine, but for production servers, give it more thought. –  jordanm Jan 8 '13 at 16:16
add comment

1 Answer

up vote 3 down vote accepted

Unlike other systems, where the "developer makes available, people use" deployment strategy is used (Windows, I'm looking at you), with UNIX-like distros, there's usually a package manager and some team managing its packages.

The main point is so that everything works well together. At least when I used Windows, the usual thing was that a program would update DLLs if it had newer versions to install, but nothing ever controlled whether everything would work well with the new version of the library, you're just adding more files to the jungle, if anything breaks, it can break badly.

With package management, new versions are (or should be) tested before being made available, so that you don't have downstream issues. The problem you may have with non-distro packages is that they may have not been really tested for your distro, or may lack dependencies or restrictions in the metadata. This is about packages. If you are going to install from a developer instead of waiting for your distro to release their package, go for packages. As far as you stay with the package manager, you don't risk making a mess out of your system.

If you decide to compile from sources or simply unpack a tarball, think twice before doing a make install to the /: you may overwrite files or add files which the package manager is not tracking, and this may break your system, by installing incompatible files, by changing settings in a way you can't undo by removing the package using a package manager, etc.. This is also the reason why you never want to use developer-provided install scripts (nVidia drivers...).

Think of this like entropy: package managers do actually keep track of it, so it can violate the second law of thermodynamics if need be. When you use a third-party install script or just make install, you're increasing the entropy of your system without keeping track of it. Once you've done that, your only chance to make sure you remove anything you added is to restore a backup or to reinstall the system.

TL;DR:

  • You're bypassing distribution-level testing, which tries to catch issues specific to the software distributed in the same distribution.

  • You're bypassing the package manager, possibly leading your system to an unrecoverable state, if anything goes wrong.

In the end, like @jordanm said, weight the pros and cons. If possible, look for third-party packages for your package manager that, at least, will help you with the second bullet above.

share|improve this answer
    
+1: If you decide to compile from sources or simply unpack a tarball, think twice before doing a make install to the /: you may overwrite files or add files which the package manager is not tracking, and this may break your system. Think this should be etched deeply in your mind! –  Deer Hunter Jan 8 '13 at 19:04
    
@njsg great answer, thanks.. How do you deal with software that is not packaged for your distro, then? Can you think of any real-life practical examples in which installing a software from the developer breaks the existing system? –  posdef Jan 8 '13 at 20:36
    
@posdef I use Gentoo. As it is a source-based distro, software is already installed by compiling from source, using "ebuild scripts". So I first look up to see if anyone else did one of those before. If they did, I use that, if they didn't, I try to write my own. This ensures me that even with a system-wide install, it will protect against collisions (overwriting existing files) and it will be able to completely remove the files. If it does not work, I just have to uninstall the package. [...] –  njsg Jan 8 '13 at 22:36
    
[...] If it's something I don't need system-wide, I may as well as compile it under $HOME and run it from the source directory. –  njsg Jan 8 '13 at 22:37
    
@posdef As for software that breaks the system, maybe nVidia drivers? It has been a while since I have used nVidia cards under Linux, but once in a while I still see people commenting how it screwed their system. I don't know how likely it is, but you're modules, drivers, maybe even some configs (udev rules, maybe?), if any of that breaks your system, you have to remove it by hand, I doubt it's that easy to keep track of all the things you have to remove. [...] –  njsg Jan 8 '13 at 22:50
show 1 more comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.