Using Linux

I’ve used linux/unix quite a bit over the years. Probably my first experience with Linux was when I bought a magazine in the 90’s that had Mandrake linux on CD. Since then I’ve used distributions from Slackware to Ubuntu, but never really had a desire to do much with the OS once I had it running, so it just usually sat on my harddrive.

I have recently been reminded why I was never interested in using *nix exclusively. Don’t get me wrong here, I think the concept of free open-source software operating systems is great. (Edit 09/2010: I’ve been using Ubuntu Linux 10.04 and have had generally a good experience with it for a few months as my primary desktop. I’m going to keep using it…)

Let me go over a scenario to explain my thoughts:
Goal: Setup Debian Linux so that I can test my software. I specifically want to use a VMWARE appliance so that I don’t have to mess around with my current OS. (Edit: I’ve since switched over to Sun’s VirtualBox software, which is much better than the free version of VMWARE).
Time spent: Too long in my opinion…

Some general notes for myself on how to get the OS setup as I need it:

  • Use the synaptic package manager to install PostgreSQL, POSTGIS, and MONO. Attempt to use PostgreSQL with no success because permissions are difficult to understand by default.
  • Somehow figured out that I need to su into “root”, before I can su into the “postgres” account, before I can run “PSQL” before I can create a user, before I can create a database and/or configure something to get a table with POSTGIS extensions loaded. The documentation online doesn’t seem to explain this process from step 1. (The point of this complexity is what? Security?)
  • Or add a root password to the postgres account by “su postgres” from root, “psql -d template1” to startup the psql program, and running “ALTER USER postgres WITH PASSWORD ‘VALUE’; ”
  • When in doubt put sh in front of a command. I wanted to restart the Postgre server after installing add-ons it seems that I need. Every online tutorial I found didn’t work. I navigate to /etc/init.d/ and then executed “sh postgresql-8.3 restart” which worked. For whatever reason I needed to have sh in the command.
  • The command “createlang plpgsql template1” needs to be executed under postgres before a POSTGIS template can be created. Remember to restart the server afterward, and also you must create the table after doing that command, not before.
  • When creating a table in the GUI Postgre admin program you need to specify that it uses “template1” otherwise when executing “psql -d postgis_template -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql” you will received errors saying that a language can’t be found. One plus of Debian is that the Postgre admin application can be installed easily in their add/remove programs tool.

If my goals were different here, I would actually prefer Linux. Say I wanted to setup a server without a GUI or something that’s accessible from the outside world and required a good deal of security. All of this would be just fine.

Surely there must be a smarter way to design things for the needs of workstation tasks as well as tasks that require high security…