Set up your macOS from scratch.
macstrap is a command line tool to simplify the initial setup or the reinstallation of command line tools and GUI applications in OS X. To install and keep them up to date macstrap uses homebrew.
macstrap has been tested on OS X 10.13+ and therefore this is needed as requirement. It is possible that it also works with earlier versions of OS X but this is not supported.
First read the Configuration section as it is important how you want to configure macstrap. Also have a look at the Migrating the configuration section before you update such that everything is still working properly with the new version of macstrap. After that you can install or update macstrap by executing the following line.
mkdir -p /tmp/macstrap && cd /tmp/macstrap && curl -L https://github.com/guylabs/macstrap/archive/master.tar.gz | tar zx --strip 1 && bash ./install.sh && rm -rf /tmp/macstrap && cd ~
This will install macstrap to the /usr/local/lib
folder and create proper symlinks in the /usr/local/bin
folder such
that you are easily able to execute the macstrap
command from the command line. It will also install the following required
applications:
- The OS X command line tools which macstrap needs for Git.
- homebrew to install the command line tools.
When you are asked to select how to configure macstrap choose the option you prefer, either the default configuration or a custom configuration.
If you already have macstrap installed the install script will replace the old version and keep your configurations.
When done execute macstrap install
to install the configuration set above.
macstrap is configured with a "configuration GIT repository" to enable versioning (tagging and branching) of the configuration. While installing macstrap you will be asked how to configure macstrap and are able to select the default configuration or a custom configuration.
Have a look at the following sections to see what the default configuration contains and how to create a custom configuration.
The default macstrap configuration resides in the macstrap-config
GIT repository.
This repository is built up with the needed structure and contains all required default scripts and configurations.
Please have a look at the macstrap.cfg
to see which apps,
command line tools etc. will be installed if you choose the default configuration.
If you want to create a custom configuration please follow these steps:
- Fork the
macstrap-config
repository as this also serves as template configuration repository. - Checkout the
README.md
files in each folder to see how to customize your configuration and have a look at the default scripts how they are built up. - When you finished the customizations then please commit and push the changes to your repository.
- When you now install macstrap then please choose to select your own GIT repository and then point to the HTTPS clone URL of your customized configuration repository.
When you upgrade to a newer version of macstrap then please check the changes done in the default macstrap-config
GIT repository
and adapt it with your version. You can easily compare the two repositories as you did a fork of the default one. This way you can easily merge the changes and update
your custom repository.
macstrap offers several commands which are used to install or update the system. The following sections describe all available commands.
This command will execute the install.sh
of the defined configuration repository.
In the default configuration it will install all tools and apps which are defined in the macstrap-config
repository.
This command will execute the update.sh
of the defined configuration repository.
In the default configuration it will update all tools and apps to the latest available version with the help of homebrew. It also schedules
the OSX updates of OSX specific software.
This command will download the newest master version of macstrap and execute the install.sh
script to update macstrap.
macstrap itself is a fork of the dots project which has the base functionality to install and update the command line tools and the GUI applications. So please also have a look at this project if you also need a similar functionality for Ubuntu. At this point I want to thank Matthew for his nice work.
macstrap is available under the MIT license.
© Matthew Mueller - Forked project (https://github.com/matthewmueller/dots)
© Modifications by Guy Brand