Packaging¶
This guide covers installing zfs-backup using various package managers and building packages from source.
Pre-built Binaries¶
The easiest installation method is downloading pre-built binaries from the releases page.
Verifying Downloads¶
curl -L https://github.com/timlinux/zfs-backup/releases/latest/download/checksums-sha256.txt -o checksums.txt
sha256sum -c checksums.txt --ignore-missing
NixOS / Nix¶
Using Flakes (Recommended)¶
Run directly without installing:
Install to your profile:
NixOS Module¶
Add to your flake.nix:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
zfs-backup.url = "github:timlinux/zfs-backup";
};
outputs = { self, nixpkgs, zfs-backup }: {
nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
modules = [
zfs-backup.nixosModules.default
{
programs.zfs-backup.enable = true;
}
];
};
};
}
Arch Linux (AUR)¶
Using an AUR Helper¶
Manual Build¶
Debian / Ubuntu¶
Build from Source¶
git clone https://github.com/timlinux/zfs-backup.git
cd zfs-backup
# Copy debian packaging files
mkdir -p debian
cp packaging/deb/* debian/
# Build the package
dpkg-buildpackage -us -uc -b
# Install
sudo dpkg -i ../zfs-backup_*.deb
sudo apt-get install -f # Install dependencies
Dependencies¶
Fedora / RHEL / CentOS¶
Build RPM¶
# Install build dependencies
sudo dnf install golang rpm-build
# Clone and build
git clone https://github.com/timlinux/zfs-backup.git
cd zfs-backup
# Create source tarball
tar czf zfs-backup-1.2.0.tar.gz --transform 's,^,zfs-backup-1.2.0/,' \
*.go go.mod go.sum vendor/ LICENSE README.md
# Build RPM
rpmbuild -tb zfs-backup-1.2.0.tar.gz
# Install
sudo rpm -i ~/rpmbuild/RPMS/x86_64/zfs-backup-*.rpm
Dependencies¶
Snap¶
Classic Confinement
ZFS backup requires classic confinement to access block devices and ZFS commands.
Flatpak¶
Not Recommended
Flatpak sandboxing is not ideal for ZFS tools which need direct access to block devices and kernel modules. Consider using native packages instead.
cd packaging/flatpak
flatpak-builder --user --install build com.kartoza.ZfsBackup.yml
flatpak run com.kartoza.ZfsBackup
Building from Source¶
Prerequisites¶
- Go 1.22 or later
- ZFS utilities
- syncoid (from sanoid)
Build¶
git clone https://github.com/timlinux/zfs-backup.git
cd zfs-backup
go build -ldflags="-s -w" -o zfs-backup .
sudo mv zfs-backup /usr/local/bin/
Dependencies Summary¶
| Dependency | Required | Purpose |
|---|---|---|
| zfs/zpool | Yes | ZFS filesystem commands |
| syncoid | Yes | Efficient incremental backups |
| udisks2 | Recommended | USB drive power management |