home ¦ Archives ¦ Atom ¦ RSS

Yikes! Yak Shaving

Xonsh Terminal on Ubuntu Screen
Capture

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 including homely
  • Clone my private dotfiles repo onto the new machine for homely
  • 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.

© C. Ross Jam. Built using Pelican. Theme based upon Giulio Fidente’s original svbhack, and slightly modified by crossjam.