Half a month back I upgraded two of my Macs to Yosemite. One was my relatively new MacBook Air at home, which had Mavericks on it. The other was my slightly old MacBook Pro at work, which had Mountain Lion. To my relief, the upgrade went briskly on both systems. (Here’s a little secret: I used this guy’s excellent advice to make sure the upgrade did not take too long to finish.) Not only that, to my surprise, Yosemite improved the OS X experience–both UI and performance wise–greatly. I was afraid putting Yosemite on my MacBook Pro, in particular, might slow it down, forcing me to clean the system and attempt a fresh install. I took backups of course, as should you, but cleaning up an entire system and setting it from scratch isn’t a happy thought. As a rule, I prefer not to do upgrades for major OS X (or iOS) releases. In my experience, a clean install almost always is the better option. Upgrades across major versions of the OS are risky to do. They also additionally–if they do succeed–run the risk of slowing the OS or parts of it down afterwards because of corrupted configurations and whatever mess that was created during the upgrade. The more data you have on your system that you want to upgrade, the greater the risk of a failed or botched upgrade.
Yosemite proved otherwise. For me, at least. I have friends who, unfortunately, have reported issues after upgrading to Yosemite, but they’ve all had older Macs than I do. I can only speak for myself.
Some things did break, though. Like MacVim, which I love, but which I won’t talk about right now. On my work MacBook Pro, I had Wireshark installed that I was using from time to time to dissect network traffic. It’s a great tool. On Yosemite, it stopped working. I found suggestions from strangers on the Internet about re-installing Wireshark, dejected responses from people who did only to find it didn’t make a difference. I then came across a consensus on reinstalling X11/XQuartz instead. People shouted that it worked.
Before I went ahead and reinstalled X11/XQuartz on Yosemite, I fell upon a small gem which explained why X11/XQuartz needed to be reinstalled and how reinstalling it could be avoided. It said that Wireshark was expecting X11/XQuartz to be inside /usr when in fact in Yosemite it was now under /opt. A simple solution was to create a symbolic link inside /usr with the following harmless command on Terminal:
sudo ln -s /opt/X11 /usr/X11
Sure enough, that did cause Wireshark to start. But it took an awful lot of time to show up. X11 apps are slow and crappy in terms of responsiveness on Macs, but they don’t take that long to load. When it did show up on the screen, it failed to detect any interfaces. Now that seemed rather odd. I looked at the system logs through Console.app and figured out that it was a rather silly permission issue. The easiest but not the recommended solution was to run Wireshark as root:
I needed to get real work done and couldn’t afford to spend any more time than I had trying to figure out a better way to run Wireshark, so I went ahead with running it as root. But you shouldn’t. As it happens, there are ways to a better solution that involve setting up Wireshark with privilege separation. The Wireshark wiki has an article about it. There is a section near the bottom about OS X which does not read very positively. But there’s a solution there. If you’re finicky about running apps with root privileges–and you should be–, you should go through it. I need to play with it. When I have it all pieced together, I will write again.
Enjoy dissecting packets and analysing network traces!