Installation

Installation

Building GRM requires the Rust toolchain to be installed. The easiest way is using rustup. Make sure that rustup is properly installed.

Make sure that the stable toolchain is installed:

$ rustup toolchain install stable

Then, install the build dependencies:

DistributionCommand
Arch Linuxpacman -S --needed gcc openssl pkg-config
Ubuntu/Debianapt-get install --no-install-recommends pkg-config gcc libssl-dev zlib1g-dev

Then, it's a simple command to install the latest stable version:

$ cargo install git-repo-manager

If you're brave, you can also run the development build:

$ cargo install --git https://github.com/hakoerber/git-repo-manager.git --branch develop

Static build

Note that by default, you will get a dynamically linked executable. Alternatively, you can also build a statically linked binary. For this, you will need musl and a few other build dependencies installed installed:

DistributionCommand
Arch Linuxpacman -S --needed gcc musl perl make
Ubuntu/Debianapt-get install --no-install-recommends gcc musl-tools libc-dev perl make

(perl and make are required for the OpenSSL build script)

The, add the musl target via rustup:

$ rustup target add x86_64-unknown-linux-musl

Then, use a modified build command to get a statically linked binary:

$ cargo install git-repo-manager --target x86_64-unknown-linux-musl --features=static-build

Nix

Run from github without downloading:

$ nix run github:hakoerber/git-repo-manager/develop -- --version
git-repo-manager 0.7.15

Run from local source directory:

$ nix run . -- --version
git-repo-manager 0.7.15

Integrate into a Nix Flake:

{
  inputs = {
    ...
    git-repo-manager = {
      url = "github:hakoerber/git-repo-manager";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.flake-utils.follows = "flake-utils";
    };
  };

  outputs = {
    ...
    pkgs = import inputs.nixpkgs {
        ...
        overlays = [ inputs.git-repo-manager.overlays.git-repo-manager ];
    };
  };
}