3.8 KiB
MacOS Environment Setup
To set up your MacOS environment, follow these steps using Homebrew as the main
package manager. Aim to install versions specified in
build.assets/versions.mk; for others, use the
latest Homebrew version.
The instructions below are provided on a best-effort basis. PRs with corrections and updates are welcome!
-
Install Homebrew
-
Install Go
brew install go -
Install Rust
Install rustup with Homebrew:
brew install rustup # Make sure rustup's binaries are on your PATH, as printed by # `brew info rustup` (add the export to your shell profile): export PATH="$(brew --prefix rustup)/bin:$PATH" # Install a default toolchain. Teleport pins the exact version it needs # via rust-toolchain.toml, so any recent stable toolchain works here. rustup default stableImportant
Do not install the Homebrew
rustformula alongsiderustup. It puts its owncargoandrustcin/opt/homebrew/bin, which shadow rustup's shims on yourPATH. Builds then ignore the version pinned inrust-toolchain.toml.If it is already installed, run
brew uninstall rustand confirmwhich cargoresolves to rustup's~/.cargo/bin/cargo. -
Install Node.js
-
Find the required Node version in
build.assets/versions.mk(NODE_VERSION). -
Install Node.js (Homebrew only supports MAJOR version):
# Replace <version> with the MAJOR value of NODE_VERSION from build.assets/versions.mk (e.g., 22) brew install node@<version> -
Install to PATH and apply the changes to your shell:
# Replace <version> with the MAJOR value of NODE_VERSION from build.assets/versions.mk (e.g., 22) echo 'export PATH="/opt/homebrew/opt/node@<version>/bin:$PATH"' >> ~/.zshrc source ~/.zshrc -
Verify the installed version:
node --version
-
-
Install
llvm:brew install llvm # Update PATH and apply changes to shell echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.zshrc source ~/.zshrc -
Install
libfido2:brew install libfido2 -
Install
pkg-config:brew install pkg-config -
Install
helmand thehelm-unittestplugin:brew install helm make helmunit/installed -
Install
bats:-
Find the required
bats-coreversion frombuild.assets/Dockerfile(search forbats-core). -
Set the version variable and install
bats-core:# Replace <version> with the required bats-core version (e.g., 1.12.0) BATS_VERSION=1.12.0 curl -L https://github.com/bats-core/bats-core/archive/v${BATS_VERSION}.tar.gz -o ~/Downloads/bats.tar.gz cd ~/Downloads tar xzvf bats.tar.gz sudo mkdir -p /usr/local/libexec sudo chown $USER /usr/local/libexec cd bats-core-${BATS_VERSION} sudo ./install.sh /usr/local cd ../ rm -rf bats-core-${BATS_VERSION} bats.tar.gz -
Verify
batsinstallation:bats --version
-
-
Increase the maximum number of open files:
ulimit -n 2560 # 10x default -
Test the environment by building development artifacts and running tests:
make all test
Congrats! Your MacOS environment is now ready for development 🎉
If you encounter any issues, please refer to the official documentation or open an issue in the repository for assistance.