• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

ACk, why does each distro have to do things differently?

Red Squirrel

No Lifer
I'm noticing this more and more and it drives me up the wall. For example, on some distros, DNS is put in /etc/resolv.conf, others it's put in /etc/sysconfig/network-scripts/ifcfg-eth0 and then Debian based distros seem to put it in /etc/networking or something like that...

DNS is just an example, there's tons of other stuff like this. For example I just discovered that Ubuntu does not have an innittab. There's a huge workaround to get it, but still a pain.

Why can't they all be consistent? It would make coding for Linux so much easier. I'm working on a web control panel, and I have to take every distro into account individually. I essentially need to release like at least 3 versions of my app, and the user has to know which one to download so it works on their distro. Is there some kind of catch all methods to change config settings like this, that work on all distros no matter what? I don't get why they can't just stick to one standard where config goes.
 
I'm noticing this more and more and it drives me up the wall. For example, on some distros, DNS is put in /etc/resolv.conf, others it's put in /etc/sysconfig/network-scripts/ifcfg-eth0 and then Debian based distros seem to put it in /etc/networking or something like that...

DNS is just an example, there's tons of other stuff like this. For example I just discovered that Ubuntu does not have an innittab. There's a huge workaround to get it, but still a pain.

Why can't they all be consistent? It would make coding for Linux so much easier. I'm working on a web control panel, and I have to take every distro into account individually. I essentially need to release like at least 3 versions of my app, and the user has to know which one to download so it works on their distro. Is there some kind of catch all methods to change config settings like this, that work on all distros no matter what? I don't get why they can't just stick to one standard where config goes.

a web control panel? like....webmin?

maybe you should get involved in a project (or just go through some of the source and talk to the developers) that people are already working on to see how its done in a general way, and then see how it gets packaged for use in a distro?
 
You could have your install script identify which distro is used and then pull the appropriate installation files so they won't have to know which version. Though it really isn't hard to figure this out for users. You could also just focus on one distro and that's it.
 
You could have your install script identify which distro is used and then pull the appropriate installation files so they won't have to know which version. Though it really isn't hard to figure this out for users. You could also just focus on one distro and that's it.

I'd cover the big players, and let everyone else figure it out themselves. Debian, Fedora, SuSE would be a decent starting point.
 
What would be the point if every distro was exactly the same?

The back end should be the same (ex: where config files for stuff is located and the syntax) it only makes sense. Why make developer's lives harder by putting config files in different places on different distros? This is the reason why big name vendors aren't releasing stuff in Linux, they would need to add tons of extra code to check for distro differences. Is it that hard for everybody to decide on a specific standard for basic system configuration files and syntax?
 
Cause everyone thinks they can make a better Linux and hope it gets popular like Ubuntu. No one will follow a standard in these types of things if their free to do it however they see fit. Just develop for a specific distro is all you can do i guess.
Just part of why Linux wont ever be the #1 used OS unfortunatly.
 
Cause everyone thinks they can make a better Linux and hope it gets popular like Ubuntu. No one will follow a standard in these types of things if their free to do it however they see fit. Just develop for a specific distro is all you can do i guess.
Just part of why Linux wont ever be the #1 used OS unfortunatly.

Yeah I was planning to develop mostly for CentOS, but it's just too bad it's hard to make it work in all distros. Either way think once the app is "out there" and production ready it will do well even if it's geared towards one distro. I can always add special code later on to handle the different major distros. There's not really anything else like it that is freely available. CPanel is the industry standard but it's way too expensive. 😱
 
The back end should be the same (ex: where config files for stuff is located and the syntax) it only makes sense. Why make developer's lives harder by putting config files in different places on different distros?

clearly development on gnome, kde, gimp, openoffice, pidgin, audacity, webmin, mysql, postgresql, php, openssh, apache, truecrypt, VLC, blender, firefox, opera, filezilla, putty, thunderbird, google chrome and other software is, has been, and for the foreseeable future will be stalled due to the difficulties in cross-platform/multi-distro development and operation, the secrets of which no one has yet to disco--oh wait
 
