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>
This commit is contained in:
165
hpr_transcripts/hpr2308.txt
Normal file
165
hpr_transcripts/hpr2308.txt
Normal file
@@ -0,0 +1,165 @@
|
||||
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
|
||||
Reference in New Issue
Block a user