On 2014-05-29 04:26, a2043037 wrote:
> ps:
> 1. yes, I would like to know/ understand the reason (if there is any)
> 2. this is not meant to be a win vs linux discussion.I basically just
> want to solve my problem.
Ok, but you see, as gogalthorp says, in Linux one of the jobs of the
administrator is to install programs, so the tools are designed to make
the job easy for him.
It is also his job to decide what to install and what not, an even to
decide to allow users to run their own programs or not. It depends on
what the particular machine role is.
For example, if I create a server machine to provide email
to a group of people, in the case I allow them to get a
shell on the machine, it would be for the purpose of managing
their mail and filters, not to run applications. So I would
mount home “noexec”, for starters, and not allow them to run
their own scripts.
Of course, if the users give a reason for they needing to
do that, it also my job as administrator to facilitate their
own jobs when using the machines I administer. Depending on
the constraints, perhaps what would be needed would be
another machine in which they did what they please, leaving
the mail server untouched.
It is just an example, traditional type.
And, Linux being a multitasking/multiuser system by design from the
start, it does not make sense for two users to install the same program
on their own. It is much more sensible to install the program just once,
and have the program store separate data structures on each user’s home.
It is a different paradigm from Windows, which inherits from MsDOS,
designed for a single user, doing whatever he wanted. No reason to
enforce where to install programs.
In fact, in Linux there is an extensive documentation that
explains where each thing should go in the directory
structure (the “Filesystem Hierarchy Standard”, or FHS).
And modern Windows does in fact use a similar system: applications are
stored on a common structure, as programs, and the user data are stored
on their homes.
Also notice that in Linux there are no licensing limits to
the number of instances an application may have. Once an
application is installed, a thousand users may use it
simultaneously. In Windows maybe only one may make use of it,
or a number of users. There are services to control those
numbers. If only a user can run certain application, why
not install it on his home?
Now, it happens that the repackaging you suggest can not be easily
automated, either, because how to change the expected path for each
application depends on each particular application design… this is not
fixed, there is no common data structure which you can simply search for
and change automatically.
In fact, in a distribution such as openSUSE there is a person that
packages one or more packages, taking some responsibility for it. Each
single package has a packager behind it. He reads the package
documentation and decides how to build that particular package for this
distribution. If you want to rebuild the application for use on a home
dir, well, you can start from his work, or not, but you do have to edit
some files. You are redoing his work.
Remember that Linux applications are designed so that you yourself
download the sources, configure them for your machine, build them,
install them. This is tedius, complicated, and requires skills, so
distributions facilitate this humongous job by providing a set of
pre-packaged applications and libraries that you simply install - in the
manner designed by the distribution packagers. You can of course install
the original applications differently, but in that case, you have to
redo what the packagers did in your own way.
However, as I said, there are exceptions. It is common for java
applications designed to run in multiple platforms to be installed on
the home of a user. Wine apps also go to a home, but after all, they are
Windows apps.
–
Cheers / Saludos,
Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)