Gabriel Saldaña's blog

personal blog, photography and programming

Mac OS X from a GNU/Linux User

Snow Leopard
The Mac OS X slogan I’ve heard from several mac fanboys is “it just works”. Well, being a GNU/Linux user for quite some time and coming to OS X, that is not the case for me. There’s a lot of little things that “just don’t work” on my particular usage.

Recently I’ve been given a 17″ Macbook Pro for use at my job. My first impression was “wow, nice solid hardware” and that has turned to be very true. But after a while of fiddling with the operating system and doing actual work as I’m used to, lots of little things started to annoy me.

Developer tools

First, I’ve been told that OS X is the best platform for developers. Well, to begin with, basic development tools are not installed by default. You have to install all Xcode tools (about 3.1 GB) just to get gcc, make and related basic tools, off the CD plus a bunch of other unknown things. The installer doesn’t detail much on what its installing.

Getting and updating software

Then, there is no repositories support by default. You have to install Macports or Fink, or download each of your software packages by hand, so upgrading all your apps depends entirely on each provider, except for the Apple applications. So this tells me the software upgrade program is exclusively for Apple apps and no third party software can access this upgrading system. It would be a good idea if the software updater had an API or something that other software vendors can use it to notify upgrades.

A curious thing for me is the fact that lately when the software updater updates the Safari web browser and other trivial applications, it asks for a full system restart. I don’t know why OS X, a BSD Unix based system, needs a restart when you upgrade such a non-critical application like the browser, but that reminds me a lot of Windows asking to restart for every single piece of software installed.

PHP and extensions

At my job we use PHP 5.2.8 and a bunch of extensions. Although OS X comes with Apache and PHP already, there’s no easy way to install all the extensions we use, so we have to compile the damn thing and all its dependencies. It has taken us a whole day just setting this up, and some co-workers just quit trying and went through the option of developing on a virtual machine with GNU/Linux. Some even cried. I got it all good and running, but when I upgraded to Snow Leopard, all my settings were reverted so I had to start again.

GNU

Emacs

For most of my tasks I use Emacs, but there’s a bunch of choices and versions on how to install it, but none is very consistent. If you install emacs from Fink, you don’t get finder actions to open files on Emacs. If you don’t install from Fink, then when installing other packages, like Auctex, will need to download Emacs from Fink. Then you have redundancy. So the solution here is to install your elisp files manually on your elisp folder.

Ctrl, meta and alt keys are messed up. Important for any Emacs user and also for a command line power user.

Other software

Basic office apps, like the typical word processor, spreasheed and presentations programs are not available by default, which is something you have for granted on most GNU/Linux distributions.

No GPG, wget, latex and other basic tools you take for granted on any GNU/Linux or BSD system.

Finder annoyances

Hidden folders (those starting with a dot) are not easy to browse on the file navigator (Finder). To view hidden files in Finder, you need a hack. There’s no easy menu option for it.

You cannot overwrite by drag and dropping a hidden folder like ~/.emacs.d/ if it already exists. It first asks you for the administrator password, then it tells you it will not change an “invisible” folder. The only way I could get around it was by using the terminal.

Also Finder has no “one directory up” button, so to move one directory up, you must enable the navigation bar that appears at the bottom of every window. But this is not very intuitive to do. Also, if you are on a file chooser dialog, this bottom navigation does not appear, so there’s no way “up”.

Finder always puts a .DS_Store and a ._MacOSX file and folder on everything you browse, being an external hard drive or usb drive or anything and you can’t disable that behavior. So I typically end up with my thumbdrives and backup drives filled with this files. Also if you compress (zip) a directory using the Finder menu option, the resulting zip also contains these files.

Finder cannot be used as an FTP or SCP client like Konqueror or Nautilus via the location bar. Although you can use the “connect to server…” option.

Conclusions

Well… not much to conclude here. I guess I just have to get used to “the mac way” of things until I get back home to my nice Debian system.

Have you migrated from GNU/Linux to OS X? I’d like to know your experiences and recommendations.

Snow Leopard foto is Creative Commons by Captain Chickenpants
Wildbeet foto is Creative Commons by Arno & Louise

About the author

Gabriel Saldaña Gabriel Saldaña is a web developer, photographer and free software advocate. Connect with him on and Twitter

Posted Under
Tagged

Post navigation

