
First global system update
Well, I'd like to share my experience building and maintaining my LFS/myOS. A few years ago, I tried building it the traditional way, following the book, and with inexperience and an eagerness to get it done quickly, I had no problems building the LFS strictly following the book. But when I got to BLFS, I encountered the tedious and dreaded (dependency hell). After a short distance, I got bored and gave up. Finally, I decided to study more and delve deeper. Since then, after a good period of learning, testing, failures, and more study, I faced it again, but this time I developed my program manager based on my successes, problems, errors, needs, experience, and study. I managed to build my myOS system, which is now my main and only OS. After 5 attempts, overcoming the many and varied errors and problems along the way, and understanding many things that I didn't find relevant references on in a quick search, I decided to share some knowledge and not scare away anyone thinking of following this path. Creating your distro isn't difficult or complicated; it's actually tedious (it took me months to get where myOS is today). But it's been worth it; everything exceeded my expectations (and I used to be a Slackware and Gentoo user). One expectation was the learning curve, and another was the lightness, simplicity, and stability (which was my main goal). I achieved a complete system (for my use) with only 349 packages – quite an accomplishment! I trimmed it down as much as possible to achieve a balance between stability, functionality, and minimalism. I'm an old Linux user; I come from the KISS (Keep Your Hands Off) philosophy where we trimmed bits out of necessity, and today I don't have much RAM to spare. Anyway, I built my distro, and it's functional and stable. Now what? Now comes the other part of the learning process that isn't mentioned or taught: updates. How to do it? There were updates for practically more than 200 packages, including the toolchain. I thought, "I'll do it in parts." I updated the tools and libraries, everything was fine until I got to OpenSSL. I didn't have the knowledge. Regarding what would happen with ABI, I updated OpenSSL normally and suddenly, boom, curl and some programs stopped working, sudo broke, and now what? No snapshots. I used a live ISO I created of MySQL and fixed the damage. I updated the kernel (for some surreal reason), which broke GRUB (for no obvious reason). After debugging with a live ISO, I fixed it. Then I saw the need to create auxiliary programs (scripts) to debug, find the problems in ABI and .so files, and make the necessary corrections (rebuilding all the programs that depend on that ABI, which ultimately requires you to rebuild the dependencies of the dependencies to be linked correctly). So far, so good, but then what about the orphaned .so files from previous versions? Anyway, I just want to show that building an OS is easy; maintaining it is complicated, but not difficult (if you plan with automations (scripts/programs) that do the tedious part for you, and I recommend a program to take a snapshot of the entire system before updating so you don't go through the trouble I went through). I almost couldn't fix it (due to a lack of in-depth knowledge), but I'll say one thing: (the feeling of using a complete OS made and maintained by you is something few can surpass). I'm very happy with the result; everything is the way I planned, and it's functional and stable in a way I didn't imagine would be possible, haha. I just haven't updated the toolchain yet because I don't see the need for it right now. My distro is stable and a rolling release. I implemented online update support, but it's not yet functional because I need to find a way to make it work, but for now I don't see the need; a local repository is sufficient. Well, it got a bit long, and I don't want to bore you.
The learning curve when updating the entire system was enormous and rewarding.