Mark Sapiro writes:
On Thu, Jan 25, 2024 at 4:43 PM Wikinaut <mail@tgries.de> wrote:
I recently found the "pipx" wrapper very useful and wanted to ask you if this could be facilitate the fresh installation of the mailman3-suite. Has anyone in the list already experiences installing mailman and mailmanweg through "pipx"?
pipx apparently does create virtual environments. See https://pipx.pypa.io/stable/comparisons/
The thing there that concerns me is "pipx replaces a subset of pip's functionality; it lets you install cli applications but NOT libraries that you import in your code."
What does this say about the multiple dependencies that we install.
I'm pretty sure it will install dependencies. I think (everything I say below is based on reading the README.md from pipx's pypa.io repo, so caveat installer) that the complexity that will arise is that (for example) a naive approach like
$ pipx install mailman $ pipx install mailmanweb $ pipx install postorius $ pipx install hyperkitty
will create 4 separate venvs with 3 copies of mailmanclient, 3 copies of django-mailman3, and two copies of Django. Besides the space waste, there's also the small problem that mailmanweb won't have copies of postorius and hyperkitty in its venv. :-þ pipx has an "inject" command that allows adding other packages to a venv, but I think this means that pipx has no great advantage over the standard way of installing mailman into a venv.
pipx also installs stuff into the user's $HOME, specifically into ~/.local/share/pipx/venvs which I think will be kind of annoying if you need to dig into package resources. (I expect that you will still install configs into /etc/mailman3 and various data into /var/lib/mailman3/var or /opt/mailman3 or whatever without a problem.) This would only be an issue for heavy-duty customizers. This can probably be customized.
One of the big advantages pipx touts is "look ma, no sudo". That's not really an advantage for system daemons, though.
So bottom line is you can do it, but you'll need to study up on pipx arcana, because Mailman is a bunch of daemon it buys you very little, and the result won't look like any Mailman installation you've seen described on mailman-users or StackExchange.
Steve