Package: pyenv
Version: 2.5.4-1
Severity: wishlist
X-Debbugs-Cc:
invernomuto@paranoici.org
Hello,
thanks for maintaining pyenv in Debian: it seems to work for me.
However, I see that Debian binary package 'pyenv' (the only binary
package built from Debian source package 'pyenv') has a long list of
(direct and indirect) dependencies, mainly compilers/toolchains
and library development packages, needed when running commands like
$ pyenv install <something>
On the other hand, once you have installed whatever you need in
your $PYENV_ROOT (under your home directory), all those dependencies
are not used to run commands like "pyenv init" and "pyenv versions",
and to make the shims work properly and select the desired version
of Python (also depending on the current working directory, possibly
configured with "pyenv local").
So consider the following scenario: the '/home' partition is shared
among a management host and a number of work hosts (for instance,
this happens on many HPC clusters, where the compute nodes mount
/home through an appropriate network filesystem, such as NFS or
something similar, from the storage node).
Users may want to run "pyenv install" and "pyenv local" on the
management host, but then may want to use the shims to select
the desired Python version on the work hosts.
It would be great, if the sysadmin could install Debian binary
package 'pyenv' with all the dependencies on the management host,
but only install a minimal Debian binary package (without all
the dependencies) on the work hosts.
I tried to imagine a way to achieve this.
I think I found it.
Debian source package 'pyenv' could be improved in the following
manner. Instead of building a single Debian binary package, Debian
source package 'pyenv' could build two distinct Debian binary
packages:
* 'pyenv-runtime' (almost without dependencies) only shipping
the following files
/usr/bin/pyenv (a symlink to ../share/pyenv/libexec/pyenv )
/usr/share/pyenv/libexec/pyenv
/usr/share/pyenv/libexec/pyenv-init
/usr/share/pyenv/libexec/pyenv-commands
/usr/share/pyenv/libexec/pyenv-rehash
/usr/share/pyenv/libexec/pyenv-versions
/usr/share/pyenv/libexec/pyenv-version-name
/usr/share/pyenv/libexec/pyenv-version-file
/usr/share/pyenv/libexec/pyenv-version-file-read
/usr/share/pyenv/libexec/pyenv-hooks
/usr/share/pyenv/libexec/pyenv-help
/usr/share/pyenv/libexec/pyenv-exec
/usr/share/pyenv/libexec/pyenv-shims
/usr/share/pyenv/libexec/pyenv-which
/usr/share/pyenv/libexec/pyenv-whence
/usr/share/pyenv/libexec/pyenv-version-origin
/usr/share/pyenv/libexec/pyenv-prefix
/usr/share/pyenv/libexec/pyenv-latest
* 'pyenv' shipping all the rest and depending on pyenv-runtime and
on all the other dependencies
This way, the sysadmin could install 'pyenv' on the management
host and only 'pyenv-runtime' on the work hosts.
Please consider doing this split.
It would be very useful in the above-described scenario.
Thanks for your time and dedication!
-- System Information:
Debian Release: trixie/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 6.12.21-amd64 (SMP w/16 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages pyenv depends on:
ii build-essential 12.12
ii curl 8.13.0-1
ii expat 2.7.1-1
ii libauthen-sasl-perl 2.1700-1
ii libbz2-dev 1.0.8-6
ii libcgi-pm-perl 4.68-1
ii liberror-perl 0.17030-1
ii libffi-dev 3.4.7-1
ii libio-socket-ssl-perl 2.089-1
ii liblwp-protocol-https-perl 6.14-1
ii liblzma-dev 5.8.1-1
ii libmediawiki-api-perl 0.52-2
ii libncurses-dev 6.5+20250216-2
ii libreadline-dev 8.2-6
ii libsqlite3-dev 3.46.1-3
ii libssl-dev 3.5.0-1
ii libterm-readkey-perl 2.38-2+b4
ii libwww-perl 6.78-1
ii libxml2-dev 2.12.7+dfsg+really2.9.14-0.4
ii libxmlsec1-dev 1.2.41-1+b1
ii llvm 1:19.0-63
ii make 4.4.1-2
ii pcre2-utils 10.45-1
ii python3 3.13.2-2
ii tk-dev 8.6.16
ii wget 1.25.0-2
ii xz-utils 5.8.1-1
ii zlib1g-dev 1:1.3.dfsg+really1.3.1-1+b1
pyenv recommends no packages.
Versions of packages pyenv suggests:
ii git 1:2.47.2-0.1
pn libsecret-1-dev <none>
pn python3-openssl <none>
ii python3-requests 2.32.3+dfsg-5
pn python3-tk-dbg <none>
-- no debconf information
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)