How to install software
It never fails to amaze me how may ways there are to install software.
Even one one OS there are so many solutions. They all have their
problems and most of them are simply lacking.
There are two concepts regarding installing software. There is the
package manager. If you are on windows you just said "a what?" because
Windows doesn't do well with package managers. At my old company, they
wrote their own package management system They called the
software
shelf. It was a web page that linked to all the installs. It aloud you
to install sanctioned software packages and upgrade as you went.
Well, most other operating systems have these package managers built
in, or available. They use repositories that hold the individual
packages as needed.
The other concept is the one most folks are familiar with. It is the
single package install. This is where you put a CD in the drive and it
comes up asking you a bunch of questions and installs some software.
Or, you download a package from the net and install it on your system.
This is very hard to maintain. Things get broken when packages
conflict. Things get broken when one package removes a shared file.
Things get broken when different versions of things conflict.
If you bought a computer and stuck it in the closet and ever turned it
on. It would run just as well in five years as it did that first day.
When is the last time you had a computer go five years without having a
melt down somewhere along the way? The above problems along with a few
others are the reason computers get slow and start breaking as they are
used.
If you never install or remove any software, the computer will run
better for longer. If you lock the users out of the engine compartment,
the can't destroy things as easily. But people need to upgrade and keep
up to date virus detection, spam detection, firewall, ad removal and
other kinds of software on a daily basis. These are layers upon layers
of things that can go wrong.
In Linux, there must be ten different ways to bundle up software for
distribution. I use YUM/RPM. I also use apt-get/DEB to a
lesser degree.
There is the one in Linspire.
I'm not familiar with it. SUN has
their
own on Solaris. I hear it is lacking. YUM is the package manager and
RPM is the method of installing the individual packages. Apt-get is the
package manager and DEB is the method for each package. None of these
are compatible with each other. They claim to jump the gap, but there
are always troubles in my experience.
Why doesn't Windows have a package manager? Well, they do, kind of.
Windows has an installer with no repository support tha I'm aware
of. It is the Windows
Installer. However, when you base your
existence on commercial proprietary software, no one is going to agree
to put their install in a repository with every one elses stuff. There
could be a repository for open source software for Windows. That will
not happen because Microsoft would have to support it in some way. If
MS decided not to (which they have because their investors won't allow
it) it will not happen. I bet you could get YUM and RPM to work on
Windows with some work. You could make repositories that are for win32
and win64. It sounds easy enough to me. Well, easy to some one who
knows it well enough.
When I want to update mys system at home to the latest software
versions of just about everything, I type in the following command.
sudo yum -y update
or
sudo apt-get update
Those commands will update the minor version of most software
packages. If I want to cut a bit deeper, I use the word "upgrade" in
stead of "update" and a further leap of version numbers will be taken.
When I want to uninstall a package the command is something like the
following.
sudo yum remove <package>
That's it. The package manager worries about all the required packages
and libraries. Sometimes there is a dependency that needs to be
resolved. That is a pain. Nothing like it was before YUM or apt-get.
That is it. All the software on my box that I installed using YUM gets
updated in the background while I get on with my day. Somethings things
go hey-wire, but any time you make changes stuff freaks. I have to say,
it is much better than keeping everything up to date by hand.
So, who keeps the repositories up to date? Right now it is the
community of Linux users who sign up and give a few hours a week to the
cause on their own time. I believe Linspire has paid people doing it.
Red Hat may have people on staff who help out. I bet most of the
companies involved in enterprise systems contribute in one way or
another. It is the high end users out there who do the trudge work
though.
To install a piece of software you first must decide if there are any
prerequisites required. These are called dependencies. On Windows
and
other non repository systems this is pretty much a manual step. you
don't know until you try to install or, for the love of God, read the
instructions. If you are on a repository system (YUM or apt-get for
example) the package management software tries really hard to install
all the dependencies and their dependencies and their dependencies
before installing the package in question.
In Windows (and other closed source projects) most programs include the
dependencies in the install package. This can cause conflict. It is
referred to as DLL hell.
In open source OS projects most of the
dependencies are not included because of licensing. Open source says
you can freely distribute a package unless you make it part of another
package that you sell. Thus, most. open source projects have a long
list of all too separate dependencies. Without a package management
system you are in trouble.
A good example is a sound editing program that I installed on Windows
many years ago. it could not support MP3 directly because of lichening.
MP3 is a proprietary format and you must pay to use it in your program.
When you clicked on "save as mp3" a dialog box popped up telling you to
got to www.whatever.com
and download a specific DLL file and put it in
a specific spot. They could not put it there for you because that would
be redistribution. You had to go get it yourself.
I'm sure any one who has made it to this point is a confirmed geek. Let
me guess, Nat, my parents, and most random people have dropped off
before this point. Maybe Adam and Ken (Viper) made it this far. None of
my other geeky friends read my blog. Let me know in the comments.
Back to the subject. . . There is no silver bullet. Every single method
of install and removal has problems. They mostly have the same
problems. Don't put on enough, take off too much, or break something
that was working. There is a movement in the world to have a one folder
install called zero
install. All dependencies would be linked from withing the folder
and
to run the program you would just double click the folder. When time
comes to remove the program, you delete the folder. it is very
easy to
find the dependencies that have no folders pointing to them. You could
choose to remove them or leave them there. This is a Utopian idea that
might actually work. it would eliminate DLL hell and would make
the
Windows Registry redundant. It would make the dependency torture
easier. If you need five different versions of a library on your
system, just rename their folders and point your link point to that one
copy. Hard drives are cheap.
It wasn't me. You can't prove anything.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment