Unix Tools on Your Desktop - Not Just For Mac Users

One of the main reasons I switched to Mac was for the underlying Unix-like kernel and command line. I’ve always had a local Linux server for development, and the ability to roll this functionality into my desktop machine was a great selling point.

As it turns out, while I love Mac OS, I don’t use it as my development server environment – I use a solution which would have worked just as well on a Windows machine.


If you haven’t come across it yet, virtualization software such as VMware and Parallels allows you to create virtual machines within your existing computer, onto which you can install just about any operating system, and run it as an application on your existing OS. From the perspective of the “guest OS” running on the virtual machine, it appears to be running on its very own hardware, and has no access to the “host OS”, except through specially set up sharing tools.

Lucas, our system and network administrator, recently wrote about using virtualization to set up multiple development and staging environments on a spare machine, which is something that saves us a lot of electricity, rack space and money at the office.

Virtualization can also be used to get the best of both worlds out of your desktop machine – the ease of a nice refined GUI, and access to a powerful server-centric operating system.

Mac or Windows – Even Linux

If you’re running Windows or Linux, VMware is the market leader for virtualization, and provide VMware Server for free. A free beta of VMware Fusion for Mac is available, but the final version will not be free.

Parallels Desktop is currently the only non-beta solution for Mac OS, and it has a very strong following. Parallels also offers virtualization software for Windows and Linux.

The software from both vendors is very similar in interface and functionality – both are easy to get up and running. You create a new virtual machine, specify how much disk space, RAM etc you want to allocate, and then install your guest OS from a CD, DVD or ISO image file.

If you’re thinking this would be a great way to get Mac OS running on your PC – well, you’re right. But unfortunately the Mac OS licence does not permit this, and so none of the virtualization platforms support it.

The Trouble With Mac OS

Running a custom development environment on Mac OS is nice in theory, but it can get quite fiddly. Compiling from source works fine 95% of the time, but the other 5% can cost you hours chasing issues with linker issues, OpenSSL conflicts and the likes.

There are package managers like MacPorts and Fink, but they can’t compete with their Linux competitors. As an extreme example, “fink install kcachegrind” triggered about 2 days of automatic downloading and compling of KCachegrind and all its dependencies – including the entire KDE! In contrast, I had the application running within a few seconds of typing “aptitude install kcachegrind” in Ubuntu.

The Trouble With Windows

While cygwin will let you run many ported Unix-like applications under Windows, and many applications such as Apache, MySQL and PHP have Windows versions, Windows just doesn’t offer the standard environment and tools to run a serious development environment to satisfy a command line junky. It’s getting better, but it’s not there.

A Linux Virtual Server

I’m a recent Ubuntu convert, after many years running the slightly aging Slackware Linux distribution. If you’re fairly new to Linux, I’d recomment installing Ubuntu Desktop on a virtual machine for starters. This will give you a nice intuitive GUI while you get the hang of things. I went with Ubuntu Server, which provides no GUI. I run it in the background, accessing it over SSH using iTerm (or PuTTY on Windows) rather than the more clunky VM window.

Ubuntu provides a huge amount of up to date software in their online repository, which can be easily installed using the graphical Synaptic Package Manager, or “aptitude” from the command line. For example, “sudo aptitude install subversion” will sort you out for source code management in a matter of seconds, and “sudo aptitude install rails” will predict your next web application and write it for you! (sorry – I couldn’t resist)

Out of the countless useful applications available, Samba (‘sudo aptitude install samba’) is probably the one most worthy of mention. It provides a file sharing compatible with Mac OS and Windows, so you can connect to your virtual machine as a network drive, and edit the files in place, with your changes just a save and browser refresh away. No more FTP transfer to see every change.

Just two quick warnings. Firstly, there’s an issue that exists between Parallels (up to the current build 3188) and the Linux kernels used by Ubuntu 7 (codename Feisty Fawn) and other recent Linux distributions. While there’s some work-arounds, I’d go with VMware Fusion Beta if you want to run the latest Ubuntu on Mac, until Parallels releases an update. Secondly, running a virtual machine will increase your power consumption a little. While still far more efficient then running two physical machines, you’ll certainly notice the difference on your battery life if you have a laptop. However a Linux VM with 256mb RAM only takes a couple of seconds to suspend and resume, so this hasn’t bothered me much.


Category: programming Time: 2007-05-21 Views: 0

Related post

  • Disabling local resources just for some users accessing a remote desktop session host 2013-04-02

    We are using a VPS running Windows server 2008 We need to disable the access to local resources (printer, local drives, etc) just for some users remotely accessing this VPS, while allowing the use of local resources to other users. Any idea on how to

  • Possible to add author avatar to header so displays for all, not just registered/logged users? 2015-01-08

    I have a wordpress site and here is the page where I am trying to display the avatar & user name in the header, listmenow.com/default Is it possible to display the avatar & user name for the page author or site owner and NOT just the registered or

  • Ambiance GTK theme customisation *just* for one user 2012-11-25

    Is it possible to customise the appearance of the Ambiance theme just for one user? I have read about the possibility of doing this: sudo vim /usr/share/themes/Ambiance/gtk-2.0/gtkrc but could something be done to change: just one setting for just on

  • jQuery not Loading for "Anonymous" Users 2012-06-27

    For Drupal 7, a jQuery will not load for "anonymous" users on any template pages. But when I log in as an administrator it loads. It's similar to this issue: http://drupal.org/node/802432, but nothing I tried has worked. The only way I could get

  • Jquery in Sharepoint 2010 not working for all users 2012-07-31

    I have a very strange problem where there is some custom jquery interface buttons to show and hide certain fields in sharepoint. The script builds fine(script that has worked on previous sites) but does not execute for most users (appears users that

  • Is there a way to get a separate desktop/Gnome terminal for each user logged in through VNC? 2012-06-13

    Is there a way to get a separate desktop/Gnome terminal for each user logged in through VNC? I want to be able to have several people working simultanously on the same machine in Ubuntu. --------------Solutions------------- You need xinetd and vnc4se

  • Why is SP.js is not registering for Anonymous Users? 2013-01-25

    In SharePoint 2013 I tried: ExecuteOrDelayUntilScriptLoaded(function () { alert("Hi"); }, 'SP.js'); But SP.js is not registering for anonymous users. --------------Solutions------------- SP.js is a file that is only loaded when called. Mostly. O

  • Quick Settings pull-down not accessible for 2nd user profile 2013-04-08

    I have setup a 2nd user profile on my Google Nexus 7 Android 4.2.2. However, the "Quick Settings pull-down menu" is not available for the 2nd user profile. The main user have access to the "Quick Settings pull-down menu". The 2nd user

  • Error: The Connect API is not enabled for this user type 2013-07-05

    I am working on creating a Force.com site and I have a VF page which displays fields from a custom object record and also displays its Chatter feed. I achieved displaying the Chatter feed using the Chatter connect API. Now this page shows up fine whe

  • Mysterious OP_WITH_INVALID_USER_TYPE_EXCEPTION, Operation not valid for this user type: [] 2014-01-16

    I had following situation. When I tried to edit and save some of custom object CustomObject1__c instance, I received error in the top of the page Error: Invalid Data. Review all error messages below to correct your data. Operation not valid for this

  • apex:emailPublisher not rendering, "send email is not available for current user" 2015-02-16

    I have a Publisher action that works fine in the sandbox. However, in production, it does not load and displays the error as a comment in the HTML: apex:emailPublisher - send email is not available for current user. Please verify your setup. Things I

  • App not installed for this user 2015-05-03

    I see App in my Apps section of settings which says App not installed for this user. It's completely greyed out and I cannot uninstall it. When I install the same from play store it says incompatible version is already installed. I just want to remov

  • "Access Point Name settings not available for this user" 2015-06-21

    This was probably an issue before but only became an issue when I changed providers in a foreign country. Running CM12.1 nightlies. I can't connect to data and get the above message when I try to manually enter the APN settings. I have tried: The oth

  • Ajax not working for certain user roles 2015-07-09

    What would cause front end Ajax requests to not work for certain user roles? I have successfully registered (enqueued) my .js file and I know that I have registered ajaxurl successfully as if I alert(myhandle.ajaxurl) I see the correct path to admin-

  • How to solve the "APN settings are not available for this user" issue? 2015-08-30

    After upgrading my ASUS Zenfone 5 to Android Lollipop, I am unable to access HSPA/3G data. In Brazil we have to manually input APN settings, and when I try to do so, I receive the following message (in Portuguese, here tentatively translated into Eng

  • Websites not resolving for SOME users 2016-06-29

    I have some websites that are not resolving for SOME users using a certain internet provider. Two of the websites are on totally different servers. If people try to get to the websites from their home, using the local internet provider, the website w

  • Workflow not working for anonymous users 2013-05-07

    By default, it seems that SharePoint cannot execute a Workflow if an Anonymous user is creating a item. Can someone help me on this? --------------Solutions------------- Since the process (workflow) runs as the user that created the item, this does n

  • Node Preview not working for anonymous users drupal 7 2014-03-12

    I want Anonymous users to post Events on my site and moderators can moderate and publish it. I have set "Preview before Submitting" option to "Required". Preview is not working for anonymous users. It does not display node preview on t

  • sshfs too slow while remote editing on Eclipse and other IDEs, what options to use to make it faster. *Not* for mac users 2014-08-21

    I've been looking into this problem, and it is common. But since there is a package for Mac with the same name, the solution for Mac users is hiding the solution for Linux users and our default sshfs. This the best I got so far, from what actually wo

iOS development

Android development

Python development

JAVA development

Development language

PHP development

Ruby development


Front-end development


development tools

Open Platform

Javascript development

.NET development

cloud computing


Copyright (C) avrocks.com, All Rights Reserved.

processed in 3.143 (s). 13 q(s)