Mac OS X Installation

From HerzbubeWiki
Jump to: navigation, search

Another page in the wild and unsorted conglomerate of Mac OS X pages on this wiki. Here I try to list what software I typically install on top of a shiny new Mac OS X. This page is supposed to be a rough guideline what to do on a new install, but also - and more importantly - it should provide information about how a system looks after the installation. Too often I forget why I had installed this framework, or that plugin, or what I will have to clean when I do an un-install.


Applications

This section contains a roughly categorized list of applications (= things that go into /Applications) that I typically install. To remove the extended file system attribute that triggers the annoying security question on first launch:

xattr -d com.apple.quarantine /Applications/Foo.app

Note: TinkerTool also has a setting that allows to suppress the security question on a per-user basis.


Messaging & communication:

  • Discord


Development

  • Apache Directory Studio (LDAP)
  • Eclipse
  • GitHub for Mac
  • SourceTree
  • Xcode and other Apple developer tools (esp. the command line tools, and the Graphics Tools package; Xcode has a built-in menu that takes you to a list with downloads: Xcode > Open Developer Tool > More Developer Tools...)
    • Older Xcode versions installed stuff into /Developer and /usr/bin
    • Newer Xcode versions install as a normal application into /Application/Xcode.app. From inside Xcode, the command line developer tools also need to be installed for Fink and MacPorts support. These install into /usr/bin/.
  • CHUD (supplement to Developer Tools)
    • Installs into /Developer
  • Squeak
  • DiffMerge
    • Includes a command line utility diffmerge that is useful for launching the application from the command line
    • If DiffMerge is installed via .dmg, the command line utility must be installed manually. If DiffMerge is installed via .pkg, the command line utility is installed automatically into /usr/bin/diffmerge
    • See the Git wiki page for notes how to integrate DiffMerge with Git
  • 0xED
  • Iceberg


Audio

  • Audacity
    • Requires Lame and FFmpeg to be separately installed. There are two options for doing this:
    • In theory, you can install Lame and FFmpeg via Fink. In this case the libraries will be installed into /sw/lib and you will have to navigate yourself to that directory from Audacity's preference window (cmd+shift+g). The problem here is that Fink might give you the wrong versions of the libraries. The last time I tried this, I was able to convince Audacity to work with Lame, but not with FFmpeg.
    • For the above problems, it is usually easier to download the appropriate library versions in the way that is recommended on the Audacity wiki. Usually this means: Download Lame from the Lame website, and the FFmpeg installer from the Audacity website. To find the appropriate links: 1) Open Audacity preferences 2) On the "Libraries" page you will find two "Download" buttons for the two libraries. 3) Click these buttons and follow the instructions on the wiki page that opens in your web browser. If this option is used, the libraries will be installed into /usr/local/lib.
    • Or install Lame and FFmpeg via Fink. In this case the libraries will be installed into /sw/lib and you will have to navigate yourself to that directory from Audacity's preference window (cmd+shift+g)
  • mpc2aiff
  • SIDPlay
    • Requires the download of the HVSC collection
  • mAC3dec
  • CocoModX
  • Soundflower
    • Installs a kernel extension
    • Audio Hijack Pro is more user friendly but requires a license


Database

  • DB Browser for SQLite (used to fiddle with the digikam internal SQLite database). Install via Homebrew: brew install --cask db-browser-for-sqlite


Imaging

  • digikam. Install via Homebrew.
  • The Gimp. Install via Homebrew.
    • Scripts go into ~/Library/Application Support/Gimp/scripts
  • Hugin
    • Versions prior to 2010.4 required Autopano to be installed separately into /Library/Application Support/Hugin/Autopano. Autopano was part of the .dmg.
    • With modern versions of Hugin, Autopano is no longer required because Hugin now brings its own built-in control point detector, named cpfind. However, after upgrading from 2010.4 Hugin at first becomes unusable because in its preferences there still lurk the old Autopano settings, and those no longer work with the new Hugin version. To fix this and activate cpfind, go to the "Control Point Detectors" tab of the preferences dialog and hit "reset to factory settings".
  • icon2icns
  • icns2icon
  • icon2ico
  • Icon2PNG (extract icon from a file [e.g. icns], folder or volume and convert it to .png)
  • img2icns
  • Inkscape (used to require XQuartz, but this is no longer the case). Install via Homebrew.
  • macSVG
  • PhotoSync Companion
  • Pic2Icon (convert arbitrary images to icons)
  • Iconographer (development has stopped, the last available version 2.5 can be officially unlocked with the following information: name = "Iconographer is now free", registration code = "HG066414")
  • GeoTagger
  • Colors (download location; a color snatcher utility that can determine the color of any pixel on the screen and provide it in hex colors)


