Skip to content

Latest commit

 

History

History
59 lines (43 loc) · 1.66 KB

source.md

File metadata and controls

59 lines (43 loc) · 1.66 KB

Installation from source

  1. Verify that you have Go 1.21+ installed

    $ go version

    If go is not installed, follow instructions on the Go website.

  2. Clone this repository

    $ git clone https://github.com/cli/cli.git gh-cli
    $ cd gh-cli
  3. Build and install

    Unix-like systems

    # installs to '/usr/local' by default; sudo may be required, or sudo -E for configured go environments
    $ make install
    
    # or, install to a different location
    $ make install prefix=/path/to/gh

    Windows

    # build the `bin\gh.exe` binary
    > go run script\build.go

    There is no install step available on Windows.

  4. Run gh version to check if it worked.

    Windows

    Run bin\gh version to check if it worked.

Cross-compiling binaries for different platforms

You can use any platform with Go installed to build a binary that is intended for another platform or CPU architecture. This is achieved by setting environment variables such as GOOS and GOARCH.

For example, to compile the gh binary for the 32-bit Raspberry Pi OS:

# on a Unix-like system:
$ GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=0 make clean bin/gh
# on Windows, pass environment variables as arguments to the build script:
> go run script\build.go clean bin\gh GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=0

Run go tool dist list to list all supported values of GOOS/GOARCH.

Tip: to reduce the size of the resulting binary, you can use GO_LDFLAGS="-s -w". This omits symbol tables used for debugging. See the list of supported linker flags.