Files
hpr-knowledge-base/hpr_transcripts/hpr2308.txt
Lee Hanken 7c8efd2228 Initial commit: HPR Knowledge Base MCP Server
- MCP server with stdio transport for local use
- Search episodes, transcripts, hosts, and series
- 4,511 episodes with metadata and transcripts
- Data loader with in-memory JSON storage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 10:54:13 +00:00

166 lines
12 KiB
Plaintext

Episode: 2308
Title: HPR2308: Everyday package operations in Guix
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr2308/hpr2308.mp3
Transcribed: 2025-10-19 01:06:02
---
This is HBR episode 2,380 titled Every Day Package Operations in Geeks.
It is hosted by Clacket and is about 16 minutes long and carrying a clean flag.
The summary is, here's how I use Geeks in my native name, fleshed out all the overcomments
on app 2,198.
This episode of HBR is brought to you by An Honest Host.com.
Get 15% discount on all shared hosting with the offer code HBR15, that's HBR15.
Better web hosting that's honest and fair at An Honest Host.com.
Hi, I'm Clacket, 4 months ago or maybe 1 year and 5 months ago depending on your perspective.
I interviewed Chris Weber about how awesome Geeks is and why it will take over the world.
In the comments I wrote a very short overview of what I actually do in everyday use of
Geeks and here I'm going to flesh it out just a little bit more not to watch in audio
form.
So for me, the killer operation when you run Geeks is Geeks environment and basically
if I'm on a dev-based system and I find out about the utility that sounds interesting
but I would like to try it out.
What I have to do is I have to install it and then I'll try it out and then maybe I like
it, maybe I don't like it, I app to remove it.
And then maybe there's libraries lingering around and then I would have to do auto-clean
to get rid of those libraries.
But maybe they were lingering around for some other reason, maybe I'm doing builds somewhere
and these were build dependencies, I wouldn't know.
But with Geeks, what I can do is I don't have to install or uninstall anything, I just
do Geeks environment dash dash add dash hawk and then name of utility or package.
What this does is it starts a new shell and it downloads this software and puts it in
the magical Geeks locations and in that particular shell the utility is in the path.
So I can try it out, I can play with it.
If I exit the shell, it's no longer in my path and it won't get in the way of tab completions
and the next time I garbage collect it will disappear from disk.
So Geeks environment is really cool, makes it easier for me to try out new things without
having to think about the sort of administration overhead.
So that's one thing I use Geeks environment for.
All these commands are, the actual command is just Geeks and then environment is subcommands
with Geeks space environment.
And one cool utility you can do this with is NCDU.
So check that out, it's a graphical disk usage.
So basically if you've been using a winder stat on windows or if you've been using
bow, bob on the X desktop, then NCDU is the same but for the end curses interface on
the console or terminal.
So that's one thing I can do with Geeks environment is try things out and if you're doing development
of course you can use Geeks environment for the primary intended use which is pull down
the dependencies of the thing you're developing.
If you write Geeks definition for the package you're developing, just do Geeks environment
in that directory where the source code is and it pulls down everything you need to do
to have available to be able to do configure, make install or whatever.
But I sadly don't develop much so that's not part of my everyday usage.
Also among my bash aliases I have some things that I may run from time to time but I don't
use them every day.
So maybe there's a function there that calls some program but I don't necessarily want
to keep that thing in my path.
Could be because I don't want things in my path because they interfere with type completion
and also when I do package upgrades of course the more packages I have really installed
the longer the upgrade takes and if it's something I do less than I use upgrades then
it's nice to not have it be part of the upgrade.
So for example I have some aliases for doing formatting of source code so I can do JSON
less and then it takes a JSON file, formats it will nicely with slanted font and bold
font and so on and then pipes it to less.
For this I use a command called inscript but maybe I don't do this even every week so
I don't want to upgrade inscript every time.
So in my bash aliases for JSON less and some other blah blah less aliases I just call inscript
using geeks environment just geeks space, environment space dash dash add dash hog space
in inscript and then you separate the parameters to geeks environment from the command you
want to run.
So geeks environment blah blah package name and then dash dash and then here comes the
real command and you actually want to use and there comes inscript parameters for formatting
and then file name and so on.
So that's in my bash aliases that's one other place I use geeks environment and that's
a whole show of itself.
I have a couple of things I'm pretty happy with that I have at my fingertips when I'm
at the command line but that'll be another show.
Also regarding the upgrades there are some pretty big packages like chromium, firefox
geeks that's icecat, firefox actually I use nix for and pigeon is I also use nix for
that I use both geeks and nix and those might also be something I don't want to burn
myself with when I do an upgrade.
I run them every day of course but basically but the reason I don't want them in my upgrade
is because the things that are actually in my profile will not be garbage collected until
I explicitly remove old profiles.
So I could have like 20 versions of firefox lying around if there are files that are exactly
the same geeks optimizes that with hard links but there are also files that change slightly
that might be huge in firefox or in one of its dependencies.
So by not keeping them around in my profiles when I do garbage collect they will disappear
entirely from this and then the next time I do geeks environment to pull them in they
will have to be pulled from scratch.
So that's a good way to be able to keep old profiles around for the small tools but
they're able to more easily throw away the bigger tools.
And the way I do that is first I install the tool or well realize the tool with geeks
environment and then I look for the dot application files in the share applications folder.
And in that application file it says somewhere exec equals blah blah blah for fox for example.
So I take that exec line.
I replace it with a copy this to some other location where I actually able to edit things
you can't edit things in the new store.
I edit it to instead of running blah blah blah for fox it runs geeks environment add
hog firefox dash dash firefox and then I put that in my dot local so that gnome can
find it.
So when I press super and then I type firefox glom firefox comes up and I can run it
but what actually happens is it acts asks geeks to get the latest firefox according to
my package definitions and then run that.
So in case I have updated the geeks package definitions then it pulls down your firefox
that could take some time so actually usually what I do is when I update my packages I also
fetch the latest I do geeks environment add hog these packages so that I have the latest
thing at hand on disk but not in my profile.
To manage these dot local slash share slash applications files of course I use stow I think
I mentioned stow in the previous geeks episode and I will probably do an episode on stow
itself.
Stow is very cool it manages you can put various disparate things into separate directories
and then you soon link them all together to a shared you know the usual bin lib share
file structure.
Meaning for example till the slash dot local.
So geeks environment I use the ad hoc version of it on the command line directly and as
part of aliases they run tools that I don't use so often and for big tools actually some
of the big tools are moved to my profile recently because they've been crashing a lot in
some recent updates so I want to keep them in a way that I can roll them back easily
and not have to just run the latest version but when they are stable I've been running
them from the geeks environment add hog so normal package management like you would do
in any other operating system or package management system geeks space package.
If I like this tool and I want to have it available all the time I do geeks space package
space dash I for install space package name and then I don't install it on the system
I install it for my user so it ends up in my till the slash dot geeks dash profile which
is put in my path variable by my bash profile.
So that installs the version according to my current package definitions to update the
package definitions I use geeks space pull so I do that from time to time maybe once
a week and what I actually do is I have a long command line that does all of the geeks
actually then I'm basically just a big geeks pull and then geeks package update.
So that's geeks space pull pull down the definitions and then it's geeks space package
space dash you take all the packages I have currently installed on my user and find
the latest version and if it's newer then upgrade or actually if the version of that particular
package is the same but one of its dependencies was updated then it will also be updated
to use that later dependency and then if you start running out of disk space if I've
been doing this for a couple of weeks especially with nicks but also with geeks even though
it does hard linking to optimize this space I will have to get rid of some craft lying
around that I'm not actually using so that's geeks space GC for garbage collect so what
happens then it will clear out after after a couple of weeks maybe it will clear out a couple
of gigabytes of stuff from my slash can you follow there and that's stuff that has been pulled
down to build something but now it's built and we don't need to build dependencies anymore
and old package definitions because those aren't actually version managed anywhere you always
just have the latest one there's no back functionality in geeks for package definitions but if
I installed some package a week ago and then I uninstalled it or I upgraded it that old
version is still in an old profile definition an old profile generation for my user so to get
rid of old profile generations and clear up maybe 10 gigabytes of stuff after a while then I
would have to first run geeks space package space dash d without any further parameters that will
delete everything except the latest generation of my profile so that when I do geeks garbage collect
it will erase everything that is not in my latest profile
geeks package d also takes a parameter so I can say throw away everything that is
older than a week or throw away everything except the latest five generations things like that
um now that's basically how I use geeks from day to day use the geeks environment thing install
packages I didn't say uninstall packages I sold them do that but that's geeks space package space
dash r for remove so geeks environment for trying things out or temporarily using things package dash
i for installing things package dash u for upgrading them package dash d for removing old profiles
that I don't think I will want to roll back to if the latest profile is working well and geeks
gc to garbage collect things um yeah see you next time when I look into some of the
uh diversions from this episode
radio at hackerpublicradio.org we are a community podcast network that releases shows every week
day monday through friday today's show like all our shows was contributed by an hpr listener like
yourself if you ever thought of recording a podcast and clicking our contribute link to find out
how easy it really is hacker public radio was founded by the digital dog pound and the
computer club and it's part of the binary revolution at binwrap.com if you have comments on
today's show please email the host directly leave a comment on the website or record a follow-up
episode yourself unless otherwise stated today's show is released under a creative comment
attribution share like 3.0 life