Multimedia/Video

  • Air Video Server HD (for streaming movies from the Mac to an iOS device)
  • HandBrake
    • To make HandBrake capable of ripping CSS encrypted DVD discs, it requires access to libdvdcss somewhere on the system.
    • The simplest way to install libdvdcss is via Homebrew. HandBrake automatically detects libdvdcss on app launch.
    • A number of years ago HandBrake would use libdvdcss from the VLC application bundle if VLC 1.x was installed on the system. This probably no longer works, and is certainly outdated because nowadays VLC has moved on to version 2.x or newer.
    • Also outdated and probably no longer true: The VideoLAN project used to provide a .pkg installer which would place a universal build of libdvdcss into /usr/lib/libdvdcss.2.dylib.
  • MakeMKV
  • OpenShot Video Editor
  • Shotcut
  • VLC. Install via Homebrew.
    • An internet plugin for web browser support exists, but it must be downloaded & installed separately
  • XBMC


Games

  • MyMahj (I use the OpenGL version MyMahjGL)
  • Allenroids
  • AnotherMine
  • GLTron
  • Goban
  • NeverBall
    • Uses .pkg installer format to place stuff in /Library/Application Support/Neverball Data
    • Generates an Uninstaller in the installing user's home directory; I prefer to move the Uninstaller into the above directory
    • Places highscores, configuration etc. in ~/.neverball
  • Pawns
  • Sabaki (Go board and SGF editor)
  • ScummVM
  • Spaceward Ho! (Shareware)
  • World of Goo (Demo)
  • Zoom (Z-Machine emulator to play Infocom games)
  • Ballerburg
    • Additional castles need to be imported into the game and are saved into ~/Library/Preferences/net.earthlingsoft.Ballerburg.castles
  • Oolite
  • Pac the Man X
  • Boxer


Networking

  • Firefox
  • Cyberduck (FTP)
  • iCab
  • Chicken of the VNC (JollysFastVNC may become an alternative)
  • Wireshark
    • May require XQuartz if the system X11.app is too old
    • Before Wireshark can be used, the permissions on /dev/bpf* must be changed because by default only root has access to these network devices
    • As an admin, say sudo chown patrick /dev/bpf*. This change will be lost when the system reboots the next time
    • The Wireshark disk image contains a startup item that will perform the permission change automatically on every system reboot; I don't install this because I don't use Wireshark very often
  • Dropbox
  • Deluge (Torrent Client)


Emulators & Virtualizers

  • Hatari
    • Requires SDL to be installed as a framework in /Library/Frameworks
    • Ships with the open source EmuTOS, but a real TOS image is required for many games; see smb://osgiliath/media/Software/Images/Atari/TOS
  • Parallel's Desktop
  • VirtualBox. Although useful, this application is disgustingly invasive and installs its components all over the system:
    • Installs kernel extensions
    • Installs a system startup item (/Library/StartupItems)
    • Installs a couple of utilities into /usr/bin
    • I have even found a directory here: /Library/Python/2.5/site-packages/vboxapi
  • Q (QEMU port & frontend)
  • Power64 (Shareware)


Entertainment

  • Stellarium
  • Celestia
  • MacDoku (play Sudoku)
  • SudokuDan (generate & print Sudoku puzzles)
  • Google Earth
    • Starting with version 5, Google Earth forces the user to install the Update Engine software (an open source project developed by Google)
    • The Update Engine seems to get installed into the user's home directory (~/Library/Google)
    • Starting with version 6, a browser plugin may optionally be installed (goes into /Library/Internet Plug-Ins)
  • Symmetries


Text Editors

  • BBEdit
  • Geany
  • MacDown (MarkDown editor)


