How to create a FreeBSD distro?

Status
Not open for further replies.
Hello,
Excuse me, I don't know here is a right place to ask this question or not.
I want to know, any document exist for create a FreeBSD Distro? Something like "Linux From Scratch".

Thank you.
 
OP: keep in mind that FreeBSD is nothing like Linux. FreeBSD base OS is designed and built by a single team of individuals, not kludged together with software from 100 different projects. The end user applications (ports and packages) come from outside the FreeBSD project, but they are not part of the operating system base.
 
Thank you for all answers.
I want to create a BSD for myself that have some specific programs.
Any video that teach it?
 
Embedded system? Something like network devices?
The embedded can installing on a PC or need special hardware?
 
I want to create a BSD for myself that have some specific programs.
Then you don't need a custom release. You may want to have a look at customizing bsdinstall(8) instead. Remember FreeBSD is, unlike Linux, a complete OS. What you are referring to are third party applications, those are available as ports (and by extension packages). They are NOT part of the FreeBSD OS. Strictly speaking they're not part of the Linux "OS" either. I put quotes around Linux "OS" because it doesn't exist. Linux is a kernel and folks from RedHat, Debian, Canonical, etc add an assortment of tools and libraries from various different sources to that kernel to create something that acts like an OS.

Embedded system? Something like network devices?
For example. Or something like a Raspberry Pi. Or various other devices (mostly SBC type boards).

The embedded can installing on a PC or need special hardware?
Embedded devices are specific hardware implementations. Depending on the device you may or may not be able to emulate or simulate that on a regular PC.
 
To elaborate on SirDice's excellent post: FreeBSD separates the base OS from the third party software (xorg, firefox, etc). The base OS gets installed and configured first. After this is complete, you can use packages (binary, compiled applications) or ports (code you compile yourself) to install third party applications like xorg, window managers, desktop environments, etc.

Some organizations put out complete installations that do this all for you, if you are a desktop user: GhostBSD, FuryBSD, etc.
 
you can also edit make.conf(5), src.conf(5) and /etc/src-env.conf and install your flavour of FreeBSD to some DESTDIR, e.g. an SD card to plug into your SoC. RTFM build(7), and the above mentioned picoBSD & nanoBSD. FreeBSD's build infrastructure, despite all it's flaws and obstacles, is an excellent base to do that. Very straightforward.
If you just want to install your personal PC, go with the standard bsdinstall. There's some old branch-off in /usr/share/examples/pc-sysinstall, you may want to have a look how to automate some install tasks.
We need to know more specifically what you want to achieve to give any better hints.
 
Since the OS install literally takes 7-10 minutes, it is almost easier just to do the OS install and then have a list of packages you feed to pkg or a list of ports to feed to poudriere, synth etc. Just my opinion though - I like the separation of OS and software so was never interested in anything that did it all for me since it was so easy to do anyway...

My .02 :)
 
I want to know, any document exist for create a FreeBSD Distro? Something like "Linux From Scratch"
From Scratch! Easy. Grab the actual BSD source code that FreeBSD, NetBSD, OpenBSD all started from. Get it compiling and then booting and then add additional software packages by building from source code the Linux From Scratch way. There is a lot of useful support documentation, the kind of info provided in the LFS book, at that website.

LFS starts with a modern Linux kernel. If you want to start from a modern BSD kernel then do as mentioned elsewhere, read the FreeBSD docs on building the system from source code (e.g. makeworld). Do so. Now you have a dilemma -- the FreeBSD system, unlike the Linux system, already includes a great make-based package manager and makefiles for building 30,000 packages. You can ignore that and build everything in your home directory from manually downloaded tarballs, as is done for LFS.

LFS is an exercise in learning to build packages manually (without a package manager). It would a great exercise to go through some of the FreeBSD packages that way and learn to write a makefile (a port) for each one. Then you would know how to build FreeBSD from source and extend it by contributing to the ports collection. See The FreeBSD Porter's Handbook.

