ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I'm preparing by education for a time when I want to start my own Linux distribution. First step: How to find, download and compile the source code of Linux Mint. Step 2) Find dnf and dependencies, as I'm going to add dnf and dependencies to a Linux Mint base. I want to support both rpm and deb packages, besides with alien. Step 3) Find mageia control center and add it to there. Then first version of distribution is ready.
Hm. That won't work. In general do not use more than one package management software, they are independent from each other and will conflict with each other. Otherwise need to know more details about what do you want to "create"
Not even close. Even putting aside the real and significant technical issues that Pan64 raised, if you want to start a distribution (i.e. something actively distributed to other people, and not just a personal/pet OS) there's a lot more you need to do.
Quote:
Please help teach me to do those steps.
What happened with that other project when you said you would build a voice-activated programming language, use it to complete Linux From Scratch, and then create an entirely new kernel?
The plan actually remains. I'm just now figuring more out about the how, and the technical details of things.
As for the first step, almost done with getting my language up and running. If, using C++, I'm able to add my own way of objects based off of classes (that's how it is in C++, but in mine so far I've also got interfaces), I can rewrite itself in itself. That will be the first non-test I do with it. I will have to update pnfha, so that I've got a high level language available.
I was just thinking about the how, when it gets to the OS point. First of all, even then, I was thinking about using Linux. But I realized, maybe I don't want Linux from scratch. Maybe I want to start with Linux Mint. Then I was thinking of the technical details of how to call my "pnf kernel". I could just take a reconfigured Linux Mint and use it as my base.
Since I don't know how all the dependencies for C++, I was thinking that I could just use a whole Linux system, instead of modifying init. I'm not sure whether a modified init would be enough to use the system call system(), and run my app, which makes everything possible. So, one way I could go about it, I thought, is using the init configuration the way it is, possibly. I can start my app from there, and make sure it's last. I will have to read init, to know for sure.
I could have a script that transforms Linux Mint, into my "distribution" - only in the sense that android is Linux. Then the installer could just run my script last. Perhaps, is my thought so far, but I really will have to do some reading to find out. I have to start with all the Linux Mint source code, but maybe not every app or anything. Then the exact modifications will become clear to me.
I definately want to use Linux as the ordinary kernel level, for the near future. I can do that, by just adding another layer into my kernel stuff, like I've already mentioned.
So, then I got to thinking: What would make the perfect Linux distribution for desktop use for me? That's when I thought, it can't be the perfect OS for me, though as part of the solution, it sometimes has a place, like Windows (10 for now). The perfect OS, is multiple OSs for the desktop, but definately NOT WSL. And mine is a big component of what would make the perfect OS for me. Mine might eventually replace everything for a daily driver, bringing me down to one OS.
But, about the Linux part, the perfect OS is my own, but even if I base it off of Linux Mint, what's missing? rpms! I don't want only rpms though. That lead me to the current Linux idea as a part of my larger picture. I might distribute that Linux, as is, without being my way, just to give people more choices. But no, it's not my primary goal, while my "pnf kernel", is my primary idea. I'm just trying to figure out how the technical details work.
Quote:
Hm. That won't work.
In a non-technical way, why not? Is there something I can do to force it? I guess, therefore, I'd essentially be writing my own package manager if I absolutely had to, based completely off of both of those, the opensource free (as in freedom) versions. If I, however, must end up choosing over the two, it will be deb for the base. But I definately need a better control center app of some sort as well. Maybe even in my "pnf kernel" version, I will have two versions, eventually, one based off of rpms, for servers, and one based off of deb, for desktops???
Anyway, the whole purpose of "this" thread, is to gain skills I will need later, even if only the theory. Anything to gain skills is good. But yes, I had the specific idea in mind to gain skills for.
I personally wouldn't start with Mint - purely because it's already a "double" derivative - i.e. Mint is based on Ubuntu which is based on Debian, and this would be adding another layer on top - probably better to take a look at LMDE (which is Mint based directly on Debian), but use it as an example rather than a base (so you're only once-removed from Debian).
If a Debian based isn't desired for whatever reason, one of the other major top-level distros (e.g. Arch,Fedora,Gentoo,Slackware,OpenSUSE) for the same reason.
Except before doing any of that, I would take a good deep look at Bedrock Linux, and determine how much overlap there is between what you want to do and what ParadigmComplex has been working on for the past ten years...
Distribution: openSUSE, Raspbian, Slackware. Previous: MacOS, Red Hat, Coherent, Consensys SVR4.2, Tru64, Solaris
Posts: 2,803
Rep:
Quote:
Originally Posted by pan64
Hm. That won't work. In general do not use more than one package management software, they are independent from each other and will conflict with each other.
Back in my Tru64 days, there could be two package management systems running on the system: "setld" which handled all the native DecComHP software and "rpm" which handled the software that came on the Open Source CDs. It was a little weird but, as you point out, they were completely independent---"setld" didn't know diddly about anything installed from the Open Source CD packages and vice versa.
I'd build a foundation of knowledge first and go in increments.
Therefore I would suggest considering exploring at least a trial run through LFS before anything else. Setting that that up a few times is one good way of familiarizing yourself with the components.
Then try building plain Debian or Devuan. If you're talking about modifying the init system (which systemd is not but it includes one) then your option is to choose Devuan or another systemd-free distro.
Then take on the Debian or Devuan derivatives like the various flavors of Linux Mint or PeppermintOS.
But it is still also possible to jump straight to the end and build Linux Mint from source.
What schedule constraints do you have? When are the results due? What kind of spare machine(s) do you have to build on?
Last edited by Turbocapitalist; 12-22-2022 at 10:59 PM.
Except before doing any of that, I would take a good deep look at Bedrock Linux, and determine how much overlap there is between what you want to do and what ParadigmComplex has been working on for the past ten years...
I didn't know until now about bedrock Linux. I will check it out.
rnturn, I didn't understand, which is why...
Quote:
I'd build a foundation of knowledge first and go in increments.
I think whichever way I do it, that's my plan.
What schedule constraints do you have? None so far. I'm also working on turning my endevours into a business of some sort, but it's slow doing it. In order for the business to work, I need some progress and be so far before I start developing as the business instead of an individual. I have scheduled some time every other week to specifically develop, in order to meet my goal. I need to do lots of learning about how to take care of bugs. My bug right now, in my language (which is what's stopping me from going to completion), is in for loops. It becomes infinite instead of normal. I could really use a course on C++ programming and a class on specifically language development, however I'm not sure what my options are at this point, except for just to first work on my books. I need to look at doing something for a job, when I'm finished studying. Whether I meet my goals or not, IN the job. When are the results due? (Same) What kind of spare machine(s) do you have to build on? As much spare machines as I need to have (not infinte), really. How come? Even though I'm extremely low income right now, due to school, I've managed to accumulate a lot of extra machines. Not anything fancy, but plenty for my purposes. Plus I CAN use almost infinite VMs.
Quote:
You can't add RPMs to Mint. Not if you want it to remain stable, at least.
Huh? What's the technical reason in a dumbed down way of putting it?
Quote:
BTW, I'm wondering if you just want Mageia's Control Centre on Mint.
You can't add RPMs to Mint. Not if you want it to remain stable, at least.
Huh? What's the technical reason in a dumbed down way of putting it?
It was already explained in the first response. If you don't understand you need to learn how does a package management software work before starting your project.
If you don't understand you need to learn how does a package management software work before starting your project.
I think you're probably right too. At least now I have some starting points, which was all I asked. It's OK that I need to keep studying, and I'll continue to debug my language. Thanks! That's all I needed in this thread.
Huh? What's the technical reason in a dumbed down way of putting it?
Because .deb and .rpms are made to be part a system. The packagers keep in mind what's in other .debs and .rpms, and package accordingly. Hence, the dependency graphs. They also make sure they install into locations that are correct for the distribution, and what's correct for one distribution isn't necessarily correct for another.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.