Hacker News new | ask | show | jobs
by nrh 733 days ago
I'd love to try this, but most of the places that I would want to use it are servers, and the rust requirements are way beyond where debian-stable lives.

Too much hassle to muck with backports and package pinning for a QoL tool - my feedback would be to try to make this install without tomfoolery on the stable branch of major distros.

3 comments

Rust executables generally compile to static binaries. No you don't need to install Rust on the server, just compile once locally and copy the binary.
That is exactly the problem. Debian prefers the dynamic linking approach, where libraries can be updated individually. The problem usually comes down to having all the cargo dependencies packaged inside the debian repo. Which is doable, a similar thing happens for pip and other tools. But still kinda messy
I'm confused why that's a problem. Just because Debian prefers dynamic linking doesn't mean it's incapable of running static binaries.
For most of the rust tools I tried—not this one though—they provided precompiled static binaries that is so easy to deploy to any systems, including ancient distros (like RHEL 7).

So it is easy to solve this problem—just provide pre-compiled binaries on GitHub Releases. I believe the rust ecosystem made this relatively easy.

There's a "debian" folder, I suspect it's trivial to build a Deb and manually install?

Seems to have pretty modest install dependencies?

https://github.com/shell-pool/shpool/blob/master/debian/cont...

I had to do this:

  git clone https://github.com/shell-pool/shpool.git
  cd shpool
  sudo apt install libpam0g-dev
  # you may need to install build-essential and other packages too as the
  # build-depends field in debian/control is incomplete 
  dpkg-buildpackage -b
  sudo apt install ../shpool_0.6.2_amd64.deb
  systemctl --user enable shpool
  systemctl --user start shpool
And the most demanding part of that listing can be done on a build machine.

This benefit of compiled languages is often overlooked by folks who are (mostly/only) familiar with dynamic languages like PHP, Python or Js/Ts

i had to `dpkg-buildpackage -b -d -us -uc`