Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Hi guys, bear with me as I explain this.
Years ago, linux was about as easy to install as new plumbing/wiring on an existing home. A few organisations got together, and today, it is (IMHO) eaiser to install than windows.
Now lets face it. Installing the base linux system may be easy, but for a newbie to install a program that they found on the internet is hard. At the homepage for the prog, they may be lucky to find a rpm for their version, or they may just be told ./configure; make; makeinstall.
Mac OSX, on the other hand, is about 10x eaiser than even windows to install programs. The other week was the first time I had really used it, and from what i can see, you drag the program (which is actually a folder in discuise) into the applications folder. Now this may or may not be correct, but it got me thinking, and there is no reason why this cannot be done for linux.
Why are dependencies not a problem in windows? because there has only been 5 versions released in the last 10 years!
My Idea is to create a linux distro, rebrand it as an operating system (to shed peoples misconceptions of linux). Release a version in say 2005 to compete directly with windows (but at the same time not try to be like windows, just try to be user friendly)
The main part of this distro will be the way programs are handled. The base operating system would be installed as one, much in the way windows is installed, with little options to the user, save a few setup options. Programs would be treated as an executable folder, which could be copied to an 'Applications' folder (like OSX) or could be run from cd (since nothing in the program folder need to be written to anyway).
To fix and put an end to dependency issues, the majority of programs included in the os (for example X11, kde (or gnome), various solitare-like games) would not be listed as being 'installed', they would just have their files in the correct places, just like a slackware install. Then some of the programs that come with the OS (Like Firefox / Mozilla 2.0 which will be out by then) and any programs the user installs will be 'Applications' i.e. executable folders.
The folders would be run something like this:
Inside the folder there would be a script eg ./run-program. Clicking on the folder would cause konqueror to look in the root directory of the folder and run the script (or check a config file in the folder that defines which script to run)
Any developer (and the community) could compile a program that would run just that easy, because the majority of programs would be a standard part of the OS.
Most of these ideas are to make the os behave as a un-informed computer user would expect, with installed applications being entirely seperate from system libraries like gtk, qt, kde, tcl-tk, which should be part of the system itself.
The odd aplication would need extra lib files, and if these were specific to the application (eg dclib and dcgui-qt) then they would be included in the package, and if they were common then there could be a 'common files' place like in windows where users could install these seperately, or the config file of the folder could mention the name of the supplementary library it needs and the OS could check places like the current folder (if it was being run of a cd etc) and 'common files'
Anyway that was a rather long winded post.
If you think that linux is a server os, or that linux is for geeks and you want to retain your reputation, that's fine, but here is not the place to start a flame-war.
I am just interested to see how many other people are like me and want to make linux a little more mainstream. I would love to hear your comments or suggestions on this. I do know that there are people trying to unite open-source projects such as openoffice, mozilla, gnome, and this project would depend on these becoming slightly more integrated, with a common look and feel.
If there is already a project going on like this i would be glad for you to point me in the right direction.
I say go for it! A couple of weeks ago I posted this thread: http://www.linuxquestions.org/questi...nical+question And even though I have learned to love GNU/Linux since then I saw two friends whom I had convinced to try it run back to windows in tears, accusing me of trying to molest their PC. The difference is: I'm the type of guy that actually enjoys the learning involved, they're just average users using the computer as a mean to an end. A lot needs to be done before GNU/linux is usable alternative for these users, in my humble opinion.
As for now, I don't have any of the skills needed to be useful for such a project as the one you're describing, but I'll be you're test "idiot" anytime!
Still being pretty fresh to Linux myself, I can certainly agree that for somene who's not used to it it can be aggravating to no end just to try to install a program. Like I'll install a distro and find out it doesn't have GAIM, which I far prefer over something like Kopete. So then I'd like to download and install GAIM, but before I can do that I have to update gtk, and to do that I have to update pango, atk, and glib, and of course to do that there's even more stuff that I'm not very sure of myself with at all at this point.
If things were more like you'd stated, I think that many people would be less hesitant to give Linux a shot for more than a day before giving up when they find out how much they have to update and mess around with on their system before they can use a program they like.
Your description sounds a lot like Lindows (or Linspire to give it it's current name). They are aiming to compete with Windows by offering a distro which 'just works'. Another reason that Windows doesn't have dependency problems is because one company decides how things work - dlls are used by all programs regardless of what is used to create them.
Linux is a community effort and so, because of this, there will always be differences. Most programs come with rpms or are reletively easy to install - there are some exceptions. For you to create a program which resolves all of it's own dependencies and which means that everything works first time would be a huge job - often a dependency is only resolved by installing a program supplied only by the program maker. And with over 8000 programs available, that's a lot of dependencies. Which means that you would need far more than the normal 2-4 install cds.
Apt-get, slapt-get, swaret, yum and portage solve these problems in a variety of distributions.
Incidentally, Linux is a kernel and Gnu/Linux is an operating system already. Different versions of Linux are known as Distributions (or distros) but are still operating systems.
Originally posted by XavierP For you to create a program which resolves all of it's own dependencies and which means that everything works first time would be a huge job - often a dependency is only resolved by installing a program supplied only by the program maker. And with over 8000 programs available, that's a lot of dependencies.
I do not mean to create a program that resolves depencies, or even to create a program at all. What i am suggesting is to create one version, that comes with most dependencies, and people can compile their programs to support this distro, and post them to a community website, or host them themselves. If there is only one version released every year then there is no chance that the program will need a different gcc version or anything else, because as long as it has been compiled for *linux version* 2005, then it should also work on 2006, 2007 etc, similar to the way that windows 98 programs can be run under ME also.
For the most part of the work on the distro i would use the base of something like fedora, so save much work that has already been done well.
Originally posted by aesahaettr I do not mean to create a program that resolves depencies, or even to create a program at all. What i am suggesting is to create one version, that comes with most dependencies, and people can compile their programs to support this distro
Behold the power of a full Slackware install. I've been using it for the last few years and I've only chased after about twenty dependencies that I can remember. I compile almost everything from source.
The problem you may run into, as any linux distribution, is what versions of libraries and programs to install. New versions may present more features, but at the cost of compability with older versions of other libraries, or even software designed to use with specific version of those libraries (cosider building "zsnes" and you will see that it needs "special" nasm).
The problem here is to include most compatible software in one package. If you include all possible libraries you may get a huge distribution. Now, consider updating all these libraries regularly and then you may see that it is heavy work to do compiling packages for different processors just to update couple libraries.
Linux is driven by people. People change their thoghts often, so do their versions of software . When software evolves it is better to wait for a stable milestone project and put it in a package for your distro. Thus you are giving your users stable linux distribution, it may not be cutting edge one, but users want stable working system first, and only then they play with it.
Cosider including all possible libraries and you will see that some libraries are popping up at some time or another, ranging in popularity and features. There are just too many of them, so you may not know which ones any user will be using for his program. Moreover, useless libraries consume place on a hard drive(please, don't talk about monsters in 120 GB, some ppl got only 40 and happy with it, and have their own plans about extra space on their HDs; and i'm not talking about low end systems... so you may consider that space is important). Would you want to end up with distribution on a DVD or DVDs? Its kinda hard to download, even if you have good cable connection....
My pick would be to bundle libraries with a program in a package, which will be updated when it is nessesary. It doesn't mean that all software must bundle their non-standard libraries altogether with them, but provide packages with and without(separate package) bundled dependencies.
PS. I'm fine with updating software myself, but for computer illiterate user it certanly will help without going into much "scary" details
My pick would be to bundle libraries with a program in a package, which will be updated when it is necessary.
Maybe this is my newbieness speaking, but wouldn't this be the way to go anyway? Or at least make it a habit for programmers to supply any non standard library together with their software, be it separately or bundled in? With GNU/Linux I sometimes get the impression that things are being made easier for programmers at the expense of the (less experienced) user.
Furthermore I think you need to take advantage of the fact that multi-gigabyte hdd's are relatively cheap and maybe trade off a little size for ease of use. I think an operating system can never be all things to all people and if you say you want to make it easy on the average user you will probably have to loose a lot of things the power-user would like in an os. Being able to customize everything does not help when it's not only possible, but necessary to get things working. Most people like things to work "out of the box". I think you need to keep it as simple as possible and say to the user: If you want more out of it, educate yourself and go for a more powerful and featured distro.
Apt-get, slapt-get, swaret, yum and portage solve these problems in a variety of distributions.
Therin lies the problem.
To quote Nvidia:
Q: Why does NVIDIA not provide rpms anymore?
A: Not every Linux distribution uses rpm, and NVIDIA wanted a single
solution that would work across all Linux distributions. As indicated
in the NVIDIA Software License, Linux distributions are welcome to
repackage and redistribute the NVIDIA Linux driver in whatever package
format they wish.
Sure, packaging is nice, but even if you go through the trouble of making an rpm package you STILL have to make the code easy to compile, because not everyone uses rpms. Don't get me wrong, apt-get et al are wonderful tools for system updates, and sure beat the hell out of doing it all by hand. But once you step away from the system pacakges you're back to square one, because Jimmy's Useless Crap Program's makefile can't do anything about dependencies, and Jimmy would rather not make a special version just to work with apt AND yum AND etc.
If you ask me, a single distribution packaging system ought to be incorporated into the next big release of linux, along with a single download and dependency resolution protocol. Let's call the packaging files .lnx files, and just use yum for the installer. A possible command might be
yum install UselessProg www.JimmyCanBeLazy.com
Last edited by EducatedStupid; 04-22-2004 at 02:56 PM.
Originally posted by YMHiK My pick would be to bundle libraries with a program in a package, which will be updated when it is nessesary.
Yes this is EXACTLY what I mean to do. Choose the most popular libraries that are needed by the average X program, and add them into the distro. That's why the project would need to be renamed. If it was (old, but) standard, then any lib that doesn't come with the operating system would be included with the application file.
I was thinking today, it would make sence to start off with Gentoo, compile basic stuff like X11 and anything that wouldn't be listed in the installed programs place (like the windows 'add/remove programs' doesnt tell you that the nt kernel is installed), and then set about incorporating programs like Kudzu, and Anaconda for the install.
To install the base system, there would just be one great big tbz2 that would be extracted to /, and the user would be asked which optional extra's they want (like firefox, openoffice), and these would be listed in the Apps folder. One thing I would have to do away with would be the choice between KDE and GNOME, because this would be an operating environment we would be designing, and to alter more than one DE to handle custom apps would be pointless. Let's face it, if you install Mandrake on your grandma's computer, you may be given the choice when you install it, but she doesn't really care.
The best thing about basing it on gentoo would be that users could, if they wanted to get more complex and learn more about linux, go about emerging and fiddling.
Originally posted by EducatedStupid But once you step away from the system pacakges you're back to square one, because Jimmy's Useless Crap Program's makefile can't do anything about dependencies, and Jimmy would rather not make a special version just to work with apt AND yum AND etc.
Which is why this version would have to work differently. Portage ebuilds are not created by the program creators, but by maintainers and people from the gentoo project. Perhaps an experienced user builds a package from source, includes all non-standard libs, and uploads it to an anonymous ftp site where it is checked for consistency with the system, and they uploaded to a ftp site organised into categories whereby inexperiences users can search for the program they are after.
I doubt linux will ever get a standard package system, because all the package systems are designed to be different things, that would be like creating an operating system to run on desktops, servers, palms, and even watches. Some people like apt, some like portage, and not many (if any) like chasing rpm dependencies.
Time to start a website to plan this. I certainly believe it is worth going ahead, and although i don't know a extreme amount about linux, there will always be this forum to help me out
Originally posted by wmeler What happened to this thread? This was the best Linux reading I've had in a long, long time. You guys were onto somethinghere. I could probably even help out if necessary.
Nothing mate. In fact I'm onto the distro already. What do you think of this:
Since I can't figure out how to program the k-menu to check for installed programs if they are simply sitting in their own folder, I thought maybe I could use rpm's for the optional software.
Portage will be sitting there in the background, for anyone that wants to use it, and for all the base stuff, then programs that the user installs would be installed using whatever gui tool the fedora project uses in FC2 (or KPackage or something). That way end users would not get confused by system things. Understand? So typing `rpm -qa` would produce a list like this:
Of course rpm's in our distro would be considerably different that regular ones, in the fact that they would be obliged to include any dependencies not included in the distro, as well as a K-Menu shortcut. And the actual rpm's would therefore not have any dependencies.
What do you think? I am looking to release an alpha version possibly within the next few months.