As for a video guide -- you can get the idea by watching the OpenBSD Porting Workshop. In fact doing the entire BSD from Scratch exercise might be a little easier in OpenBSD.

EDIT: it's difficult to answer the OP because "Linux From Scratch" Distro is an oxymoron. A "distro" is a complete pre-configured o.s. that can be easily distributed to others, e.g. on an iso. A "Linux From Scratch" system is a one-off system of manually compiled software that can not be shared with anyone else. If you want to pre-configure FreeBSD with some packages and a nice user configuration (wallpaper, etc.) then you should look at how NomadBSD is built. You could build your own "FreeBSD distro" on NomadBSD.
 
The ports collection has nothing whatsoever to do with FreeBSD base itself. You can certainly build FreeBSD from sources (never done it, pointless to me) but then installing packages or ports is AFTER this and has zero to do with it. There are excellent tools available to build ports (poudriere, synth, portmaster) and I would certainly not build them in my user's /home but whatever floats your boat as they say...

Following Linux procedures or advice is not relevant in the case of FreeBSD because of the way it is structured.
 
EDIT: it's difficult to answer the OP because "Linux From Scratch" Distro is an oxymoron.
That's exactly the point. Clearly, hack3rcon (the OP) does not know the correct language to ask their question in a FreeBSD-specific way. I'm not even sure that I can parse it for Linux. There is a Linux distro that is called "Linux from scratch" ... it's sort of a meta-distro, which gives you a set of tools to create your own pre-packaged distro, but I'm not sure that I even understand how it works.

The big question that the OP has not answered is what their real goal here is. Are they trying to set up *ONE* machine, with exactly the packages (they call them "programs") they want? For that single-machine install, are they OK with precompiled binary install, or are they trying to build either the base system or the kernel with specific options for that one machine? Or are they trying to create an installation kit (base + a set of packages, the thing that Linux people often call a "distro") which can then be installed on many computers, perhaps in an automated way ? Using precompiled parts, or compiled with specific options? Depending on what the OP really wants, the answers will be forthcoming; many of the answers are sketched out above already.

The communication problem is that we in FreeBSD land express things in terms of base (which can be installed, and afterwards recompiled if one wants to, and the recompiled version distributed to other machines) and packages (which can be binary installed or compiled). FreeBSD does really not have a concept of "distro".

And if the OP explains what they really want to accomplish, my answer might actually be to not think of it in terms of base and packages, but in terms of configuration tools. I have a slight hunch that what the OP really wants is a way to get the same setup on many machines, with configuration files set up near-identically. On FreeBSD, one does not accomplish that with a distro, there are other ways.
 
I want to create a BSD for myself that have some specific programs
SirDice has explained regarding FreeBSD as OS and subsequent adding some specific programs from repository or from other source after required modifications. Why you want to redo the process like "Linux from scratch"?
You can modify/add on a fresh FreeBSD install as per your requirement recompile and use.
 
Come on... That's a little bit unfair, isn't it? When you're used to the Linux-world's terms and how things are done, it takes a while to understand the BSD universe. But I know what you mean and yes, there's some truth in it. Maybe that's an issue of the generation X & Y.
EDIT: & Z. Huh, time flies and I realized that I'm Gen X myself...
 
Thank you so much for great advice and I'm sorry if I couldn't explain my goal.
I want to create something like FuryBSD.
I'm thankful if someone tell me step by step. For example, 1- download...2- download... 3- read...
 
Come on... That's a little bit unfair, isn't it?
Not at all. I rarely go there anymore because of it. Some time back, I had a back-and-forth with half a dozen people in /r/FreeBSD who insisted that FreeBSD is a distro because it has distribution in its name. Same arguments in /r/linux. 80% of the people there are insane or kids under 18-years old who think that running Ubuntu makes them a programmer and computer expert.

And I'm being nice.
 