clearly development on gnome, kde, gimp, openoffice, pidgin, audacity, webmin, mysql, postgresql, php, openssh, apache, truecrypt, VLC, blender, firefox, opera, filezilla, putty, thunderbird, google chrome and other software is, has been, and for the foreseeable future will be stalled due to the difficulties in cross-platform/multi-distro development and operation, the secrets of which no one has yet to disco--oh wait

But those are system apps, that come with Linux or at least, are coded by linux coders and are normally in the yum/apt repositories. I'm talking about 3rd party apps, like games, system management software etc. Why do you think hardly any games are released for Linux? They'd have to code it so it works differently on each distro rather then once. Easier to code for Windows when everything is the same on each machine.
 
But those are system apps, that come with Linux or at least, are coded by linux coders and are normally in the yum/apt repositories. I'm talking about 3rd party apps, like games, system management software etc. Why do you think hardly any games are released for Linux? They'd have to code it so it works differently on each distro rather then once. Easier to code for Windows when everything is the same on each machine.


What are you saying? The only builtin Linux "app" is the kernel, everything else is third party. Hardly no games are released for Linux, because hardly anyone would buy them. Smaller studios will release Linux versions, and some of the cooler mid sized studios /sometimes/ will, but it's all a money game. No money, no development.
 
But those are system apps, that come with Linux or at least, are coded by linux coders and are normally in the yum/apt repositories. I'm talking about 3rd party apps, like games, system management software etc. Why do you think hardly any games are released for Linux? They'd have to code it so it works differently on each distro rather then once. Easier to code for Windows when everything is the same on each machine.

🙄
 
Linux is not an operating system. That is why they don't do it the same in each distro. Asking why two Linux distros do thngs differently is like asking why solaris and osx do things dfferently. I mean they are both unix right?
 
For example, on some distros, DNS is put in /etc/resolv.conf, others it's put in /etc/sysconfig/network-scripts/ifcfg-eth0 and then Debian based distros seem to put it in /etc/networking or something like that...

The core resolver stuff uses /etc/resolv.conf and that's it. The extra stuff in /etc/networking, /etc/sysconfig/network-scripts, etc is just used by the distro's scripts and are used to update /etc/resolv.conf.

I personally hate the RH /etc/sysconfig stuff and prefer the Debian way, but obviously the RH/Fedora people like their way better.

DNS is just an example, there's tons of other stuff like this. For example I just discovered that Ubuntu does not have an innittab. There's a huge workaround to get it, but still a pain.

That's because they're switching away from the old, legacy init system and are trying to migrate to upstart to allow dependency-based parallel script execution. I think upstart will respect an inittab if one exists, but I could be wrong since I haven't had to really touch my init scripts in a long time.

and the user has to know which one to download so it works on their distro

You think your users will be so dumb that they can't figure out which distro they've installed?

Why do you think hardly any games are released for Linux? They'd have to code it so it works differently on each distro rather then once. Easier to code for Windows when everything is the same on each machine.

id seemed to manage to port their stuff to Windows, Linux and OS X just fine without file location problems. Games are probably the worst example because there's virtually no file location problems. All the config files go on $/.blah/ and if you dynamically link in the X, GL, etc libraries ld will find and use them no matter where they are in the system.
 
But those are system apps, that come with Linux or at least, are coded by linux coders and are normally in the yum/apt repositories. I'm talking about 3rd party apps, like games, system management software etc.

You actually have no idea how any of what you are talking about works whatsoever. Its no wonder you have so many difficulties dealing with Linux and its various software packages. If you want to program for linux, you really need to do some research and get a good understanding of how and why things (even basic things like software distribution, nevermind programming) work.

Your never-ending refusal to *learn* about all of these things is what is causing all of the issues for you; it has nothing to do with how the OS and distributions work. How are you going to manage to write a web frontend (which, again, has been done and would provide an excellent example for your understanding eventualy) for an OS and applications that you do not properly understand?

And if you refuse to understand....why the hell are you even interested in doing all of this? Lots of people program for linux and other systems, theres no good reason that you cant as well if youd just learn how the system works that you want to deal with.
 
