I've been using FreeBSD since... Well, I have the 4.0 Powerpak I bought years ago, and I still love it. However, after years and years, and learning new things, I've started noticing things that could really be improved.
I'll start with the installation, and try keeping it to things that would be actually possible:
1. The install is fairly straight forward, but one thing it lacks is some type of notification about where it's at, or, at least, how long is left. I'll elaborate:
If I install other OSs, most of them will at some point show me on the left "You're here in the installation, and these are left before it's complete". And in some cases, like SuSE for example, you'll see that and a progress bar. This would be VERY nice for FreeBSD. I'd LOVE to have some form of progress bar showing me what's left. And if you're doing an FTP installation, this would be even MORE useful!
I'm currently sitting here watching "Adding Packahes/All/package.tbz" as I have been for a while now. I originally started installing on Friday, but because of some issues (Like being WAY busy) I had to hold off until around Sunday to start the install properly.
I decided since the disk I had only had docs packages on it, which is my fault, that I'd rectify the situation by simply doing an FTP installation. I like the FTP install, and so I went with that.
Well, during the install, after two days, there had been quite a few packages that just wouldn't work for some reason, and it gave errors, and kept trying. Eventually, it got to a package that wouldn't install at all, and it just tried over and over again, and when I did ^c I figured I'd check my options.
My options were to stop the install, restart it, or quit basically. I couldn't understand why there ws no option for me to just say "Skip this package, and let me get rid of the ones that depend on it" so I could work on it after the install was done, but I can't.
Now, in other OSs, if a package doesn't work (This was the Fedora Core 10 package, not something required to boot by any means) it usually will tell me, and ask if I'd like to retry, skip that package, or abort the install.
I think FreeBSD would benefit A LOT from this sort of option. If it had this, I'd be typing from that machine instead.
wouldn't it be nice? I mean FreeBSD has some incredibly great coders working on it, why not have one or two of them implement a test system that during an installation, if a Package isn't working, and gives an error, and doesn't work, you can choose to not install it?
Implementing this isn't just something that you clap your hands and it done obviously, but if you are doing an FTP installation, and a Package fails to install, what can you do?
Portupdate just now failed to install, and I'm Hoping once the other ports are done that it won't try over and over again to do that one port, because there doesn't seem to be a way to do anything about it. Last night that Fedora Core one wouldn't install at all, and after 4 times of it saying to hit Enter or SpaceBar, I realized there was no other way to skip it.
Hitting ^c only gives 3 options, and none of those are going to let me skip it. It would be very nice if while installing FreeBSD, there was a few more options when something Errors out and fails, other than restarting the whole installation, or just stopping.
Like this for example, would be great:
Adding Packages/All/Package.tbz from ftp://ftp.freebsd.org
Package gave Error
Would you like to skip this package? Y/n?:Y
This package was a Dependency to these packages; Would you like to see them and either not install them for now, or maybe make a list of all the Packages that haven't installed properly that you can deal with once this is finished? Y/n?:Y
Package named Package.tbz added to "List of Packages that didn't install properly"
This way if a package DOES fail to install for whatever reason, or, if for some reason it just has an issue and won't install, you could at least tell the installer to skip that one for now, and with my idea about making a list of them, once the rest of the install is completed, you could even have it save those packages in that list to the root directory like this:
/root/PackagesNotInstalled.txt or something like that, so that once it was done, you'd have a list to work with and see what you could do to fix it at least.
Or it could just have to choose not to install those packages. That way it would at least finish. Or, again, if the package that wouldn't install was something required by other packages, you could have it check for what packages required that one that wouldn't install, and then either choose not to install THOSE packages, or add them to the list and not install them, and if any of THOSE were required by something, repeat the process so that you have a clean install at least. Like if it can't install something required by something else, see what packages require it, and then have an option to skip them and try later on from maybe another FTP server, or you could download those by hand and install them, and then if any of the packages that require the one that didn't install, were also required by other packages, have a list of those too.
This way if the installer couldn't install a package that was required by a whole bunch of others, you just have a list of everything that wouldn't install for some reason, and then not install things it couldn't grab requirements for, and deal with it later.
I know this isn't as easy as adding a few things to it, because it would require being able to check the whole list of what you selected for requirements and so on, but couldn't it be done?
Also, I noticed another thing during the installation that I'd REALLY like to see an option for too; For some of the Port Categories, it would be nice to have the option to Select All.
Like for example, in the installation I'm doing, it has the Ports listed by Category, and then inside each one, are a bunch of Ports I can select from. But a lot of those a HUGE, and on a few of them, I'd like to have been able to just select all.
If the issue of something selected with the [D] because they are needed, or some can't be installed because other version or whatever are selected, it could just tell you that and let you pick which version or whatever that you'd like, and continue.
For example, the Audio related Ports, I'd have liked to just "Select All for Installation" and not have to pick every one of them because I do a lot of things with Audio, and generally, I just install all of them. Same for the Security, System, and X-11 portions of it. I'd like to have them all, but going through every one of them, one by one, hitting the Down Arrow Key and the Spacebar 30,000 times, is a bit time consuming.
I spent about 8 hours doing this, and then, like I said above, it ended up failing. So now I'm installing again, with a smaller list. I figured I'll just install what I really REALLY need, and then once I have that installed and the machine up, I'll just install the rest by hand.
I have always liked the FreeBSD installation methods, in that I don't need a bunch of RAM or CPU to do it, and I appreciate the fact that I can basically install this on an older machine without issues, but at the same time, I can install Slackware too, and even though it doesn't have all the same things to it, it does let me "Select all" and go do something else.
Anyway, those are some of the installer options I'd LOVE to see worked into FreeBSD's installer.
As for everything else; Well, I do a lot of things where I get people who use Windows, to use something else. I generally use Linux for this because it's a lot easier when it comes to installing security patches and so on, and generally that means a lot.
I know FreeBSD has freebsd-update and port-update and so on, but it would also be great if there was something that would do everything.
Like for example;
apt-get update && apt-get upgrade
Running this on my Debian machine will check for, and install, every security patch and bug fix available. And that's great. I can also do:
And get the same result
If I don't care at all about building my patches from source, and don't care if the patches, upgrades, or updates, are built, wouldn't it be nice to have a FreeBSD version of this? Something that would work like this:
FreeBSDMachine:#update check-base && update check-ports && upgrade base && upgrade ports
And then it checked the base and the ports for any updates / security patches / Bug fixes and so on... And then the upgrade one actually downloads and installs them for you and lets you know if you have to reboot or not.... That would be awesome.