Thank you so much for great advice and I'm sorry if I couldn't explain my goal.
I want to create something like FuryBSD.
I'm thankful if someone tell me step by step. For example, 1- download...2- download... 3- read...
Well, if you just want to experiment a little bit, ok. If you plan to do that for the benefit of others, too, beware: PC-BSD/TrueOS was maintained by a very small team. My greatest respect for what they achieved with so little manpower. PC-BSD is gone. DesktopBSD is gone. FuryBSD seems to be a one-man-show...
Have a look into the sources of these and GhostBSD, NomadBSD, rusBSD,... dd:BSD (duckduckgo) and you'll find a list of BSD distros. Look into /usr/share/examples/pc-sysinstall. Search FreeBSD ports for post-install scripts -- there are many.
The biggest problem compared to Linux is that FreeBSD's package manager does not allow automagic system configuration on port installation. There's good reason to leave it that way. My guess is that most BSD users are developers of some kind -- from low-level OS to web programming/design -- with very distinctive needs. These people more or less know what they need and like to install & configure their system themselves.
 
I want to create something like FuryBSD.
I'm thankful if someone tell me step by step. For example, 1- download...2- download... 3- read...
I suggest you start using FreeBSD first. You clearly have no idea how things work. That's not meant to be insulting but you need to understand how FreeBSD itself works before you can even begin to think of creating your own derivative. Don't try to run before you've learned to walk.
 
Well, if you just want to experiment a little bit, ok. If you plan to do that for the benefit of others, too, beware: PC-BSD/TrueOS was maintained by a very small team. My greatest respect for what they achieved with so little manpower. PC-BSD is gone. DesktopBSD is gone. FuryBSD seems to be a one-man-show...
Have a look into the sources of these and GhostBSD, NomadBSD, rusBSD,... dd:BSD (duckduckgo) and you'll find a list of BSD distros. Look into /usr/share/examples/pc-sysinstall. Search FreeBSD ports for post-install scripts -- there are many.
The biggest problem compared to Linux is that FreeBSD's package manager does not allow automagic system configuration on port installation. There's good reason to leave it that way. My guess is that most BSD users are developers of some kind -- from low-level OS to web programming/design -- with very distinctive needs. These people more or less know what they need and like to install & configure their system themselves.
For Desktop, the FuryBSD and GhostBSD are best?
 
GhostBSD is GNOME, if you want that, it might be ok for you. They are mature (exist for years/decades?). I can not comment because I use KDE. FuryBSD is a one-man-show... bypasses the FBSD installer, junk left over from the live media in the fresh installation,... Maybe in a year FuryBSD is much better. For the time beeing, I can not recommend it. Better get a bloody nose early by getting FBSD up & running yourself, than to rely on others pre-configuration while what you're actually doing is to help them finding their bugs ;)
 
I want to create something like FuryBSD.

Sorry, but that statement is still not sufficient.

Are you (a) trying to install ONE machine, with something like FuryBSD, or (b) create an installation system similar to FuryBSD (in function) and then distribute it to many machines, perhaps the public?

And: If you want something like FuryBSD, why don't you just install FuryBSD? What does "like" mean in this context? What differences from FuryBSD are you after?

Here is my answer to you: If it is (a), you want to install one machine, then either just install FuryBSD if you want that. If you don't want FuryBSD but instead you want a FreeBSD installation with a GUI, then install FreeBSD, then install the GUI of your choice. On the other hand, if it is (b) you are after, you want to create a new installation system, then that's outside my skill base, and I have no advice on how to do it.

I'm thankful if someone tell me step by step. For example, 1- download...2- download... 3- read...
I am happy to answer that question. It is very easy. Read the FreeBSD handbook. It is trivial to find, just a web search for "FreeBSD handbook". When reading it, there are some chapters you can skip, but it will be obvious which ones, because the beginning of each chapter or section explains what its purpose is.

After reading the handbook, installing FreeBSD will be easy. I would actually advice to mix reading, installing and testing. For example, read everything up to the installing section, then grab a computer, and install a text-based (command line) setup, and start using it for a little bit. Once you have experience with that, continue reading about X windows and GUI, and then reinstall. And so on.
 
Status
Not open for further replies.
Back
Top