You can bash me all you want, but I'm just saying, it's stupid that they can't just come up with a standard and stick to it. At least with windows, it's always the same. Some programmers will go through the trouble of doing all the required "ifs" to make their app work in each distro, but it's still a pain. I will probably end up just coding for CentOS anyway but it would be nice if I could release for all distros, just don't feel like having to code my app 30 times because they decide to put config files in different spots on each distro. Well if it was just file locations it would not be so bad, but even the syntax is different for some stuff. Like another example to restart the network service. In RH it's service network restart and debian it's /etc/init.d/networking restart. Why? Why not just stick to service network restart accross the board? It only makes sense.
 
You can bash me all you want, but I'm just saying, it's stupid that they can't just come up with a standard and stick to it. At least with windows, it's always the same. Some programmers will go through the trouble of doing all the required "ifs" to make their app work in each distro, but it's still a pain. I will probably end up just coding for CentOS anyway but it would be nice if I could release for all distros, just don't feel like having to code my app 30 times because they decide to put config files in different spots on each distro. Well if it was just file locations it would not be so bad, but even the syntax is different for some stuff. Like another example to restart the network service. In RH it's service network restart and debian it's /etc/init.d/networking restart. Why? Why not just stick to service network restart accross the board? It only makes sense.

Windows
RHEL
Ubuntu
Suse
OSX
OpenBSD
Debian
Gentoo
AIX

Those are all different operating systems, some of them are very similar and some of them are very different.

There's no reason you can't target any mix of the above and write code that can be deployed on them.
 
Never said I could not, just said it's way more work for nothing. If there would be a better standard it would make it much easier to make an app work in all distros without extensive conditional testing.
 
Again, stop thinking of linux as an operating system. Think of linux distros as their own unique operating systems. Cause that's what they are. If they were going to do things the same, we wouldn't need a 100 of them.
 
You can bash me all you want, but I'm just saying, it's stupid that they can't just come up with a standard and stick to it.

Because then they would be the same OS, which they're not. If the Fedora, Ubuntu and Debian people all agreed on how the system should be setup they wouldn't be working on different OSes.

At least with windows, it's always the same.

Except that it's not. Some are configured through the registry, some through old-style ini files, some via free-form conf files, some with all of the above. Some services are their own daemon some run under svchost. You can use the net command to start/stop them but you need the real service name and not the display name that shows up in the services control panel.

I'll never understand how people see so much consistency in Windows' stuff when there's really so little.

If you were targeting Windows with your app what standard method would you use to find the Apache config files?

I will probably end up just coding for CentOS anyway but it would be nice if I could release for all distros, just don't feel like having to code my app 30 times because they decide to put config files in different spots on each distro.

You don't code your app 30 times, you do it once but make the file locations configurable. Sure, somethings like the network interface config will vary so you'll need separate code for writing them out to disk, but other things like like the BIND or Apache config files look the same on all distros so you just need to figure out where the files are for them.

Sure it's a little extra work but that's the price you pay for supporting other distros, and it shouldn't really be that bad anyway.

In RH it's service network restart and debian it's /etc/init.d/networking restart.

I don't have a RHEL box handy to see what it's network script does, but doing '/etc/init.d/networking restart' just does ifdown/ifup on all interfaces except for lo. So why not just do that yourself? AFAIK those commands work fine in RHEL as well so it should work fine there too.

Why? Why not just stick to service network restart accross the board? It only makes sense.

I know I've mentioned this before, but the sysvinit-utils package provides /usr/sbin/service so go ahead and use the service command and require that package to be installed.
 
I don't have a RHEL box handy to see what it's network script does, but doing '/etc/init.d/networking restart' just does ifdown/ifup on all interfaces except for lo. So why not just do that yourself? AFAIK those commands work fine in RHEL as well so it should work fine there too.

That should work just fine on any linux distro I can think of.
 
You can bash me all you want

Im not doing it to bash you. Youre supposedly a programmer, an IT person, you *have* to take initiative to understand the systems you will be working on. If you dont know how the systems work, troubleshooting to repair them is already enough work, nevermind actually writing new code to make things happen.

Youve said yourself before that going through documentation was too much work for you. If thats too much work then you need to find other projects to work on that arent so demanding of you. Your entire view of operating systems is flawed, nevermind how software should be written for one you clearly know very little about.

It gets old hearing you complain about things you dont understand. If youd just apply yourself and spend time learning, youd get more done, with less help, and youd be able to help others down the road.
 
Back
Top