LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


Reply
  Search this Thread
Old 12-21-2022, 01:16 AM   #1
des_a
Member
 
Registered: Sep 2006
Posts: 899
Blog Entries: 35

Rep: Reputation: 22
Creating a New Linux Distribution


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.

Please help teach me to do those steps.
 
Old 12-21-2022, 02:06 AM   #2
pan64
LQ Addict
 
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 19,594

Rep: Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629
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"
 
Old 12-21-2022, 08:35 AM   #3
boughtonp
Senior Member
 
Registered: Feb 2007
Location: UK
Distribution: Debian
Posts: 3,077

Rep: Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169
Quote:
Originally Posted by des_a View Post
Then first version of distribution is ready.
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?

https://www.linuxquestions.org/questions/linux-general-1/my-first-primary-os-goal-4175676218


Last edited by boughtonp; 12-21-2022 at 08:45 AM.
 
Old 12-21-2022, 02:18 PM   #4
des_a
Member
 
Registered: Sep 2006
Posts: 899

Original Poster
Blog Entries: 35

Rep: Reputation: 22
https://www.linuxquestions.org/quest...oal-4175676218

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.
 
Old 12-21-2022, 02:18 PM   #5
des_a
Member
 
Registered: Sep 2006
Posts: 899

Original Poster
Blog Entries: 35

Rep: Reputation: 22
Hope that helps you understand!
 
Old 12-21-2022, 04:49 PM   #6
rtmistler
Moderator
 
Registered: Mar 2011
Location: USA
Distribution: MINT Debian, Angstrom, SUSE, Ubuntu, Debian
Posts: 9,760
Blog Entries: 13

Rep: Reputation: 4803Reputation: 4803Reputation: 4803Reputation: 4803Reputation: 4803Reputation: 4803Reputation: 4803Reputation: 4803Reputation: 4803Reputation: 4803Reputation: 4803
Mint can be built from source, read their instructions.

As for the other programs, check to see if they have source available, it is likely they do if they're open source projects.

That would be steps 1, 2, and 3 at least.

At least do some work to start here then tell us where you get stuck.
 
1 members found this post helpful.
Old 12-21-2022, 05:45 PM   #7
boughtonp
Senior Member
 
Registered: Feb 2007
Location: UK
Distribution: Debian
Posts: 3,077

Rep: Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169Reputation: 2169

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...


Last edited by boughtonp; 12-21-2022 at 05:47 PM.
 
1 members found this post helpful.
Old 12-22-2022, 11:25 PM   #8
rnturn
Senior Member
 
Registered: Jan 2003
Location: Illinois (SW Chicago 'burbs)
Distribution: openSUSE, Raspbian, Slackware. Older: Coherent, MacOS, Red Hat, Big Iron IXs: AIX, Solaris, Tru64
Posts: 2,731

Rep: Reputation: 547Reputation: 547Reputation: 547Reputation: 547Reputation: 547Reputation: 547
Quote:
Originally Posted by pan64 View Post
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.
 
Old 12-22-2022, 11:56 PM   #9
Turbocapitalist
LQ Guru
 
Registered: Apr 2005
Distribution: Linux Mint, Devuan, OpenBSD
Posts: 6,692
Blog Entries: 3

Rep: Reputation: 3459Reputation: 3459Reputation: 3459Reputation: 3459Reputation: 3459Reputation: 3459Reputation: 3459Reputation: 3459Reputation: 3459Reputation: 3459Reputation: 3459
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 11:59 PM.
 
Old 12-23-2022, 02:14 AM   #10
dugan
LQ Guru
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 10,773

Rep: Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097
You can't add RPMs to Mint. Not if you want it to remain stable, at least.

But you can add FlatPaks to either Mint or Mageia.

BTW, I'm wondering if you just want Mageia's Control Centre on Mint.

Last edited by dugan; 12-23-2022 at 02:35 AM.
 
Old 12-24-2022, 03:07 AM   #11
des_a
Member
 
Registered: Sep 2006
Posts: 899

Original Poster
Blog Entries: 35

Rep: Reputation: 22
Quote:
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.
Not sure, maybe.
 
Old 12-24-2022, 04:09 AM   #12
pan64
LQ Addict
 
Registered: Mar 2012
Location: Hungary
Distribution: debian/ubuntu/suse ...
Posts: 19,594

Rep: Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629Reputation: 6629
Quote:
Originally Posted by des_a View Post
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.
 
Old 12-25-2022, 11:01 AM   #13
des_a
Member
 
Registered: Sep 2006
Posts: 899

Original Poster
Blog Entries: 35

Rep: Reputation: 22
Quote:
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.
 
Old 12-25-2022, 12:29 PM   #14
dugan
LQ Guru
 
Registered: Nov 2003
Location: Canada
Distribution: distro hopper
Posts: 10,773

Rep: Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097Reputation: 5097
Quote:
Originally Posted by des_a View Post
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.
 
Old 01-04-2023, 07:21 PM   #15
des_a
Member
 
Registered: Sep 2006
Posts: 899

Original Poster
Blog Entries: 35

Rep: Reputation: 22
I understand now.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: Linux Jargon Buster: What is a Linux Distribution? Why is it Called a ‘Distribution’? LXer Syndicated Linux News 0 09-06-2020 09:21 PM
Creating new distribution for personal use Ammad Linux - General 9 02-23-2007 07:51 AM
Customizing a distribution to add my artwork and design for a brand new distribution caa718 Linux From Scratch 3 03-19-2006 06:03 PM
Creating New Linux Distribution Process liguorir Linux - Software 2 11-10-2003 12:20 PM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 10:48 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration