Installation

OSX

yadm can be installed using Homebrew.

brew install yadm

RPM Based Installations

For RPM based systems like Fedora, Red Hat, CentOS, etc, there are repositories hosted by openSUSE Build Service.

Follow this link for repositories and installation instructions.

openSUSE

Tumbleweed

yadm is available in the official repository. Use zypper or dnf to install.

Leap/SLE 15

yadm is available to install manually via the utilities repository

Instructions are to be found in OBS

Note : 15.3 and further are located under SLE and not openSUSE

It is recommended to modify the priority of the repository to limit breakage :

zypper modifyrepo -p 100 utilities

Ubuntu/Debian

A version of yadm is available via standard package repositories. Use apt-get to install.

Arch Linux

yadm is available in the official repository, simply use pacman to install it.

sudo pacman -S yadm

Gentoo Linux

yadm is available in the main gentoo portage tree, simply use emerge to install it.

emerge -atv app-admin/yadm

Void Linux

yadm is available in the official repository, simply use xbps-install to install it.

xbps-install yadm

FreeBSD

yadm is available in the FreeBSD ports. Use pkg to install it from a prebuilt binary package:

pkg install yadm

OpenWRT

Install the required dependencies, via

opkg update
opkg install bash git git-http gnupg coreutils-chmod coreutils-stat

and then install yadm via the download or clone instructions below.

Download

You can simply download the yadm script and put it into your $PATH. Something like this:

curl -fLo /usr/local/bin/yadm https://github.com/yadm-dev/yadm/raw/master/yadm && chmod a+x /usr/local/bin/yadm

Of course, you can change the file paths above to be appropriate for your $PATH and situation.

Clone

You might wish to clone the yadm project and symlink yadm into your $PATH.

git clone https://github.com/yadm-dev/yadm.git ~/.yadm-project
ln -s ~/.yadm-project/yadm ~/bin/yadm

Now you can pull the latest updates to yadm using Git. Again, adjust the file paths above to be appropriate for your $PATH and situation.

Submodule

If you are comfortable with how Git submodules work, another option is to add the yadm project as a submodule and symlink yadm into your $PATH.

cd ~
yadm submodule add https://github.com/yadm-dev/yadm.git .yadm-project
yadm submodule update --init --recursive
ln -s ~/.yadm-project/yadm ~/bin/yadm
yadm add .yadm-project .gitmodules bin/yadm
yadm commit

When using submodules, you need to initialize them each time you do a fresh clone of your dotfiles.

yadm submodule update --init --recursive

Updating to a newer version of yadm would use commands similar to this.

cd ~/.yadm-project
git pull
yadm add ~/.yadm-project
yadm commit

Again, adjust the file paths above to be appropriate for your $PATH and situation.

You can find more information about Git submodules by reading the git-submodule man page.

Updated: