Compiling software vs using software packages?

kristian

Verified User
Joined
Nov 4, 2005
Messages
461
Location
Norway
I've many times secretly hoped and dreamed of all the software built by CustomBuild being available as .deb/.rpm packages from an official repository. There are many benefits of this, faster install times, dependency handling, surely identical builds across servers, etc.

While I understand maintaining something like this would introduce more work and complexity, has it ever been considered? What have been pros and cons?
 
The biggest advantage of compiling is that it supports way more configurations. Otherwise it would be a nightmare to keep dependencies in check. Some people keep certain versions of applications for multiple reasons, compiling just uses whatever is available and all DA needs to make sure is all prerequisites for compilation are met.
 
Until DirectAdmin decides to focus solely on one OS system - I don't think full precompiled binaries would be an option. That's the disadvantage of trying to support every operating system under the sun, you have to resort to least common denominator - which is compiling everything.

Or DirectAdmin would really need to boost their development team to provide both rpm, deb, and whatever else may be necessary to keep a constant flow of precompiled binaries.

From the CentOS/RHEL side of things, I'd really like to see DirectAdmin provide some semblance of support for the Remi PHP repository.

PHP is the one item integrated in DirectAdmin that really has concerns with compiling. For one, PHP releases a new update every month. Most hosts offer 3 or 4 different versions of PHP, so that's 3 or 4 versions of PHP you have to compile every month across all of your servers. That takes a while. I mean, if you have a lot of servers (say 20+) all with several hundred accounts (i.e. as an established web hosting company) then compiling PHP can take a while, raise the load, and affect performance on all of your client's sites while compiling - and you're doing this every month. It's so much easier to use Remi's repository and yum update the php packages.

Granted, you do lose a lot of patching and customization that can be included in PHP - so a DirectAdmin sponsored repository with all the different patching options would be ideal.

Other softwares, like Apache, Exim, Dovecot, etc. they are updated less often and usually aren't such robust compiles, so I have less of an issue with being forced to compile those.

But overall I do agree - precompiled binaries would seem to add some shine to DirectAdmin. Ever since that fiasco with ... that other control panel... a lot of hosts have moved over to DirectAdmin, and we are certainly looking to move away from that control panel little by little. But the lack of precompiled binaries and having to compile everything with DirectAdmin does kind of give me pause as to whether the DirectAdmin project is really a professional polished product or more of a hobbyists control panel. Compile everything just reminds me of early 90s Linux before yum and apt-get, so I have trouble shaking DirectAdmin as a futurist product.

Don't misinterpret me on any of this, this is not a knock on DirectAdmin - this is the way they've operated for a while... since their inception I would guess. I can certainly understand their predicament with this. If they moved to all precompiled binaries that would certainly alienate their user base that existed well before the other control panel fiasco. But remaining in compile everything mode I think gives pause to some of the more established web hosting companies with larger server and client footprints.
 
But the lack of precompiled binaries and having to compile everything with DirectAdmin does kind of give me pause as to whether the DirectAdmin project is really a professional polished product or more of a hobbyists control panel.
Looking at how many systems are running Directadmin, seems more professional to me. Even more professional the CP where admins don't have to do admin stuff really. And they use their own binaries. Which can also cause some waiting if things go wrong because they compile their own rpm's. It all has it pro's and cons.

Compile everything just reminds me
Your statement is not quite correct. You don't have to compile everything with Directadmin. For example, bind is from the OS so rpm. MariaDB is build by custombuild, but those are rpm's now too, it's not compiled like in the old days with Mysql, so also that is changed.

Yes php, apache, exim and dovecot are compiled (and maybe more) but I guess that has it reasons, like JCA already mentioned some good arguments. But only DA can answer that I guess.

I don't know if it's worth the fuzz. In the old days maybe. But in these days with all those fast cpu's and lot of memory. Not even talking about SSD drives. It's not that big a time anymore. We setup a complete DA system including the compiles of 3 php versions in 25 minutes. On an i7 7700 cpu with 64 GB memory from which "free" says only 7 GB is used.

RPM may indeed improve things, if possible, but mostly the larger servers are the faster ones. I see your point with lots of servers and compiling php. All 3 versions of php takes us about... 7 to 8 minutes I guess.
and affect performance on all of your client's sites while compiling
Is that a fact? We don't notice any performance issue on client sites while compiling. Maybe because we don't push 300 accounts on a server, that's also possible I don't know.
For sure with rpm an update would be faster I understand your issue but...

It's so much easier to use Remi's repository
There we go. That's not an OS owned repository but 3rd party, and who guarantee's that one will remain? You have to be able to switch fast as panel, if they decide to stop things. If I remember correctly we already lost one repository, not sure anymore. We had issues with the epel release in the past, sometimes not being reachable or something like that.

Next to that... DA needs to support multiple distro's. Remi only supports RHEL deratives, like Fedora and Centos. Not Debian or Ubunto or (until now) FreeBSD.
Which dep do they have to take for those systems? Which also needs DA to keep an eye on those repo's and debs.

Also, using compile, you can offer the same version for all distro's that DA supports at the same time. You don't have any problems that some repo might be later then another repo.
So looking at it that way, this is also a valid reason to use compilation for important packages.

I'm also in favor of RPM use if possible, but only if possible and guaranteed for a longer time and safe.
 
If DA managing a package repository is not an option for whatever reason, I have another suggestion.

For people who have multiple identical servers, it would still be beneficial to have one "build host", where custombuild would compile all the software you want installed, and then package the compiled software and serve them from a local repository. This way the software compiled on one host can be easily installed from packages on the other X hosts. Still adds a bit of complexity, but would be a much simpler implementation. Thoughts on this?
 
If DA managing a package repository is not an option for whatever reason, I have another suggestion.

For people who have multiple identical servers, it would still be beneficial to have one "build host", where custombuild would compile all the software you want installed, and then package the compiled software and serve them from a local repository. This way the software compiled on one host can be easily installed from packages on the other X hosts. Still adds a bit of complexity, but would be a much simpler implementation. Thoughts on this?

This should not be too difficult to implement, basically build and keep the build so other boxes can pull them. Still a nightmare if for some reason your package manager failed (or simply selected a little stale mirror) one day and you didn't update to the exact same version of the dependency.

Like Richard mentioned, we don't feel it's a big problem, PHP takes less than a couple of minutes to compile and that's one of the slow ones and we don't have top tier hardware in our servers. I can easily customize the software way easier and based on how little posts I see from people running into compiling issues, seems this just works.

This also allows DA to push way faster any 0-day issue to their mirrors so we can all upgrade and patch up. As making rpm/deb files takes time and testing to ensure it works along enough different scenarios while compile basically grabs the scenario and builds around it.
 
Back
Top