- 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>
166 lines
12 KiB
Plaintext
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
|