It’s pretty easy to set up a desktop system with most distros. I use Debian GNU/Linux because it has been around a while and has a huge repository of software. Let’s look at doing other kinds of things with your PC.
Suppose you are a collector, a hobbyist or small business person. Using IT to hold and to manage your information is priceless. It’s fast and reliable.
Many people buy a licence for some package of software and the cost may be just a few $dollars to $thousands. With GNU/Linux one can do the same work for $0. In addition, you are in total control instead of some distant corporation jerking you around with complex licences, expiry dates and other restrictions. GNU/Linux and many of its applications are shipped with no strings attached. You get to run it on as many systems as you want, examine the code, change it and even distribute it the way you got it. You download stuff for $0 and away you go. Simple.
Here is an example. I want to set up a server to keep track of ammunition I reload, inventory, load information and batch information. This way, no matter how long I live or how much stuff I deal with my PC can handle it. I could just install this stuff on my desktop PC but I will put it in a virtual machine so the configuration would work in any PC or server.
First, I need a virtual machine. In GNU/Linux I have KVM and it is simple to create and run virtual machines. I will use a Debian GNU/Linux installation CD that gets files from the network for the installation and I have another server caching those files so it is a very fast process, just a few minutes.
dd if=/dev/zero of=disk.img bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 14.6711 s, 73.2 MB/s
kvm -hda disk.img -cdrom debian-wheezy-DI-b4-i386-netinst.iso
kvm -hda disk.img -net nic -net user,hostfwd=tcp::5555-:80
Easy, eh? Those lines typed by a normal user made a 1gB file to hold the virtual machine. I could use a much bigger file but for what I need to do it is enough. The second line boots the machine from an installation CD downloaded from Debian and I just accept the defaults mostly and get what I want. I don’t select any of the standard installations (desktop, server, etc.) and get a really minimal system with hundreds of MB left over. The third line starts the installed machine and it boots in seconds. Local port 5555 on my pc will be routed to port 80 on the virtual machine so I don’t interfere with my current server. That will get me an “It Works!” at http://localhost:5555/.
Now I want to install PostgreSQL database and a PHP script to use it to create and to manage databases on Apache web server. I type these commands after logging in as root. It only takes 63MB more space in my virtual machine.
apt-get install apache2 php5 php5-pgsql postgresql phppgadmin
Because we are forwarding the requests, we have to reconfigure the server to allow requests from all or the IP address of our virtual machine. Remove the # at the front of
# allow from all in /etc/apache2/conf.d/phppgadmin and restart the server with
We need to create a user for the database.
CREATE USER fred with PASSWORD 'somepassword' ;
I click on Create Database and fill in a name.
With this simple setup you can quickly calculate total lead put down-range, number on hand in different calibres. Of course you can add more columns with dates, accuracy and such. To use it you have to learn a bit of SQL:
select diameter,sum(number) as on_hand from bullets group by diameter;
select sum(-weight*number/7000.0) as pounds_fired from bullets where number<0 ;
One can create tables of different kinds and gather information from multiple tables in a single report. Thus you can put static information in one table and cross-reference it from another table with a query. We could put the bullet information in one table and give it an ID number which could be used in another table of targets shot, accuracy etc.
The same sort of activities can be done with a spreadsheet but rather than having to scroll around, we can gather reports by simple commands and clicks and it scales. When a spreadsheet is scrolling down the hall and around the corner such a database will just be getting warmed up.