Yesterday I lost the plot by yak shaving my shell setup installation process to work better under Ubuntu. The above capture illustrates that lots of progress was made, but then I forgot to actually post. Oh well!
Part of the distraction involved dealing with Linuxbrew, the
Linux version of Homebrew. If I have brew
successfully
installed via my homely
setup, it makes the package management
a bit more consistent. On the other hand, Linux distros in general and
Ubuntu in particular have their own package managers, which generally
work better and which homely
is compatible with. Also, Linuxbrew is
a bit heavy handed in that you essentially need to have root
privileges for the easiest install. The kicker is that there are often
Linux distro packages that can be quite a few releases behind
upstream, which introduces another inconsistency. I was trying to
leverage pipx
for a fixed base set of Python CLI apps, but
Ubuntu had a way old package version that failed on a repeat request
to install a Python package, breaking my overall homely
install. It’s turtles all the way down 😆.
Grappling with the growing sprawl of my homely
configuration and
landing on the shores of a new machine I think the approach will become:
- Hand bootstrap the process via installation of
pipx
as user local - Install a few pure Python CLIs using
pipx
includinghomely
- Clone my private
dotfiles
repo onto the new machine forhomely
- Script the installation of Linuxbrew within
homely
- Default to the Linux package manager unless there’s a significant
reason to get a recent version via
brew
, but at least that option will be there
Becoming obvious to me is that pyenv
is somewhat
superfluous. Generally speaking, I don’t need multiple Python
interpreter versions installed, just one good one. Previously,
Homebrew provided a nice means to get a Python 3.8.x or greater
version installed, even though it wasn’t particularly good for
preserving Python interpreters across package upgrades. Now the
platforms have caught up with their stable Python 3 versions and
pyenv
is a bit janky from a shell perspective. The Xonsh ecosystem
even has its own integration extension for pyenv
. I’ll keep pyenv
in
the mix, deprioritize it’s installation, and monitor the usage.