[SOLVED] Proxmox-backup-client (partially solved)

does anyone here have success following the instructions at proxmox/proxmox-backup: Proxmox Backup Server and Client - read only mirror (github.com) ? I think it's obvious to people who use Rust, but for the rest of us the instructions could be clearer. Examples:

rustup toolchain: I did a google search and it seems rustup is like rbenv or nvm, i.e. to allow switching between versions of rust. if I have only the rustc Debian package, do I need to care about rustup? Seems not, but I am not sure.

Versioning of proxmox helper crates: do I need to understand this if all I need is to build the package? Do I need to change anything to build? If yes, which file?

Local cargo config: again, do I need to do anything here to build?

I feel that perhaps I am too nosy; all of this started just because I wanted to build the pbs client from source and failed, despite my honest attempt to follow the official instructions.

I think for a proxmox developer it would take less than 5 minutes to copy&paste the instructions into a fresh debian install and see if the instructions work.
 
IMHO if we can make this work it could have a very large impact on adoption of PBS, since the client can be used on any linux amd64 host (like advertised in the docs).
 
the instructions on debian buster/bullseye are simple:

- add the proxmox devel repo (e.g., for buster http://download.proxmox.com/debian/devel/ buster main), which contains all the crates we use plus the rust toolchain
- clone the proxmox-backup git repo
- checkout the correct branch (stable-1 for buster, master for bullseye)
- run apt update; apt build-dep . to install the build dependencies
- run make deb to build packages (or cargo build --release or whatever else you want ;) )

now to get the client building on/for older/other distros, you will need to understand basics of building rust software, as you then won't have our packaged crates, you might not have all the libraries in new enough versions on the target system (e.g., libzstd for compression, crypto things for signing/encrypting/TLS, ..) - like @t.lamprecht said, some of those are not strictly necessary for the backup part and could be patched out (e.g., fuse3 is only needed for mounting backup snapshots as fuse file system, so only relevant for manual restore). you might want to statically link newer versions than your target system has. without some knowledge of rust code and linking in general you will definitely have a hard time.
 
  • Like
Reactions: Tony
thanks @fabian for the reply, very much appreciated.

Following your hints I could run
Code:
make deb
without error. The key hints for me were the last 2 lines which differ from the official docs.

After I mess around, how do I rebuild only proxmox-backup-client?
 
if you just want to build the client binary, cargo build --release -p proxmox-backup-client --bin proxmox-backup-client (the -p proxmox-backup-client is for the master branch where we re-organized quite a lot of the code, the stable-1 branch still has the client binary in the top-level crate). the built binary will be in target/release/proxmox-bakcup-client
 
  • Like
Reactions: Tony

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!