Utilities

  • FairMount (requires VLC to be installed)
  • GrandPerspective
  • Greenshot (from the App Store)
  • iChm
  • Jar Inspector
  • Language Switcher
  • Pacifist (Shareware)
  • Sloth (a front-end to the lsof command line utility)
  • TinkerTool
  • unpkg
  • UnicodeChecker


Productivity

  • BibDesk
  • FreeMind
  • LibreOffice (replaces OpenOffice.org since Sun's takeover by Oracle), including the German language pack


Privacy

  • GPGTools
  • VeraCrypt (or TrueCrypt if 32-bit applications can still run on the target OS)
    • Truecrypt installs the MacFuse preference pane, framework and libraries (in /usr/local/lib). Note sure if VeraCrypt does the same.
    • TrueCrypt: From Mac OS X 10.10 (Yosemite) onwards the .mpkg installer no longer works out of the box. You first have to edit the file distribution.dist inside the .mpkg bundle with a text editor. See this AskDifferent question for details.


Other

  • XQuartz (replaces X11.app)
    • Must be re-installed every time after a Mac OS X update has been installed
  • MAMP
    • Contains a Dashboard widget that must be manually installed
  • iSerial Reader
  • Mactracker


Frameworks, plugins & other stuff in /Library or /System/Library

Stuff in this section typically goes into /Library. Specific locations:

  • Internet plugins are installed into /Library/Internet Plug-Ins
  • QuickTime components are typically installed into /Library/QuickTime
  • /Library/Components may also contain QuickTime components (e.g. XiphQT); I don't know what else may be place into this location
  • Application-specific stuff is installed into /Library/Application Support/foo
  • Kernel extensions are installed into /Library/Extensions, but sometimes also in /System/Library/Extensions (this is even documented in the Kernel Programming Guide, section "Kernel Extension Overview")
  • Frameworks are installed into /Library/Frameworks
  • Screen Savers are installed into /Library/Screen Savers
  • Startup items are installed into /Library/StartupItems
  • Dashboard widgets are installed into /Library/Widgets
  • Preference Panes widgets are installed into /Library/PreferencePanes
  • QuickLook plugins are installed into /Library/QuickLook


Internet plugins

  • SIDPlug
  • VLC


QuickLook plugins

  • SIDQLGenerator


Preference Panes

  • RCDefaultApp (no longer works on Silicon Mac)
  • RCEnvironment (no longer works on Silicon Mac)
  • Arcana Startup Sound
    • Also installs a system startup item /Library/StartupItems/ArcanaStartupSound
    • When the startup item starts or stops, it loads or unloads a kernel extension ArcanaPRAM.kext (appearing with the identifier arcana.PRAM) that is located as a resource inside the StartupItem
  • GPGPreferences (see this page for details)
  • Diablotin
  • MacFUSE (installed as part of TrueCrypt)
  • GeekTool


Frameworks

  • Python (download from python.org)
    • I usually install several versions that complement the system-provided Python (2.5 in Leopard)
    • Optional symlinks in /usr/local/bin, but I don't create these as they might clash with Fink, MacPorts or the system
  • SDL (download from libsdl.org)
    • Required for Hatari
  • MacFUSE (installed as part of VeraCrypt/TrueCrypt)


Kernel extensions (list loaded kernel extensions with the kextstat command line utility)

  • arcana.PRAM (see "Startup Sound" preference pane above)
  • at.obdev.nke.LittleSnitch (see "Little Snitch" below)
  • com.Cycling74.driver.Soundflower
  • org.virtualbox.kext.VBoxDrv
  • org.virtualbox.kext.VBoxUSB
  • org.virtualbox.kext.VBoxNetFlt
  • org.virtualbox.kext.VBoxNetAd


Other

  • Growl
    • Installs a Preference Pane
    • Provides helper apps such as GrowlTunes.app
  • Little Snitch
    • Installs a kernel extension to /System/Library/Extensions/LittleSnitch.kext
    • Installs a global launch daemon into /Library/LaunchDaemons, and two global launch agents into /Library/LaunchAgents
    • The actual daemon/agent binaries are installed in /Library/Little Snitch
    • Global rules go to /Library/Application Support/Objective Development/Little Snitch
    • Per-user rules go to ~/Library/Application Support/Little Snitch


Command line

Stuff in this section usually (but not always) goes into /usr/local.


My own set of shell scripts - the "Herzbube Toolbox" (HTB)

  • Base folder = /usr/local/htb
  • Users who want to enable the HTB in their shell environment must create two files with the following content in their home directory:
# If you use bash as the login shell, use .profile and .bashrc instead of .zprofile and .zshrc

$ cat << EOF >>~/.zprofile
HTB_BASE_DIR=/usr/local/htb
. \$HTB_BASE_DIR/etc/htb-profile.sh
EOF
$ cat << EOF >> ~/.zshrc
HTB_BASE_DIR=/usr/local/htb
. \$HTB_BASE_DIR/etc/htb-bashrc.sh
EOF


Other stuff in /usr/local:

  • Lame and FFmpeg in /usr/local/lib, for the use of Audacity
  • ASCIIMoviePlayer in /usr/local/bin
  • If GnuPG is installed via Fink and not GPGTools: Create a symbolic link /usr/local/bin/gpg that points to /sw/bin/gpg, to make the GPGTools utilities happy
  • MacFUSE in /usr/local/lib (installed as part of VeraCrypt/TrueCrypt)
  • Graphviz all over /usr/local (download link); could also be installed via Fink, but installing the pre-built binaries via .pkg is much easier (also includes headers, man pages, and a small Mac OS X application bundle)


Stuff outside of /usr/local

  • /usr/lib/libdvdcss.2.dylib, only present if the libdvdcss .pkg installer provided by the VideoLAN project was run. Important: These days this is no longer necessary, it's simpler to install libdvdcss via Homebrew.


Package manager

  • One of the following package managers
  • List of packages that I usually install
    • rsync. Mac OS X ships with the ancient, outdated version 2.6.9 which does not correctly handle extended attributes.
    • imagemagick. This is required by the GalleryRemote.app application.
    • flac, ffmpeg, mppdec. These are used for the occasional task of converting between different sound file formats. See this page for details.
    • gnupg. This is required by various applications of the MacGPG project, and other application bundles that work with GnuPG. I also use this to sign tags in Git repos I maintain.
    • wget. I install this just because I like it, and often prefer it to curl.
    • cabextract. Useful to handle Microsoft cabinet files (.cab extension).
    • git. For obvious reasons.
    • exiv2. Extract and manipulate EXIF and other image meta data.
    • gnuplot, gnuplot-py25. Create charts.
    • fortunes, fortune-mod, fortunes-min, fortunes-off. Fortune cookies that can be displayed in the login window by iQuip.
    • recode. Convert files between various character sets.
    • libmhash2. Hash Algorithms Library. I install this so that I can compile and install python-mhash.
    • wine. So that I can play a couple of Windows games.
    • gource. Fantastic visualization for version control history.
    • autoconf/automake. For compiling Fuego.
    • boost. For compiling Fuego.
    • ntfs-3g. NTFS write support (config details).
    • ant, docbook-xsl. Required to build GoGui.
    • bchunk. Convert .bin/.cue files to .iso.
    • unrar. Extract .rar archives that are not supported by the Mac OS X system utilities
    • PHP Composer. A package and dependency manager for PHP.
    • libdvdcss. For ripping CSS encrypted DVDs with HandBrake (HandBrake does not bundle libdvdcss to prevent legal problems).
    • DB Browser for SQLite. Inspect the digikam and other SQLite databases. In Homebrew install as cask: brew install --cask db-browser-for-sqlite
    • digikam
    • The Gimp
    • Inkscape
    • VLC
    • Hugo and asciidoctor
    • CocoaPods


Documents

  • crosshairs.kmz (Google Earth thingy for geotagging)


Installing a new Mac OS X system

This section provides an ultra-short overview of how I usually proceed when installing Mac OS X.


Users

  • The first user created during installation is the Administrator (I usually name this user "admin")
  • The administrator creates all other users and makes them non-privileged users
  • Installing programs and performing other system configuration is done while logged in as the administrator
    • within the GUI, Mac OS X will automatically request the admin password when it is necessary
    • within the shell environment (Terminal.app), the administrator needs to use sudo


Networking

  • The MAC adress can be found in the System Preferences in the "Network" module
  • The computer name can be set in the System Preferences in the "Sharing" module; on the command line the computer name needs to be set with sudo hostname nargothrond. Note: This setting is periodically lost for unknown reasons and must be redone.


Volumes, and where to store applications and data

  • In earlier times I usually advocated creating several volumes (partitions), e.g. one for storing data, one for installing applications, etc.
  • I have given up on this approach and now create only one single large partition; the reasons
    • I never really had any benefit from this partitioning scheme
    • The natural place to install Mac OS X applications is the /Applications folder; Apple applications always go there, and if you move them somewhere else (e.g. /Volumes/app) all sorts of things might start to go wrong (system updates might not work properly, applications might simply not run, etc.); if you do not move them you suddenly have two locations where you need to look for applications
    • Naturally I chose to make the root volume rather small (in comparison to other volumes), which usually resulted after some time in space problems (e.g. I might suddenly become unable to burn a CD or DVD, because the Finder's burning facility seems to store an image in the root volume)
    • To sum it up: I wanted to use the system, not fight it, so I just stopped partitioning, even though I am still convinced that it is a good idea


Shell/Terminal configuration


Printer configuration (the following stuff works for my HP LaserJet)

  • Turn on printer
  • Printer discovery should work in the background through Bonjour
  • Open the "Print & Fax" module in the System Preferences
  • Click the "+" button to add a new printer
  • The printer should appear in the following window where you can select and add it to the system. The system will download the necessary printer drivers in case they are not yet present, so this may take a few minutes.


Certificates

  • The CAcert certificates should be installed in the system keychain (/Library/Keychains/System.keychain) so that all system users have access to them. This is important when IMAP, CalDAV and CardDAV accounts are created for the other users.
  • Download location = http://www.cacert.org/index.php?id=3
  • After installing the certificates, double-click the CAcert root certificate in the Keychain Access app to open it, then click on the arrow labelled "trust" and select "Always trust" from the first combo box.
  • Unfortunately, Firefox does not use the system keychain, so downloading and installing into Firefox has to repeated for all system users.


Old stuff

Once upon a time I was using the following software packages, but I stopped using them either because they are no longer maintained, or for some other reason.

  • Amadeus. Once upon a time this was a shareware application for which I had paid. Nowadays it's a commercial app distributed over the App Store. I guess my shareware key from the old days is no longer valid, but I didn't even try because on the rare times that I have been trying to do any sound editing I have been using Audacity.
  • AppleWorks (Commercial). No longer developed by Apple. These days apps like Pages and Keynote are given away by Apple for free with every Mac computer.
  • Astah. Long ago there was a free Community Edition. This is no longer available, so I no longer use this product.
  • CandyBar
  • Chopper (1.0.3 is the latest version available for free)
  • DVDRemaster (Commercial)
  • Flash Player
  • Goldberg. Development seems to have stopped with the release of 2.5.1 in January 2008.
  • iPhoto. Discontinued by Apple.
  • krank (development seems to have stopped with the release of version 7 in February 2007)
  • MacTheRipper
  • Mou. Xcode and other tools (e.g. WebStorm) nowadays have markdown support. With MacDown, there also is an open source alternative available.
  • MPlayer OSX Extended. Has been retired. Nowadays I'm using VLC for video playback.
    • Installation of binary codec package adds support for proprietary codecs (WMV9, RealVideo 10, QuickTime and others)
    • The codec pack can only be used if MPlayer is launched as 32-bit process. This can be enabled in the app's preferences
  • Phoenix Slides
  • Popcorn (Commercial)
  • QuickTime plugins (Flip4Mac, Perian, XiphQT)
  • Quinn (no longer distributed due to legal threats against the author Simon Haertel by the Tetris Company)
  • RealPlayer
  • Skype
  • TextWrangler. Has been superseded by BBEdit.
  • Toast Titanium (Commercial)
  • Vine Server (OSXvnc). Only if the system is <= 10.3. If the system is >= 10.4 it includes Remote Desktop, which VNC clients can connect to.
  • XRay (Shareware)
    • Optionally installs a contextual menu item