19 thoughts on “Mac OS X from a GNU/Linux User

  1. Juergen says:

    Try Seiji Zenitanis’s Carbon Emacs which comes precompiled with AUCTeX and many other packages. It works fine. I’m teXing with his package since 2007. Everything works as you would expect it to work in Emacs. Also, you can compile Emacs for X11 from source quite easily. Takes about 10 minutes on my MacBook. Emacs 23, however, is a nuisance on the Mac because they dropped the Carbon port for Emacs.app which you should not use at this point.

    http://homepage.mac.com/zenitani/emacs-e.html

  2. gnusosa says:

    Hi, I also use Mac OS X in my work area. My boss is in love with Apple & it’s products.

    You can always install Debian… But, if there is a policy in your workplace that won’t let you, well, pretty much the wall will always be there. Unless, you make good use of MacPorts and compile the applications needed in your case. For instance, mutt and screen-v would be better if compiled from scratch. There are others like Emacs, htop, etc. that are handled better by MacPorts. There isn’t much to it. In the end, it’s better to take everything you have.

    Since you’re a Emac users, I can’t advise of tools that might come in handy.
    For the most part, I only use the Terminal.app, Open Office and such.

    Let me know what you think, or if you need an alternative app like on Mac OS X give me a shout.

    Good day, gnusosa.

  3. dim says:

    Try emacs snapshot from here: http://atomized.org/wp-content/cocoa-emacs-nightly/

    To enjoy using OSX, in my mind, you have to be two-headed. Stop being a geek and enjoy the multimedia, all-in working (from sound to wifi to whatever, no hassle). If you want to act geek, do it from emacs (M-x term, escreen, gnus, rcirc, etc).

    This way alllows me to enjoy it, but that’s true that I’m not yet working on the mac, I only use it @home. For (web) developer profile a VirtualBox with debian inside would certainly be my choice. Fortunately hacking PostgreSQL related stuff on it is quite easy 🙂

    Extra Software not to miss: Emacs, TunnelBlick, Transmission, vlc, Goban. That’s pretty much it.

  4. Ian Eure says:

    There’s definitely a cultural difference. I switched my desktop (laptop) machine from Debian to OS X around 2005, and I’ve never looked back.

    While I appreciate your complaints, many of the comparisons are unfair. For example, a plain Debian install not only doesn’t include a compiler toolchain, it doesn’t include a GUI. Perhaps you’re an Ubuntu user; I don’t know. But I do know that plain Linux installs often do not include word processors and the like.

    The restart to upgrade Safari thing is new, and it’s absurd. It makes the system feel like a Windows box. No disagreements there.

    Mac OS X does not (and likely never will) have a centralized binary package management system like Debian. MacPorts is pretty lame. Sorry. You get over it.

    I provide the Emacs builds which Dim linked. I run them daily. They’re totally vanilla, integrate well into the desktop, and work fine for me.

    You can go up a directory level in Finder by holding Command and clicking the name in the titlebar. There’s a hidden setting to turn off the .DS_Store trash on remote disks. More generally, if you install the Secrets preference pane, you can tweak many more things.

    You can also use Finder as a client for many network protocols by entering a URL in the Connect to Server dialog. It supports at least SMB, AFP, WebDAV, and FTP (albeit read-only). While I haven’t used it myself, MacFUSE should provide for any other needs you may have.

    Don’t get me wrong – Mac OS X isn’t as hardcore as Debian is. But it’s the only game in town if you like Unix-style systems and don’t want to dick around with configfiles all the time.

    Some of the positive things you get from the Mac experience:
    – Painless WiFi, all the time, every time.
    – Backups with Time Machine are unimaginably simple.
    – Most peripherals (cameras, scanners, printers, webcams, microphones, 3G cards, just about anything with a USB plug) work the first time with no special drivers, tweaking, or configuring.
    – Sleep works.
    – Painless multihead.
    – Integrates simply into your network environment with LDAP, Exchange, and CalDAV support.

    These may or may not be things which you care about. For me, I came to the realization that I was more interested in the end result of all the tweaking of Linux, rather than the actual process. OS X lets you skip all that and get to the part where you can _actually_use_ your computer in no time at all.

    And if you don’t like it, you can always install Debian.

  5. Bobz says:

    I agree with Ian’s remark that your comparisons aren’t always fair. E.g., there can’t be a single binary package management system because lots of the excellent software, even if it is free of cost, is third-party. But then, most of these applications have their own automatic update checks built in. Take, for instance, NeoOffice, which is the Mac version of OpenOffice (okay, there is also OpenOffice for Mac nowadays, but NeoOffice performs better, in my opinion). So one could argue that Mac is actually a step ahead of Linux in this regard.

    As for Emacs: try AquaEmacs, which has Auctex and lots of other things already built in. I have used it for Latex editing, and it works fine.

    Of course, as Ian has already said, Mac support for peripherals is great. This was one of the main reasons why I switched from Linux to Mac some seven years ago. I still own a PC laptop and play with various new Linux distros as they come out (they’re free anyway, right?), but there is always some peripheral problem or the other (usually something with the graphics card). This is a notorious Linux problem, and probably it’s the main reason why Linux has never taken off as a mainstream desktop/laptop system.

    True, you have to install the developer tools separately, but I don’t consider that a big deal. By far most users don’t need them. The tools take up a lot of space, but they simply work, and they’re beautiful. (For Python / PHP / Tcl / Perl, go to the ActiveState site.)

    Internet connections, whether by cable or wifi, are self-configurating. I was shocked to see it, the first time I tried! Everything worked, without any painful tweaking!

    For “one directory up”: do CMD-UpArrow.

    Finally, what is important in my work is Unicode support in the keyboard layouts, also for Asian languages. In Linux, KDE has made good progress in that direction, but switching between layouts (when one is writing a multi-lingual text) can’t be easier than it is on a Mac. And if your dream layout doesn’t exist yet, you can make one yourself, using SIL’s free utility Ukelele.

  6. Alex says:

    I had a similar experience with my better half’s Mac when I was using as a laptop at home. To get the tools I was used to involved a lot of fiddling around and compiling. However once I had installed the metric ton of software I take for granted on GNU/Linux I was reasonably happy. The biggest pain was deciding which flavour of Emacs was the one I should go for – and retraining myself of the Apple vs Control keystrokes. I never figured out how to do some of the useful GUI things like sticky windows and “Always on Top” but they could possibly be somewhere in there.

    I’ve since brought myself a netbook which is currently running Fedora and I hardly have cause to touch her Mac. I’m a lot happier in that environment because I’m familiar with the Linux way of doing things. That said the Mac works very well for Fliss and I suspect most of it comes down to familiarity and what you need it for. Getting multimedia, wifi and suspend working on Linux hasn’t been an issue for me for a long time, especially with modern distros and paying attention to the hardware you choose. However I can see why it’s a frustration to people new to the GNU/Linux platform.

    So while I wouldn’t choose a Mac as my first preference I’m fairly certain I could beat one into shape for my workflow. If I do I may try Gentoo Prefix next time for the source of my FLOSS software but mainly as I’m a Gentoo user on my desktop at home I’m already familiar with it’s style of “ports”.

  7. I’ve been using Emacs 23 compiled from source (the NS tree, used to be Emacs.app) with no problems since 23’s release (despite the release notes saying that port is not ready). Works great for me and was a snap to build (just following the readme in the NS tree). The MacPorts/Fink emacs weren’t new enough for me at the time at least (same with Carbon Emacs on the day of 23’s release). The source tree emacs had all of the options for meta/command keys that I needed (I currently use Command as Meta in emacs with the alt keymapped to super, this is opposite from my Terminal but I’ve grown into it).

    I do use MacPorts over Fink (but I was always a Gentoo over Debian guy anyway) for anything else open source (wget / postgres etc)

    I haven’t the need to run apache locally yet so I haven’t run into those issues at all.

    When I first started at my job they got me a linux box (most of the office is on macs) but I eventually just got tired of multiple monitor setup, sleeping troubles (I know this can be solved with getting the right laptop and the right distro) and other office-integration tasks (I could never get the WPA network to work (again I know this is MY fault), couldn’t get file sharing to work all the time and couldn’t take part in iChat video chats). In the end the pros out weighed the cons and I’m very happy in my new Mac environment. I’m actually very happy that I now use ONE OS for work / play (WoW and other Blizzard games + some open source ID ones) and music recording without hassle.

  8. Ian Eure says:

    Oh, and to fix Emacs’ bindings in any 23.x-based build on OS X:
    (setq mac-command-modifier ‘meta)
    (setq mac-option-modifier nil) ;; So you can enter accented chars

    Then go into SysPrefs, Keyboard, Modifiers and set Caps Lock to be Control.

  9. Scott Randby says:

    As a former long-time (2 decades) Mac user, I agree with your complaints. The Finder is very poorly designed and your complaint about working with hidden files is right on the mark. Emacsclient will not work on a Mac. Installing anything other than basic software and getting it to work is a painful exercise. Much of the functionality I enjoy on my Linux machine has been purposely broken by Apple in OS X.

    OS X is not made for those who wish to to serious technical work. User freedom and control is secondary to Apple’s desire to lock in customers and make off with their cash.

    Yes, some “things” work on a Mac. But, I really haven’t had much trouble getting those things to work on my Linux machine. Many other things will not work on a Mac, ever. Try getting Linux to work completely on a newer Mac laptop. It won’t happen. The only way I could get Linux sort of working on my Mac laptop was by using VirtualBox. But, this was like putting a supercomputer inside a netbook.

    My frustration with OS X built continuously through the years. Now that I’ve decided to quit Apple and move to Linux (I’ve never used Windows), I’m able to easily do everything I need to do and I’m not subject to the ridiculous restrictions OS X places on its users.

  10. Robin says:

    Hi,

    sorry but I many args against Linux you brought have very much changed in the past 2/3 years or only very special:

    >But I do know that plain Linux installs often do not include word processors and >the like.
    Sorry but that’s a very weak argument. That’s not the case with at least Debian, Ubuntu, Suse, Fedora, Mandriva and many others. And these are the mostly used distributions.

    >Painless WiFi, all the time, every time.

    That has got a lot better, in the last 2 years ihaven’t had any problems, just simply typed in my pwd. (using Ubuntu)

    >Backups with Time Machine are unimaginably simple.

    I don’t use any GUI to backup can’t say anything to that

    >Most peripherals (cameras, scanners, printers, webcams, microphones, 3G cards, just about anything with a USB plug) work the first time with no special drivers, tweaking, or configuring.

    May I pick the word “MOST” out. 😉
    Try Ubuntu ;D

    – Sleep works.
    So what, mine too.
    and every one I know in Ubuntu

    >These may or may not be things which you care about. For me, I came to the >realization that I was more interested in the end result of all the tweaking of >Linux, rather than the actual process. OS X lets you skip all that and get to the >part where you can _actually_use_ your computer in no time at all.
    >
    >And if you don’t like it, you can always install Debian.

    I very much like that. That’s why I use Ubuntu.
    And I know people aged 70 who don’t have any knowledge about Computers and only work with Ubuntu

    >E.g., there can’t be a single binary package management system because lots of the >excellent software, even if it is free of cost, is third-party. But then, most of >these applications have their own automatic update checks built in. Take, for >instance, NeoOffice, which is the Mac version of OpenOffice (okay, there is also >OpenOffice for Mac nowadays, but NeoOffice performs better, in my opinion). So one >could argue that Mac is actually a step ahead of Linux in this regard.

    Sry, I don’t know why Mac is astep ahead. Let’s see you have program A which has an automatic check for updates. NOW program B hasn’t, THAT’s a problem or dou you like half your software updated an the rest not. I would say Mac’s a step behind and in that aspect on Windows’ state.

    >Of course, as Ian has already said, Mac support for peripherals is great. This was >one of the main reasons why I switched from Linux to Mac some seven years ago. I >still own a PC laptop and play with various new Linux distros as they come out >(they’re free anyway, right?), but there is always some peripheral problem or the >other (usually something with the graphics card). This is a notorious Linux >problem, and probably it’s the main reason why Linux has never taken off as a >mainstream desktop/laptop system.

    I really haven’t had any problems for two years with any PC’s I have used Ubuntu on, and I don’t know anyone who has. I agree it was a big problem some yyears ago but in the mean time it’s nearly disappeared

    >True, you have to install the developer tools separately, but I don’t consider >that a big deal. By far most users don’t need them. The tools take up a lot of >space, but they simply work, and they’re beautiful. (For Python / PHP / Tcl / >Perl, go to the ActiveState site.)

    I haven’t a problem with installing seperately but i’d have a Promlem with X GB
    I only would want g++ make and other standard tools, not a whole environment (i’d like to use my favorite). At least u should be able to choose

    >Internet connections, whether by cable or wifi, are self-configurating. I was >shocked to see it, the first time I tried! Everything worked, without any painful >tweaking!

    see above

    >For “one directory up”: do CMD-UpArrow.

    THAT is painful. k, i can understand not having a support for different protocols, well actually not even for that ;), but not having a simple button du go up one level.

    >Finally, what is important in my work is Unicode support in the keyboard layouts, >also for Asian languages. In Linux, KDE has made good progress in that direction, >but switching between layouts (when one is writing a multi-lingual text) can’t be >easier than it is on a Mac. And if your dream layout doesn’t exist yet, you can >make one yourself, using SIL’s free utility Ukelele.

    Can’t say anything to that, can only speak German and some English

    Regards,

    Robin

    Btw: I don’t mean to say that Mac is bad but that Linux, at least Ubuntu, is very awesome, too.

  11. yo says:

    so dont use it

  12. Julian says:

    I totally agree with you. I’ve had similar experiences about two years ago.

    If you have good supported hardware (e.g. Thinkpad) most things work out of the box (sleep, wifi, graphics) with modern distris (I’m using Fedora here).

    One thing which really annoys me is this bla about ‘Mac just works, not like Linux where you have to fix config files’. A few problems I still have in mind: If you close the lid it always gets to sleep. Installation of Xcode tools. Using gimp with X11. Ogg Vorbis support. HP Printer drivers just printing random pattern. Removing software. iTunes converting everything to aac. and and and ..

  13. Phil says:

    You lasted a lot longer than I did.

    > Mac OS X does not (and likely never will) have a centralized binary package management system like Debian. MacPorts is pretty lame. Sorry. You get over it.

    If by “get over it” you mean “waste a lot of time doing things manually that the computer should do for you”, maybe. In my experience the people who use Macs because “it just works” got burned 3 or 4 years ago by an xf86config file on gnu/linux and haven’t tried it since; it’s been years since I’ve had to work to manually get a piece of hardware working.

  14. dim says:

    Well in fact everybody’s right, as usual. It all depends what you expect your computer to do for you.

    I think nowadays the device support problem space has changed. Linux is a pretty damn solid good choice if what you want to do with your computer is computer related. If you do multimedia stuff, like audio recording from an instrument, or movie editing, then linux… not so much, thanks.

    If you want to enjoy a Unix system and not have to ever act as a sysadmin, they MacOSX is a solid choice, but you have to lose some liberty to have comfort.

    If being an admin and having to learn anything in depth before being able to figure out how to USE it is your thing, and you have loads of time in your hand (HINT: no kids), then linux is excellent a choice.

    That’s my vision of this Unix worstations, at least.

  15. Julian says:

    I went through the same thing, and had to switch back to debian. I still have to touch OS X regularly to ensure some things work on all platforms, and every time it’s a reminder of how much better a system like debian suits me. (And serves me; I can’t get over how many things are irritatingly manual under OS X. I always feel like I’m wasting a lot of time using it.)

    Also, strangely enough, I never had the luck with peripherals other people seem to have had — most of the devices I wanted to use under OS X (all of which were nicely supported under Linux) didn’t work out of the box (the only USB device that _has_ worked was a printer), and needed flaky, usually shareware, drivers. Not trying to hate on OS X here, but just to confirm to you that you’re not alone in finding that it’s no developer’s paradise. (OTOH, I’m also the sort of person who, if I encounter a bug while using a program, I like to have the option to try and fix it immediately rather than just reporting it and waiting.)

  16. For getting and updating software, you might want to check out homebrew: http://github.com/mxcl/homebrew/tree/

    This is basically Mac OS X’s missing packaging system. Installing anything with it is then as simple as `brew install something`

    It’s also much cleaner than fink or ports.

  17. Sharninder says:

    Much of what you’re writing comes from the fact that you’re moving to OS X from Linux. For example, OS X doesn’t have a central repository and you had to install Macports to get that. Tell, which other commercial OS has a repository ? Does Windows have one ? Only Linux and the BSDs can afford to do that because the repositories are maintained by the users and the distribution maker doesn’t have to worry about them too much or support or even certify the software that those repos contain. For all they care, the user can download and install viruses from those repos.

  18. Alph says:

    Apple can afford a centralised music repository, so why not a software one? For proprietary software developers this would mean an established store that would be there for them to sell their software through. And if they want to be the ones doing the sales, Apple could allow for a per-purchase token system: buyer is issued with a token by the developer which can then be used to obtain the software from the apple repository. Licences are maintained centrally, so even if you remove the package from your computer you retain the option to re-install it. More importantly a package manager is an agreed method: if Apple provided the management application, then decentralised repositories could be linked-in at the user’s own risk; an Apple repository need not hold everything.

    I own a June 2009 macbook pro, bought because looks and build appealed too me. I tried running Ubuntu on it, but gave up a few weeks ago after exhausting all remedies for preventing the laptop from getting too hot. I like having full control over the look and behaviour of both OS and applications. OS X just doesn’t allow for that (the only platform on which VLC cannot be used with themes?). Crucially, unix applications are second-class citizens; X11 just feels out of place in OS-X. There are times when I feel I’ve been had: there is a free OS out there that does all I want, but I paid a considerable amount of money to buy a computer that prevents me from using it! 🙂

  19. Reid says:

    To navigate up in either the Finder or in the file dialog, use command-uparrow.

Comments are closed.

%d bloggers like this: