Skip to content

Latest commit

 

History

History
119 lines (92 loc) · 3.39 KB

BUILD_macos.md

File metadata and controls

119 lines (92 loc) · 3.39 KB

MacOS environment setup

The instructions below are provided as in a best-effort basis. PRs with corrections and updates are welcome!

  • Install Homebrew

  • Go version from go.mod

    • Follow official instructions to install Go

      • On an M1 Mac, download ARM64 installer from https://go.dev/dl/
      • Download the installer for <version from go.mod>
      • After installing, don't forget to export PATH="/usr/local/go/bin:$PATH" in ~/.zprofile
      • If you need other go versions, see https://go.dev/doc/manage-install
        • You will need to add export PATH="$HOME/go/bin:$PATH" to the ~/.zprofile
    • Or install required version of Go with homebrew:

    # if we are not on the latest, you might need to install like this:
    # brew install go@<version from go.mod>, i.e. 1.16
    #
    # check which version will be installed by running:
    # brew info go
    
    brew install go
  • Rust and Cargo version from build.assets/Makefile (search for RUST_VERSION):

    brew install rustup
    • Initialize Rustup
    rustup-init
    #
    # accept defaults
    #
    # Once command finishes successfully, you might need to add
    # 
    # export PATH="$HOME/.cargo/bin:$PATH"
    # 
    # into ~/.zprofile and run:
    # 
    # . ~/.zprofile
    # 
    # or open a new shell
    • Install the required version
    rustup toolchain install <version from build.assets/Makefile>
    cd <teleport.git>
    rustup override set <version from build.assets/Makefile>
    rustc --version                                                                                                                                                                  ─╯
    # rustc <version from build.assets/Makefile> (db9d1b20b 2022-01-20)
  • To install libfido2 (pulls openssl 1.1.1 as dependency)

    brew install libfido2
  • To install yarn for building the UI

    • brew install node yarn
    • Currently, yarn (< 2.0.0) is required
Local Tests Dependencies

To run a full test suite locally, you will need

  • helm and helm-unittest plugin

    brew install helm
    helm plugin install https://github.com/quintush/helm-unittest
  • bats-core version from build.assets/Dockerfile (search for bats-core)

    curl -L https://github.com/bats-core/bats-core/archive/v1.2.1.tar.gz -o ~/Downloads/bats.tar.gz
    cd ~/Downloads
    tar xzvf bats.tar.gz
    sudo mkdir /usr/local/libexec
    sudo chown $USER /usr/local/libexec
    cd bats-core-1.2.1
    sudo ./install.sh /usr/local
    cd ../
    rm -rf bats-core-1.2.1 bats.tar.gz
  • protoc binary, typically found in protobuf package

    brew install protobuf
  • gnu-sed since Makefile tasks run inside linux containers typically

    brew install gnu-sed
    echo 'export PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH"' >> ~/.zprofile
  • increased ulimit -n

    ulimit -n 2560 # 10x default