- 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>
733 lines
47 KiB
Plaintext
733 lines
47 KiB
Plaintext
Episode: 4321
|
|
Title: HPR4321: Crux Linux
|
|
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr4321/hpr4321.mp3
|
|
Transcribed: 2025-10-25 22:59:42
|
|
|
|
---
|
|
|
|
This is Hacker Public Radio episode 4321 from Monday the 24th of February 2025.
|
|
Today's show is entitled Crocs Linux.
|
|
It is hosted by Clot 2 and is about 53 minutes long.
|
|
It carries a clean flag.
|
|
The summary is Tri-Crocs Linux.
|
|
Hey everybody, this is Clot 2 and recently I tried a distribution that I've been meaning
|
|
to give a go for ages literally over 10 years.
|
|
Just tried it recently.
|
|
It's called Crocs Linux and it's located at Crocs.inu.
|
|
I'll spell it out.
|
|
Charlie Romeo Uniform X-ray dot November uniform.
|
|
Crocs.inu.
|
|
This is a distribution that got started back in the year 2000.
|
|
Their first public release of an ISO was back in 2001.
|
|
So they've been going strong for good 24, 25 years at the time of this recording.
|
|
And I discovered them.
|
|
I believe around 2011 or 12.
|
|
And at that time I just kind of thought that it could be interesting to give this sort
|
|
of minimal Linux distribution a try because it looked fascinating.
|
|
It looked like the installer was pretty manual.
|
|
You had to use Cherute to get the thing installed on your computer.
|
|
That's exciting.
|
|
That's not something that you see every day.
|
|
So I thought this could be of interest to me.
|
|
And I did give it a go back then, but it was a real cursory glance.
|
|
It was kind of like I did download it.
|
|
I did try to get it installed on a computer.
|
|
I messed up one of the install steps.
|
|
I think I know why.
|
|
And then I just kind of that is what kind of fell apart for me.
|
|
I just I didn't get it done in the time I lauded and then I never went back to it.
|
|
But it's been in the back of my mind for a good decade now.
|
|
I just should try that and and finally I have tried it.
|
|
I have tried it about a month ago.
|
|
So I've been using it on a spare laptop for about 30 days now.
|
|
And I'm going to talk about the experience so far.
|
|
I will also admit, not beneath admitting that one of the appeals of Crux Linux
|
|
is the cute little baby blue penguin that they use for their logo.
|
|
And it being a blue penguin is significant to me now because I live in New Zealand
|
|
where there are baby blue penguins.
|
|
So I mean, it's it kind of fits.
|
|
Is it going to replace Slackware for me?
|
|
No, I'm not looking to replace Slackware.
|
|
Happy with Slackware.
|
|
Perfectly happy using Slackware.
|
|
It's comfortable.
|
|
I love it.
|
|
Still using Slackware on my main machine.
|
|
Is Crux going to stay on this spare laptop?
|
|
Who knows?
|
|
I don't know.
|
|
I don't use as many computers as I used to.
|
|
I have my main computer set up on my desk.
|
|
I have a work computer and an array of Raspberry Pi's.
|
|
And they're just they just kind of all sit in there in a place.
|
|
And I just don't really have the occasion to swap out computers all that often
|
|
because I'm usually just here at my desk.
|
|
And it's actually a little awkward to put a laptop in front of my keyboard.
|
|
You know, it just kind of doesn't, doesn't quite fit.
|
|
So like physically it doesn't fit.
|
|
So so yeah, who knows the future of me and Crux in terms of sort of like
|
|
is this a new blooming blossoming relationship?
|
|
I don't know that.
|
|
But it has been a lot of fun.
|
|
And that's kind of what I think that that sometimes is justification enough.
|
|
Just have fun with Linux.
|
|
So let's talk about Crux.
|
|
Crux has a very manual install process.
|
|
It there is a very good handbook, very free BSD style.
|
|
Like you click on the handbook and it has basically all of the information
|
|
you need to install it and then all of the all of the distribution specific tools.
|
|
Those tools include a relatively custom as far as I can tell in net system.
|
|
It is BSD style though.
|
|
So you're looking at a slash at C slash RC dot D folder full of just custom
|
|
shell scripts that start and stop a service.
|
|
So that's nice.
|
|
If you're looking for something without system D sort of pre baked in,
|
|
then Crux is a valid option.
|
|
It is it the right option for you.
|
|
I don't know, but it is a distribution that does not ship with system D.
|
|
So if you don't, you know, if you like the BSD style in it system,
|
|
you could just run it as is.
|
|
If you want to try something else like run it or open RC or whatever,
|
|
then you could try that on Crux.
|
|
I mean, for the record, you could try that on Slackware as well.
|
|
So and frankly, it's probably easier to do over on Slackware.
|
|
So I'm classifying I guess mentally Crux being a quote unquote harder than Slackware.
|
|
And I guess I'll try to get into why I say that.
|
|
As I go, I'll sum it up at the end as well.
|
|
It is a very, I want to emphasize this is a very manual style Linux distribution.
|
|
You're going to be doing a lot of your own things to set Crux up and to maintain Crux.
|
|
It has a packaging system, however.
|
|
It's called a it's it calls it package utles PKG UTA ILS.
|
|
And that's a series of commands that you use to interact with the packaging system.
|
|
A package add PKG add is what you use to install a package,
|
|
but getting a package in the first place is a series of commands in itself.
|
|
It does have a series of ports that it provides.
|
|
And you can query that that or you can interact with that the port system with package make PKG MK.
|
|
A PKG make or package make that's how you go into a port source and you use package make.
|
|
I think dash D for download and it downloads the source code and builds the package.
|
|
And then you end up with a package and then you do PKG add and that adds the package to your system.
|
|
It's pretty pretty simple.
|
|
There's PKG remove as well to remove a package and PKG info to query for information about a package.
|
|
So if you're at all used to using either Slackware or a BSD,
|
|
then this is all going to sound pretty familiar to you.
|
|
There's a certain feel to this distribution where it definitely has taken a lot of notes from BSD probably.
|
|
That's what I'm guessing.
|
|
I mean, certainly it's a knit system and it's packaging sensibilities feel very BSD or very Slackware to me,
|
|
which I quite enjoy.
|
|
It feels kind of refreshing or not refreshing, but it just it feels comfortable, I guess.
|
|
This is differentiating it from something that feels a little bit more, let's say like Debian,
|
|
where you're using a packaging system that has a specific a robust packaging format,
|
|
where you're installing that and making entries into a literal database.
|
|
That kind of stuff, this won't feel like that to you.
|
|
It's a knit system won't feel like that at all.
|
|
Whether that's good or bad, who knows, it depends on your preferences.
|
|
Okay, so let's just kind of talk through a little bit about the install process,
|
|
because that's one of the things that you'll notice pretty early on.
|
|
Installing Crux is obviously a matter of first downloading the official ISO image.
|
|
You do that from crux.inu.
|
|
There's a download link somewhere on that page.
|
|
There's a lot of data on the site, but you just read, you'll find the link.
|
|
You get the ISO on your drive and then you need to copy it over to a USB drive.
|
|
I use Balena etcher.balena.io.
|
|
That's B-A-L-E-N-A.io.
|
|
It's an easy little open source and cross-platform imaging tool.
|
|
It makes it super simple to flash an ISO onto a USB drive.
|
|
Once the image is on the drive, you can use D-D or whatever you prefer.
|
|
I just find the etcher.balena.io, etcher just makes it really a no-brainer and it's pretty
|
|
quick as well.
|
|
Anyway, once you got the image on the drive, attach the drive to your target computer, reboot,
|
|
and use whatever keyboard shortcut your computer requires for you to use to boot to something
|
|
other than the internal drive, and that's usually a message on the initial screen when
|
|
you turn on your computer.
|
|
Sometimes it's F2, sometimes it's the DEL key, sometimes F8.
|
|
You can never tell you just have to read or look it up online.
|
|
On some computers, you might also need to enter into UEFI or BIOS to deactivate any number
|
|
of locks designed to prevent you from booting from an external drive.
|
|
If you don't know all of that, what I've just said, if that's news to you, then crux
|
|
may not be the best starting point for you.
|
|
That's a warning.
|
|
If you're just trying to figure out how to boot into some non-standard location and you're
|
|
learning something new from what I've just said, don't start with crux, probably, okay,
|
|
because crux doesn't have an installer as such.
|
|
You have to manually partition your drive using Partid or FDisk or CFDisk, I think they
|
|
have CFDisk as well.
|
|
Then you mount the internal drive, you extract the packages to it from the USB drive to your
|
|
hard drive, and then you trute into the target drive, presumably your internal drive, to install
|
|
a bootloader and add configuration files.
|
|
Now, the good news is that crux doesn't exactly make you do it all manually.
|
|
There are some helpful scripts, including a setup script, which installs packages and
|
|
a setup-chirute command to perform the steps required to establish a charute environment.
|
|
The handbook also tells you the steps of the charute, like what setup-chirute.
|
|
It tells you what it's doing, so for some reason you need to do it manually, you can.
|
|
The thing to know is that these little setup scripts aren't very robust.
|
|
If you skip a step accidentally and try to run a script before the drive is ready, then
|
|
the script might fail and then leave you in a state of complete uncertainty.
|
|
This is where I was several times during the process.
|
|
It's not irrecoverable.
|
|
You can detect that something has failed, usually when you reboot your computer and nothing
|
|
happens, and then you can go back, you can boot back to the install environment, you can
|
|
mount the internal drive, you can try to figure out where something went wrong, or you
|
|
can just start over, and sometimes that's the easier thing to do.
|
|
It's just to start back at the beginning and try again.
|
|
I think the first time I ever tried installing crux back in whatever it was, 2012, let's
|
|
say, I believe that was my solution.
|
|
I just kept something failed, I went back to the beginning, and still didn't get it
|
|
right.
|
|
This time around, I didn't have really a deadline, so I just sat down, really thought about
|
|
what I was doing.
|
|
When something failed, I would reboot back to the install environment, figure out what
|
|
I'd missed, fill that in, and then continue from there, or whatever.
|
|
You can work on this, but it is easy to miss a step, and part of the reason there is
|
|
that the handbook itself is not formatted all that well.
|
|
A lot of times, what you're supposed to do is described to you instead of proscribed
|
|
to you.
|
|
The instructions are formatted sometimes as like a bullet list, which for me that suggests
|
|
an unordered list, I mean, that's literally what a bullet list is, it's an unordered
|
|
list.
|
|
When really, it should have been a numbered list.
|
|
There are numbered lists in there, but sometimes you'll come across a series of steps that
|
|
are bullet lists.
|
|
You think you're being given a choice or something.
|
|
It's a numbered list, except they didn't give it numbers, they just gave it bullets.
|
|
You're not clear that a certain array of steps, you don't realize that you're supposed
|
|
to do them all or something like that.
|
|
In other cases, there's a series of choices under a subheading that's actually just a series
|
|
of choices dependent upon your system configuration, like one choice for UEFI or one choice for
|
|
BIOS.
|
|
It becomes very confusing when you're just kind of reading and you think you're on one
|
|
path and then you realize, oh no, no, this isn't for me because there was like a conditional
|
|
that I missed or that they didn't write down.
|
|
I missed a step more than once because I had a difficult time differentiating instructions
|
|
that were optional or conditional from instructions that were absolutely mandatory.
|
|
If you don't do this, everything else will fail.
|
|
You have to just read very, very carefully.
|
|
Read ahead frequently.
|
|
Don't follow the instructions as you're reading.
|
|
Read them and then follow the instructions.
|
|
Even then, even once you've read it once and you're going back to the top to now you're
|
|
going to read and do, don't do that.
|
|
Read like two paragraphs in front of where you are because it can be very, very confusing.
|
|
I would love to contribute fixes for this particular issue.
|
|
I'm still navigating how crux sort of structures, its contribution, invitation.
|
|
I haven't proposed any changes yet, but that's on my list of things to do.
|
|
The other thing you get to do for crux is compile your own kernel.
|
|
As you may or may not know, my daily distribution, my daily driver is Slackware has been for a
|
|
long time.
|
|
What?
|
|
2008?
|
|
I think something like that has been a long time.
|
|
Slackware ships with a few kernel configurations and binary kernel packages.
|
|
You don't really have to compile your own kernel on Slackware.
|
|
It so happens that when I first tried Slackware, there was a driver that wasn't included in
|
|
the binary package for the kernel.
|
|
I ended up having to compile a kernel from my very first Slackware experience.
|
|
It was a Wi-Fi driver.
|
|
That was an interesting experience.
|
|
That was a very great learning experience.
|
|
Even since then, I used to compile real-time drivers into Slackware.
|
|
Really, I can't say I can't honestly say I've stopped compiling kernels because I still
|
|
do compile kernels, just not as frequently as I used to, but ever since 2.3.8, no, 2.38.6,
|
|
the kernel release that gave basically low latency kernel performance.
|
|
I don't compile kernels quite as often as I used to.
|
|
I am running a custom kernel on my current Slackware box, but I think that might have
|
|
just been because I felt like updating a kernel one day.
|
|
It wasn't needed.
|
|
It wasn't necessary.
|
|
But Crux requires you to compile a kernel.
|
|
Unless you're very, very thorough, you're probably going to do this more than once.
|
|
I have now compiled the kernel.
|
|
It must have been eight times in one day.
|
|
That wasn't for the initial install, though.
|
|
I think for me, in my mind, there are two ways to manage how you're going to handle the
|
|
installation, the compilation and installation of a kernel.
|
|
Actually first of all, let's really quickly talk about why you would even need a kernel.
|
|
The kernel is the thing that tells your computer what to do.
|
|
It tells your computer what the computer consists of, like literally what components the
|
|
computer is because the computer doesn't know inherently about any other component other
|
|
than basically the CPU.
|
|
Something has to bring up all of those things like your keyboard and your monitor and your
|
|
mouse and a hard drive and internet connect or network interface card and so on.
|
|
So that's the primary job of the kernel is to just handle the hardware components of
|
|
your computer.
|
|
So you need that because your computer needs is hardware.
|
|
So to my mind, there are two ways to attack this.
|
|
One is to be very, very methodical, do lots and lots of research, figure out exactly what
|
|
you need in your kernel based on what computer is sitting in front of you that you are installing
|
|
Crux onto and you compile like the perfect kernel for your setup.
|
|
That's front loading it.
|
|
There's nothing wrong with it.
|
|
I took a little course a long time ago now on Linux to learn more at a little weekend
|
|
get away at a community college.
|
|
It was great.
|
|
It was really cool.
|
|
It was in California, I think.
|
|
And that was fantastic.
|
|
It takes a lot of time, takes a lot of effort and you sort of don't get the satisfaction
|
|
of having a compiled kernel until the very end.
|
|
I think the danger here is twofold.
|
|
One is that you don't get instant satisfaction.
|
|
It takes a lot of work up front and some people do that well, some people don't do that
|
|
well.
|
|
And then secondly, there's the danger of even after you've done all that research and
|
|
that work and you compiled your kernel, but if you didn't do it right, but if you got
|
|
something wrong, then you've spent all that time and you still don't have the system
|
|
of your dreams.
|
|
So the second option and the way that I did this was to just do it good enough to get
|
|
a bootable system and then just keep recompiling your kernel as you discover things that your
|
|
kernel doesn't know about yet.
|
|
So that's the second one, the second option is the tactic.
|
|
I took, I think for me, that's the one that I recommend to be perfectly honest.
|
|
But if that's not how you do things, then obviously you can do it your own way.
|
|
But you do have to compile the kernel for crux and it's really, really easy.
|
|
Crux does not install its kernel through the package add system.
|
|
So you just compile the kernel and copy the kernel image over to your slash boot partition.
|
|
You copy your system map and then now your kernel is installed.
|
|
The process of compiling a kernel is the classic way.
|
|
It's the traditional canonical way of compiling a kernel.
|
|
Like it's the instructions that you get when you download the kernel source code.
|
|
It isn't the new stuff like on Fedora or Debian where you invoke some kind of special packaging
|
|
things so that you can package up the kernel and integrate it into your system and add
|
|
it to your grub and stuff like that.
|
|
It isn't like that.
|
|
It's just you just go in and you do a make menu config and that brings up the little
|
|
funky little interface for choosing all of the different modules and things that you're
|
|
going to compile into your kernel.
|
|
If you've done your research and you know what your computer has in it, then you can look
|
|
through there and find all the modules that you'll need, all the drivers that you need
|
|
to include and make sure those get included.
|
|
If you can't be bothered to do that, then you can kind of just go for the basics.
|
|
I have compiled enough kernels on Slackware to know, you know, the important stuff like
|
|
well, file system drivers are really, really important.
|
|
I think EXT4 is probably auto included, but I just like to include all the file system
|
|
drivers, network card, nix, network interface cards.
|
|
Those are important.
|
|
Wi-Fi drivers, I think I did at least look at what the Wi-Fi driver was on the computer
|
|
before compiling the computer, the kernel, and that worked out well.
|
|
I didn't have to recompile for that.
|
|
Then there are some obvious things, obvious, I say obvious, I forgot to include it, but
|
|
I was installing it on a spare, like this is a Dell, something or another laptop.
|
|
I don't even know where I got it from, and it's like a rescue computer.
|
|
It's a Dell laptop, and so you would think that I would have thought to include the
|
|
drivers or the driver package called Dell underscore laptop.
|
|
I didn't.
|
|
I did not think of that.
|
|
And frankly, the menu config interface of compiling, of prepping a configuration is
|
|
a little bit not great for discovery, and so what I like to do is I do the make menu
|
|
config command to bring up that kernel configuration.
|
|
This is in slash usr slash slash linux version number.
|
|
You do make menu config, or actually I think I had to do, no, yeah, make menu config.
|
|
You might have to do pseudo make menu config if you're doing this after install.
|
|
I do that, and that creates a dot config file in that directory, in your source code
|
|
directory of the kernel, and that is really great for discovery.
|
|
I open that up in nano, I do a control W to search, or I guess it's a where is command.
|
|
And then I search for a thing that that I'm looking for.
|
|
This again, this is kind of what you can do this before you compile to.
|
|
I do it like later later, like when I'm when I'm realizing, oh, the fans keep turning
|
|
on, you know, at a really not very high temperature, how can I control that?
|
|
Oh, well, I need to go install the drivers for the various sensors in the laptop.
|
|
Okay, well, that means I have to find all the I2C drivers.
|
|
So, so then you just do a control W, I2C, or I see two, and I think it's I2C.
|
|
And then you get to find all the options that have probably not been set at all,
|
|
but they're commented out.
|
|
And it just says, you know, I2C underscore, blah, has not been set.
|
|
And then you can just set it yourself.
|
|
You race the part that says has not been set and put in equals why, or equals M for module.
|
|
And now you're modifying your configuration, but in a way that you don't have to like hunt
|
|
through a menu.
|
|
So whether you use menu config, whether you just do a config file by hand, I don't know
|
|
why you do that, or maybe you borrow one, like a known good configuration from like Slack
|
|
where maybe just throw that in there, see what happens.
|
|
Lots of different ways to compile your kernel.
|
|
And once you're kind of done the configuration, you do your make all, and then you do your
|
|
make modules underscore install.
|
|
I think that's it.
|
|
Then you copy the, from the arch x86 underscore 64 slash whatever slash, what, what, what
|
|
beat BZ image to slash boot slash VM, the news.
|
|
And then you copy system map from your current directory over to slash boot.
|
|
And you've got a kernel installed.
|
|
And as I say, if you're going to do it the lazy way, like I do, you'll be doing that
|
|
sequence of steps frequently later on as well.
|
|
You have to do it once to get your computer bootable in the first place, but you don't
|
|
have to necessarily do everything right.
|
|
You do, you need the basics, you, you'll need a file system support.
|
|
Like without that, then yes, you'll have a kernel, but your kernel can't recognize,
|
|
you know, like the rest of your computer cannot recognize the file system upon which
|
|
you've installed your operating system.
|
|
So that's not a great idea.
|
|
You do want the basics, but when I say basics, I think file support might be practically
|
|
the only basic you really, really need.
|
|
I mean, other than just all the other defaults that the kernel provides anyway.
|
|
So yeah, if you've never compiled a kernel, that's a great learning experience.
|
|
If you've compiled a kernel, it's still a good learning experience because there's always
|
|
something.
|
|
There's always something you've, I forget, you know, it's just, it's silly, but you
|
|
just, you realize how complex it can be.
|
|
Okay.
|
|
Anyway, once you get like the kernel installed, then you need to do the install of the boot
|
|
loader and the boot loader is in theory pretty simple for you to do, but it is kind of
|
|
difficult sometimes to understand what, what you, which of the options you need to choose.
|
|
The first of all, crux uses grub as a boot loader, it's not, I don't love grub.
|
|
I'm learning to love it a little bit more, but, but I don't love it, but it is better
|
|
than syslinics.
|
|
So realistically, it's probably easiest to install and use grub, but then you have to choose
|
|
between two different paths in the documentation.
|
|
You can do grub on UEFI or grub on BIOS.
|
|
The difference between these two options is that UEFI requires grub to be located in
|
|
slash boot slash EFI, while BIOS expects grub to be in the master boot record or the
|
|
MBR of the drive.
|
|
It explains all of this in the handbook.
|
|
You just want to read it really thoroughly, as I've said before actually doing it.
|
|
Once you've done all of those steps and I'm assuming you're not following along with
|
|
my vague description here and that you're following along with the crux handbook, once
|
|
you've done all of the steps that you, that it is told you have been required, you have
|
|
to configure your language and your network settings and eventually you can reboot your
|
|
computer and boot from the internal drive and assuming you got everything right, then
|
|
you get a grub screen allowing you to boot into your new crux system.
|
|
As I've said, I didn't get that far the first time.
|
|
Instead of grub, I got an error message on my screen and so I had to go back and reread
|
|
the documentation and I realized that yes, I had installed grub, but I had not configured
|
|
grub.
|
|
At this point, this was the third or the fourth major mistake I'd made during the process,
|
|
but it was like many of these errors.
|
|
Once you figure out what you've missed, it's pretty easy to fix and it's kind of hard
|
|
to know whether it's just overwhelming or whether it's overwhelming and poorly written.
|
|
I lay a lot of the blame on the handbook, the style of writing in the handbook.
|
|
It is just sometimes not clear about what you need to do next and when to do it, it's
|
|
just I don't know.
|
|
Maybe it's just me, I'm not a huge fan of the passive voice and kind of vague description
|
|
of things that could be done on a computer when you're when installing crux, but don't
|
|
tell me what could be done, tell me what to do or tell me why I don't need to do the
|
|
next step so that I can skip to the next section and the instructions.
|
|
Anyway, it's not an episode about documentation, so I rebooted to the installer to fix this
|
|
particular grub issue.
|
|
I mounted the internal drive using mount and then I used the setup dash trute script, which
|
|
is just so handy to make it my active environment and then ran grub make config, which is the
|
|
step that I had missed.
|
|
So grub make config, redirect into slash boot slash grub slash grub.cfg, because after
|
|
you run setup dash trute, your environment, you just pretend you're on the drive, that's
|
|
your new environment, you don't have to change the paths of anything, it's all active,
|
|
it's all mounted as the active environment.
|
|
So a lot of the things that you'll run into may be fixable by just using the setup dash
|
|
trute, you don't have to necessarily go through the install process again, you just have
|
|
to boot to a thing that allows you to use setup dash trute and from there you can do whatever
|
|
you need to do, whether you, whether that is recompiling your kernel, because you got
|
|
something completely wrong or running grub make config, because you didn't do that or
|
|
whatever little error, I mean sometimes it will be easier to just go back and start over,
|
|
but don't feel like you absolutely have to, if it's, if you think you know the problem.
|
|
Okay, so I rebooted again at this point and had an operational and operating crux system.
|
|
When you first boot into crux, you have, you have to log in as root and then you continue
|
|
configuring your system.
|
|
So for me, this meant installing the Wi-Fi drivers, because I've forgotten those and then
|
|
creating a normal user and then eventually I had to install the sensors for the, so
|
|
that the fans would stop going on all the time and so on.
|
|
So there's a lot of things that you can kind of, like I say, if you take my style of doing
|
|
it, my tactics, we're just to get it bootable and then adjust as needed as you go.
|
|
And again, the recompiling of the kernel is just a matter of going back to user source,
|
|
Linux, whatever the version number was, and then editing the .config file and then recompiling
|
|
and just copying the BZ image over to VM Linus in slash boot and the system map and then
|
|
rebooting and you're good, you don't ever, you don't, there's no, there's no trick to
|
|
that.
|
|
It's just, it's the same process over and over again.
|
|
I mean, you could keep an old kernel around and, you know, kind of switch between kernels
|
|
and stuff if you wanted to.
|
|
I didn't need to do that in this case.
|
|
I'm just, I'm just replacing the kernel because the first one that I did wasn't right,
|
|
the second one that I did wasn't right, the third one and so on.
|
|
Okay, so installing software, let's talk about that.
|
|
Now you're using crocs, you've got your normal user setup, you've got most of the environment
|
|
set up the way you want it.
|
|
Now you want to add to your bootable system and get more applications.
|
|
This is, this is cool that they're, they're packaging system.
|
|
I really, I quite like, I say that with a note of hesitation because the biggest problem
|
|
with their packaging system is that there's not enough packages in it, like there's, there's
|
|
just not.
|
|
They're, they're, their ports system is really nice that they're, they've got some cool
|
|
little tools.
|
|
It feels very slackwareian.
|
|
I think probably if I had been crocs, I'd have just stolen slackware as packaging system.
|
|
Like just honestly, that's what I would have done because they're, they're, the package
|
|
is available from crocs and even from their contributors, just, it's not sufficient.
|
|
It just isn't sorry.
|
|
So the good news is, well, there's lots of good news.
|
|
One good news is that it's super easy to make your own package.
|
|
You can, the packaging script formats such as it is, it's really easy.
|
|
You basically give it a URL to download the source code from and then you give it the, the
|
|
instructions of what, of how to compile the, the source code, which it's, it's no different
|
|
than what you do anyway.
|
|
It's like a, you know, if you did .slash configure, make, make install, that's what you put in
|
|
your script.
|
|
That's it.
|
|
There's, there's no magic here.
|
|
Now, there's the opportunity for magic if you need more out of your script, you can make
|
|
it do more, but pretty much like the, the, if it's, if it's just, if it's a super simple
|
|
install that you'd have done anyway, just with a .slash configure, make, make install,
|
|
you can make a package out of that simply by, by, by making a, a package file for it and
|
|
then running package, make dash D on your own package file.
|
|
It produces a package, then you use package add, the name of your package and it's installed.
|
|
It's, you're, you're done.
|
|
Really, really easy, possibly, possibly even easier than Slack builds.
|
|
I hesitate to say that because Slack builds is more, well, it's a little bit more structured,
|
|
I guess.
|
|
There are conventions that have risen up around Slack builds formatting, which handles a bunch
|
|
of different, different edge cases, whereas I have a feeling that with crux, that's those
|
|
same conventions don't exist.
|
|
So you might be re-implementing some things, some hacks here and there because you, you
|
|
know, like, oh, this package needs this weird adjustment made.
|
|
Well, I guess I'll do that this way and someone else has the same adjustment that they need
|
|
me, need to make two different package and they're doing it a different way because as
|
|
far as I know or at least as far as I've found, there's no template for like, this is
|
|
how you should do these things.
|
|
So I don't know, it's probably half a dozen one of one, six of the other, but my point
|
|
is it's really easy to make your own packages and I have a feeling it would be super easy
|
|
to adapt packages from other sources like Slackware or Arch Linux.
|
|
I don't see why there would be any problem with doing that.
|
|
And I haven't done it yet, but I have a feeling you could also just run Slackware packages
|
|
or rather Slackware build packages here on crux, like I don't see anything that would
|
|
stand in the way, the one thing would be that the Slackware packages assume or I should
|
|
say, Slackware build scripts assume that you have Slackware and so it just makes blind
|
|
assumptions about whether you have, I don't know, Perl installed because of course you
|
|
would have Perl installed because that's part of Slackware.
|
|
But if you're running crux, maybe Perl isn't installed, that's not true, Perl is installed.
|
|
Let's just say Foo.
|
|
So if it wants Foo, then it assumes that it has Foo because it knows Foo is on Slackware
|
|
whereas on crux, maybe Foo isn't installed.
|
|
And so running a build thing that was designed for Slackware, you might run into an error,
|
|
a surprise error because, and it might not even tell you what the error directly is, you'll
|
|
have to look through the log, the output of the compiler to realize, oh right, okay Foo
|
|
is on Slackware, Foo is not here, so I need to install that first.
|
|
So that could like run into a quote unquote problem, meaning it wouldn't just be sort of
|
|
a press return and then go have a cup of coffee, you'd have to sit there and kind of babysit
|
|
it and figure out what the problems are and then go back and solve them.
|
|
But to a point, I don't even think that would be that big of a deal.
|
|
I feel like, especially if you know some, a lot of the package that you're installing,
|
|
you kind of, after a while, I think you kind of build up a sort of a mental list of dependencies
|
|
anyway.
|
|
And so you kind of think, I think this is probably going to fail, but I think it's going
|
|
to fail because I think this needs Foo and Bar and Baz, and I don't think, I don't know
|
|
for sure that crux has that, I mean you could also just check before running.
|
|
So yeah, you can use other packages or other rather build scripts.
|
|
I think you could probably easily hack other packaging systems into crux, like again,
|
|
Slackware.
|
|
I don't see why I wouldn't be able to run Slack PKG on crux.
|
|
I've run it on Debian, so why wouldn't I be able to run it on crux?
|
|
I think if I really, really wanted to and started using crux, really seriously, I think
|
|
I would probably do that.
|
|
I would probably just port Slack PKG over to it.
|
|
I mean, I say port.
|
|
I mean, it would be, like I say, it's a super simple process.
|
|
It's not that hard.
|
|
It's just a bunch of shell scripts and some temporary, or not a temporary file, but some
|
|
log files.
|
|
So those are all options.
|
|
And then there's the other universal global option of PKG source or package source.
|
|
However, you're supposed to say that.
|
|
The thing from netBSD, which I, which I tend to enjoy trying.
|
|
And I say it that way because sometimes I try it and it doesn't work as well as I wanted
|
|
it to work.
|
|
But I'll talk about that after I talk about the PKG utles on crux.
|
|
Okay.
|
|
So I've talked about how easy it is to make a package on crux.
|
|
But let's just back up and figure we've just booted into crux.
|
|
We've created our standard user.
|
|
We've gotten some things configured.
|
|
Now we want more software.
|
|
So it's as either as a root user or using sudo, you do a ports dash U. This is a ports
|
|
command for crux and the dash U stands for upgrade.
|
|
What that does in this case is it triggers ports to create a directory in slash usr.
|
|
So now it's slash usr slash ports.
|
|
And then it downloads the ports tree, which is, you know, all of the text files included
|
|
in the in the ports system from crux servers down to your computer.
|
|
All that really is is a directory for each software package.
|
|
And in that directory is a PKG file, PKG file has a URL of where to get the source code.
|
|
And then maybe some special instructions for the ports system on on what it needs to
|
|
do to compile that package successfully on crux.
|
|
As I've said, usually that is a matter of just dot slash configure, make, make install.
|
|
But sometimes you'll run into a package that also needs, I don't know, auto-con for
|
|
auto-recon for, you know, auto-gen.sh or AC local or something like that run first.
|
|
And then a dot slash configure and then a make and then a make install so on.
|
|
So there's usually some kind of, well, I guess probably always, some kind of instructions
|
|
in the PKG file of what crux needs to do.
|
|
But it is pretty much a straightforward sort of shell script that you'd be doing anyway,
|
|
whether it was a package or not.
|
|
Now, you can find a port on your system using standard system tools like L.S. or GREP or
|
|
FIND or the special crux command PRT-GET.
|
|
The PRT-GET command searches your port's tree and gives you information about what it
|
|
finds.
|
|
So you can do port GET, search, I don't know, TCSH.
|
|
And then you can do port GET info TCSH and it tells you where that package is located.
|
|
So you know that TCSH exists in your port tree.
|
|
You don't know where yet.
|
|
So port GET info TCSH tells you the name.
|
|
The path is in this case user port opt, the version available and so on.
|
|
Now to install a port, you change directory to the location of that port, which we just
|
|
got with port GET info.
|
|
So CD slash usr slash ports slash opt slash TCSH and then you use the package make command
|
|
along with dash d for download to create this thing into a package.
|
|
Now, the first time I tried this, I got an SSL error from curl, a package make uses curl
|
|
to download the source code.
|
|
And I got an error message because you've probably seen this yourself.
|
|
Curl and SSL are kind of having issues right now and have had issues for a while.
|
|
It's sort of the integration of it.
|
|
So to tell curl where to find the certs, the SSL certs on your system, what I did was
|
|
I issued a ca underscore cert underscore bundle equals slash ETC slash SSL slash certs.
|
|
.pm space package add dash d and that that that fixed it strangely that fixed it forever.
|
|
I thought, well, I'm going to have to add that to some kind of environment variable
|
|
or something.
|
|
And I don't remember actually doing that.
|
|
So I don't know if curl is now sort of logging where the SSL certs are or or what happened
|
|
there, but it hasn't been a problem since.
|
|
So yeah, ca cert bundle your your certs are in Etsy SSL it's the certs.pm that that curl
|
|
is looking for.
|
|
And so if you do that before package add, then curl inherits that environment variable
|
|
and it's good to go.
|
|
So once you've gotten the package built, then in your current directory, you have a package
|
|
TCSH in this case hash the version number, the build number, and then dot pkg dot tar dot
|
|
gz, which is a really weird format for a package name.
|
|
I can't get used to a hash being in the package name, but there it is.
|
|
That's how package add knows that you're giving it a the package and not just any old
|
|
random tar ball.
|
|
The package add is completely silent upon success.
|
|
So as long as you see no output from your package add command, then your package has been
|
|
added to your system successfully.
|
|
Now by default, crux provides you with core opt and zorg package sets.
|
|
That's over 750 ports ready to install, it's kind of nice.
|
|
However, there are yet more in the contrib collection.
|
|
So if you want to enable the contrib collection, which I recommend doing, just rename a configuration
|
|
file.
|
|
It's sudo move slash ETC slash contrib dot rsync dot inactive to slash ETC slash contrib dot
|
|
rsync.
|
|
Makes sense.
|
|
You see what's going on there.
|
|
And then you update your ports tree ports dash you or sudo ports dash you.
|
|
And now when you do a port get, you'll find a bunch of more packages.
|
|
The contrib collection currently has about a thousand additional ports.
|
|
So total, you've got a good one thousand seven hundred and fifty or, you know, in that
|
|
ballpark number of software packages that you can build and install on crux.
|
|
That was not quite enough for me.
|
|
And so I did install package source as well from net VSD.
|
|
So if you go to package source PKGS RC dot org, probably I would imagine package source.
|
|
Yeah, dot org.
|
|
You can find out more information on how to install package source on Linux.
|
|
It's not terribly difficult.
|
|
There is a bootstrapping process that you must do.
|
|
And then from there, you must use be make rather than just make when building things.
|
|
And you do run into problems there are there are weird little issues with package source
|
|
sometimes or rather there are there are problems with package source sort of and yours and
|
|
your system like recently I ran into a problem installing.
|
|
I think ghost script, which was a dependency for image magic because I'm pretty sure
|
|
crux doesn't have image magic in its ports collection.
|
|
That doesn't seem believable, but why else would I have been doing it?
|
|
Anyway, I was installing image magic and it needed ghost script and ghost script needed.
|
|
I don't know, something else.
|
|
And it turns out that that something else was already installed on my system.
|
|
I think it was a Python script or something.
|
|
And and package source was looking in user include and finding the thing that it thought
|
|
it needed, but it was the wrong version.
|
|
And so it wasn't it never worked.
|
|
So I had to go in and kind of modify the setup.py install script for this thing such that
|
|
it wouldn't look in user include and it wouldn't look in user local include or wherever
|
|
else it was looking and that it would only look in like some other prescribed place.
|
|
I think slash opt slash PKG source.
|
|
So there are sometimes some surprises about what what package source sort of it you know
|
|
like is programmed to do and what it really ought to be doing through no fault of its own.
|
|
It's just sometimes it is not you know the system and package source don't know each other.
|
|
And so sometimes there's a little bit of confusion.
|
|
Another thing about package source is that sometimes frequently you basically feel like
|
|
you're just installing a new system like a whole new operating system.
|
|
You're just you're installing a lot of stuff that you that you already have on your system.
|
|
And that again is because just like with with slack builds or really anything like the
|
|
packaging system no matter how simple or complex that there are just assumptions that
|
|
that's that we have to set down we have to make assumptions.
|
|
So package source can assume either that you have that any time you need something new
|
|
on your system that you either already have it and that it should find it or that you
|
|
don't already have it and that it should install it.
|
|
You can choose what package source assumes you you get to make that choice in your I
|
|
don't know mk.com for something like that probably not that but some configuration file within
|
|
package source you get to choose whether it prefers package source or or not.
|
|
And if if you tell it to prefer package source then it's going to any time it needs food
|
|
and and it knows it needs food and it's going to install food into its little package
|
|
source sub system into like a you know into slash opt package source or wherever you
|
|
have package source installed.
|
|
And if you if you tell it not to prefer package source then it'll check your system
|
|
to see if any version of food has been installed and that is a little bit dangerous as you
|
|
can imagine because now you're you're just randomly saying yes or whatever I've got installed
|
|
just just take that and use it that doesn't always work.
|
|
So you have to make a choice and the choice that I typically make is to prefer package
|
|
source. So if there's something that package source needs on my system I tell it not
|
|
to assume you know to to assume that anything that's already on my system is not isn't
|
|
say it has to have its own copy of whatever it needs and that does very frequently mean
|
|
that you are compiling basically a whole new OS into package source.
|
|
So that's that's kind of a downside I mean I'm being hyperbolic it's not a whole OS
|
|
but it's a lot of stuff and a lot of that stuff you're going to think I already have that
|
|
over here but do you have that version and maybe you do today but are you still going
|
|
to be that version tomorrow like how are you going to synchronize these things.
|
|
So I do just kind of keep a whole package source sort of subdirectory on on crux so far
|
|
and that that's one way of doing it a different there are different ways a different way
|
|
could be to to not prefer package source and just risk risk at all just go for it honestly
|
|
I who knows I might try that I might try that myself soon just just for fun but another
|
|
way is to just use slackware packaging or arch building you know art the arch whatever
|
|
they call it a you are whatever the arch thing or you steal from arch and slackware package
|
|
definitions like their build scripts adapt them for crux and build it that way you know
|
|
so lots of different options I think that they're all basically equally realistic probably
|
|
the right one is whatever brings more packages into crux's ports system I mean I mean quote
|
|
unquote right meaning that it's the right way because that's the now you're you're adding
|
|
to crux's repository of of packages you do have to figure out how to become like an official
|
|
package or whatever which I haven't looked into yet but you're also just you're only dealing
|
|
with one port system then because if you do the package source option now every time you install
|
|
a package you have to you have to search two places your ports tree and your package source tree
|
|
and then if if the thing exists in both places you have to decide which place are you going to
|
|
install it from keeping in mind that if you do it in the crux port system and you're preferring
|
|
package source then you might be installing it again later if it becomes a dependency of
|
|
something that you install with package you know it becomes very confusing potentially if you
|
|
overthink it or if you're trying to be too precise about it so that can be kind of a danger so
|
|
probably the the right way is to just try to optimize or rather bolster crux ports as much as
|
|
you can with your own custom scripts maybe contribute back if you can if you do that and then you've
|
|
got a nice sort of personal setup for for all the for all the things that you need on crux and
|
|
that's kind of where I am with crux right now is just kind of building up my own environment adding
|
|
packages to it and just kind of enjoying the the minor differences here and there and between crux
|
|
and sort of like slackware basically and there are minor differences that you know it does it's
|
|
rc.d and it scripts a little bit differently not terribly differently but the the you know there are
|
|
certain I mean they don't all start with rc. for instance that's one difference um I mean they
|
|
are basically all just case statements or you know with a couple of fancy if then statements thrown
|
|
in for for fun but I mean it's it's it it is different um there's not as much stuff pre sort of
|
|
installed and sort of pre configured on crux as there is on slackware um which I mean technically
|
|
I guess could be a good bet thing could be a bad thing depends on what you're looking for so um I
|
|
think probably I would hazard to say like if you're if you're maybe looking for a BSD like
|
|
experience but you're you're just really really comfortable with the way Linux does things as I
|
|
am then then crux could be something to take a look at there's there's a lot of manual labor here
|
|
but if that's what you're looking for then then crux could be a very cool um sort of project
|
|
to endeavor upon I mean or you could just use a BSD like net BSD I mean there's there's a lot
|
|
of stuff to learn there as well so it's kind of whatever you're feeling like I guess um but I've
|
|
had a lot of fun with crux it's been a it's been a real pleasure to experience it to try it out
|
|
finally to get it installed to to really get back into to to just fiddling with a kernel like that
|
|
that has been you know it's it's weird it's it's like it isn't that I couldn't do more with my
|
|
kernel on slackware it's just that I guess I don't feel like I know what I would like to bother with
|
|
and also you know certainly I don't really want to break anything on slackware like it's my
|
|
daily computer now I could just install slackware on a different laptop mess around with the kernel
|
|
and do but but with crux or with something new a lot of times like the reason you explore more
|
|
is because you kind of have to because something isn't working and so like there's a different
|
|
sense of urgency and purpose when when just when you encounter something that's just like oh I
|
|
have to do this I have no interest in fixing this I don't actually care about what sensors are on
|
|
my motherboard I don't care about how to detect the different sensors and what hardware monitor
|
|
inputs trigger you know to monitor for those sensors but I guess I have to learn about that now
|
|
because this stupid fan won't shut off if I don't do that um so it it's almost like the the the
|
|
thing that that is broken has a a different sense of it has a different drive behind it
|
|
than just sitting down with a computer and looking for something that you could say optimize or
|
|
or something that you could break and then refix it's just I don't know it's different
|
|
so it's kind of fun to try crux and see what what little details of computer functionality you
|
|
may have missed because of because of a really someone else is really hard work you know someone
|
|
else is configured your kernel already to do that for you but what if what if they hadn't so yeah
|
|
it's kind of fun kind of it's kind of an interesting experiment and at the end of the day I mean
|
|
crux is a really nice little Linux distribution like this would be a really fun and usable Linux
|
|
distribution if there wasn't any other minimal Linux distribution out there this would definitely be
|
|
that this is a great fallback option if nothing else and I don't mean that in a bad way I mean
|
|
it's great to find a Linux distribution that's been around for a quarter of a century now uh and
|
|
that has you know that that's that's got support it's it's it feels steady it feels like it's it knows
|
|
exactly what it is and it it is it just continues to be that so if you're curious give crux Linux
|
|
a try it's a lot of fun thanks for listening you have been listening to hacker public radio
|
|
at hacker public radio does work today's show was contributed by a hbr listener like yourself
|
|
if you ever thought of recording podcast you click on our contribute link to find out how easy it
|
|
is hosting for hbr has been kindly provided by an honest host.com the internet archive and
|
|
our things.net on the satellite status today's show is released under creative comments
|
|
attribution 4.0 international license
|