
Hermes – package manager and deployment tool for Linux - ingve
https://acha.ninja/blog/introducing_hermes/
======
wscott
Looks interesting. My use case for systems like this is a little different. I
am often on a work machine with a 10+-year-old Linux distribution and I have
to rebuild a totally separate userland in order to be able to use modern
tools. This works but it is tedious.

But several of the attempt to use things like NIX for this failed because they
require modern kernel APIs for things like namespaces.

~~~
easygenes
Yep, I’ve been there. Tooling around building up these legacy userlands would
be nice.

------
StavrosK
I would generally not see the need, except I spent an hour helping a friend
set up a Python dev environment, and it was terrible. The problem wasn't that
the env itself was hard to set up, the problem was that it was very hard to
figure out which Python it would use, where the packages would go, how to
prevent the other four Python versions installed from interfering with it,
etc.

This looks pretty great, so I'm probably going to give it a shot. Then again,
a script would use a specific/known Python version and create a virtualenv
with would also work.

EDIT: Maybe I should write a script that downloads all the necessary files
somewhere and creates a virtualenv with a given Python version, a la `curl
[https://www.whatever.com/setupvenv.py](https://www.whatever.com/setupvenv.py)
| bash`.

~~~
spoondan
For the specific problem of easily setting up Python environments, you may
wish to look into pipenv:
[https://pipenv.pypa.io/en/latest/](https://pipenv.pypa.io/en/latest/)

~~~
StavrosK
Pipenv is a bit deprecated, Poetry is the current recommendation (and what I
use).

~~~
ies7
Pipenv and poetry seems ok, but before those two (and wheel) we use conda and
it covers our need.

And this is my top concern when introducing python to new team.

There still no 'single' way to do this.

~~~
StavrosK
The problem with conda is that it's what broke the machine I was talking
about. Apparently it doesn't very much like when you use a package manager
other than conda, and things break in subtle ways.

------
lukevp
I get the comparison to nix and all, but docker does a heck of a lot more than
reproducible builds and dependency management. It’s also a way to formalize
network and other resource access, Perform local dns, automatically control
the lifecycle of apps, control logging, etc. the dependencies is just one
part.

I appreciate the design goals of the developer as presented here, since
simpler programs also tend to perform better and have fewer bugs. The whole
dependency management issue is fascinating to read about. I just run
everything in docker on Linux and use yum or apt for native bootstrapping of
the device (os level firewall, docker, git, Fail2ban, and a couple others). Do
people who mostly use containers thru docker or kubernetes find themselves in
need of more sophisticated package managers than those built in to the OS?

~~~
sneak
In my experience, most Docker builds are _not_ reproducible, for the generally
accepted definition of “produces a build artifact with the same hash”.

~~~
solarkraft
Right, they're not exactly reproducible (and real reproducibility is much
cooler), but images solve the main use case (having a clearly defined state)
almost as well, at a generally much lower cost.

------
nerdponx
This is very interesting. Does it run as non-root? And out of curiosity, why
Janet specifically?

~~~
andrewchambers
I like Janet, and the internals matched well with what I had in mind.

It doesn't require root, though the root mode works a bit better at the moment
due to it having better sandboxing, but not fundamentally so.

~~~
nerdponx
Excellent. Running as non-root is a really nice feature. Depending on how this
works, it could potentially be a Homebrew and possibly even Conda alternative.
I'm definitely going to try this out.

------
chrisseaton
Name kind of overlaps with Hermes the literal packet manager.

~~~
k__
There is also a JavaScript engine called Hermes.

------
fxtentacle
I wonder if Hermes for a digital packet manager will be OK because Hermes is
also a company offering packet and parcel delivery and related online
services.

~~~
luckylion
And since they're often late, tend to lose, misdirect or damage packages ...
I'm not sure it's a good choice even if there's no legal issue or the company
okays it.

~~~
gnomewascool
Hermes is also far more (?) obviously the Greek messenger of the gods, so any
negative associations with an existing company (that AFAICT doesn't even deal
with digital products) shouldn't be relevant.

~~~
chrisseaton
But both are package managers.

~~~
polycaster
But only one in a literal sense and the other one is just a metaphor. They are
very different things. Sure, they have in common the logistics of bundling
things together in units and bringing them on track. But the same applies for
kindergartens.

------
lloydatkinson
> Build everything from source.

Sigh

~~~
waheoo
While i kinda wish mac users would stop trying to give us homebrew, im open
minded.

Im curious how this works with linux package managers that already exist, does
this work like how the aur and aur helpers layer over pacman but maintain
compatibility with the community repos?

~~~
jorams
If it's like Nix and Guix in that regard, it is completely separate from them.

