So lately I’ve been trying to setup a linux environment on a shared hosting web server. Let me just begin by saying that it has not been easy, in fact it has been quite frustrating. The following are some of the technologies that I’ve tried to install:
- Python 2.7
The documentation has been lacking in every sense of the word. Most Linux technologies are compiled and built with the usual configure, make and make install show, but dealing with all the dependencies that these technologies employ is the biggest headache. For example when trying to setup svn many of the required dependencies were missing and I had to hunt them down and get them working before I could even start installing the tool itself. Dependencies themselves are fine. However, not notifying the user about them in advance is not. The way I found out about the dependencies for svn was via the errors I received when I tried to build it.
It would be much easier to install a module or package if all the required dependencies came packaged with the software. I mean, problems like these reduce your potential user base. I’m sure for a Linux guru these issues would be trivial. But it takes years of work to reach such a position of knowledge. The common man is going to give up after a few hours.
I like what python has done with setuptools. This tool literally does all the work for you. It downloads, compiles, builds and installs any python module that you request. It doesn’t get simpler then that. Once the module is installed then the user can get down to what they really want to do.
Maybe it’s time for Linux packages to move to a more user friendly installation experience. Ideally, a user wants to be presented with a list of options which he can then choose one. If he is unable to choose then the default option is selected. Basically, I’m thinking of a scenario where the Microsoft step by step GUI installation process is replicated in a command line environment. This would involve extra work but in the end usability matters, even when dealing with development tools. The extra effort must be applied to stay competitive, otherwise users will certainly migrate to other products.