The first beta version of Mandriva Linux 2007 has been released. Available in four differents flavours live/install CDs (KDE or GNOME, i586 or x86_64) or in a whole new dual architecture Installation DVD, get a glimpse of the next Mandriva Linux 2007 edition.
I hope they didn’t make the same mistake as they have been doing again and again: putting special devel packages. I prefer the slackware way: put everything in one .tgz – I don’t have to worry if I installed SDL-devel when I want to code using SDL and many others.
Not including the -devel files in the same package is common on all RPM and DPKG distros. And indeed, it is one of the reasons why I don’t use such distros (like you, I used to use Slackware, now I use Arch Linux). I don’t think that 150 or 200 MBs of extra needed space hurts anyone when the full installation is 2.5 GB.
The -devel packages are needed by the minority of people, thats why its not included. How many people who use computers actually write software for them? Very few. Why should the valuable space on the CD be wasted with devel packages? Its not like they are at all hard to install.
I don’t write linux software, but I surely compile from source when I can’t find a package of a specific app. You will be surprised how many people have to do that either because they can’t find recent packages or because rpm gives them dependency headaches. I would estimate that at least 50% of the linux users compile from source every now and then. I think that these 200 MBs as a favor to these 50% users should be there.
If your estimate is correct (and I dare say that I probably agree with it), then so much for all of the preaching from the Linux crowd about how great Ubuntu/SuSE/Fedora’s/etc. package management systems are and how you never have to see the terminal ever.
Linux: 0
Mac OS X/Windows: 1
Even if her figure is accurate, which I will not dispute since I don’t think anyone has ever seen real statistics, how do you know those supposed 50% aren’t using the console because they’re comfortable with it or preffer it. Ever consider that perhaps many of the people using Linux want to use it because of the powerful command line and cli tools?
Out of all the distributions I’ve used, Slackware, Gentoo and their kin were the only ones in which I had to use the command line. And if users are scared of the command line, there are distribution in which you never have to use it unless something drastic happens and their failsafe graphical rescue tools don’t work or you want to use it.
Besides that what’s so scarry about the command line, it’s actually much easier than using the graphical user interface, most people are just too lazy to learn it.
As far as keeping score goes, not only were your grounds for it wrong, but it’s also obviously inflamatory.
Even if her estimates are correct, you don’t have to touch a terminal for merely installing a package from source. Making your statement void. In 30 seconds I found these http://kconfigure.sourceforge.net/ and http://www.brainspace.it/index.php?option=content&task=view&id=22
Had I bothered to spend a minute or two more, I would have found several more. Using other toolkits to suite the users preferences like Motif, fltk, Gtk or whatewer. Some with and some whitout integration with the native packagemanger, depending on the users needs/wants.
Linux 2
Tom 0
Edited 2006-07-31 21:59
Where these additional megabytes matter most is not HD space, but download size. If I’m downloading a distro, I’d surely prefer not to have all dev packages in it. Instead, I’ll apt-get the necessary ones when I need them. That said, a distro should include at least the basic build tools (and that’s why Ubuntu CDs include build-essential).
This means that you ALREADY know WHICH of these -devel packages you need, and what are their names. Sorry, but 99% of that 50% of users, don’t have a clue how to do that.
And 200 MBs compressed is about 50 MBs of headers. That’s just 3 minutes on a DSL/Cable line. I think that wasting 3 minutes of your time is not a big deal to make the life of 50% of the userbase better.
With apt, you can use apt-get build-dep <pkg> but that assumes that the package exists in debian. e.g. apt-get build-dep gaim
But this still really useful to grab build dependencies for a package if you are simply interested in compiling a newer version that the one in the repo. This is often the case with debian/ubuntu for me as they freeze version upgrades after release.
> I think that wasting 3 minutes of your time is not a big deal to make the life of 50% of the userbase better.
Longer installation, longer fsck, longer download for updates, longer depresolve, many uneeded programs for average joe, perhaps one more CD, etc.
I compile programs, but your proposal is quite silly.
devel packages for fedore core (without extras) :
– 370 *-devel*.rpm
– more than 160 MB compressed
– disk usage : 700 MB !
– number of files : 51 800 !
It’s not counting gcc, automake, autoconfig, m4, awk, etc…
It’s not hard to compile a package with rpm :
$ rpmbuild -ba openoffice.org.spec
error: Failed build dependencies:
autoconf is needed by openoffice.org-2.0.2-5.16.2.i386
ant is needed by openoffice.org-2.0.2-5.16.2.i386
flex is needed by openoffice.org-2.0.2-5.16.2.i386
bison is needed by openoffice.org-2.0.2-5.16.2.i386
perl-Archive-Zip is needed by openoffice.org-2.0.2-5.16.2.i386
gcc-java >= 4.0.2 is needed by openoffice.org-2.0.2-5.16.2.i386
libgcj-devel >= 4.0.2 is needed by openoffice.org-2.0.2-5.16.2.i386
java-1.4.2-gcj-compat-devel is needed by openoffice.org-2.0.2-5.16.2.i386
gnome-vfs2-devel is needed by openoffice.org-2.0.2-5.16.2.i386
cups-devel is needed by openoffice.org-2.0.2-5.16.2.i386
curl-devel is needed by openoffice.org-2.0.2-5.16.2.i386
boost-devel >= 1.31.0 is needed by openoffice.org-2.0.2-5.16.2.i386
….
Use yum to instal these packages.
Build require are perfectly check in Fedora :
http://fedoraproject.org/wiki/Projects/Plague
http://fedoraproject.org/wiki/Projects/Mock
You should use Mock since you have lot of disc space.
Rpm and dpkg are great great software.
This will add all -devel package that you thing are missing :
$ rpm -q -a –queryformat “%{NAME}
” | grep -v — “-devel” | sed -e “s/$/-devel/” | xargs yum -y install
You can safely ignore warning “No match for argument: …”
This should be better but not perfect :
#!/bin/sh
rpm -q -a –queryformat “%{NAME}
” | grep -v — “-devel” | sed -e “s/$/-devel/” | sort | uniq > needed
yum list available *-devel | sed -e “s/..*$//” | sort | uniq > available
yum install `join needed available`
rm -f needed available
1. Please quit making up statisics.
2. If someone compiles an app from source they have pretty much the same dependency problem that you are describing. If I don’t have libxyz installed that the app I am compiling needs, I will have to find and install that library anyway.
So what you are advocating is that we install all known libraries and their devel files as well, so that a small portion (not %50, no way) of the people can easily compile a random application they download off the internet. If that doesn’t sound like a load of bloat I don’t know what is. Silly talk.
Please stop projecting your needs onto that of the rest of the Linux using population.
I’m talking more about the CD space more then the HD space.
50% is way off. Of the general world population, probably less than 1% are interested in software development. If the user needs to compile a program to make it work, you can bet he won’t be using that program unless he’s a computer enthusiast, in which case he will find out how to do it anyway. Even if the distros merged the -dev packages the user would still have to figure out dependencies and the names of the unified packages.
Also, could you PLEASE fix the CAPS LOCK key in your KEYBOARD. It’s a little ANNOYING.
I would estimate that at least 50% of the linux users compile from source every now and then.
My guess is that 50% of 2% of all Linux users ever compile anything, which would give us 1%. This, however, is just my unqualified guess, a mere feeling I base on my talk with ordinary users.
If Linux users can’t find what they are looking for, in terms of apps, they either install Windows, or dual boot Windows.
I also would like to add that we don’t see a lot of people compiling from source.
As a company, yes we do. We even provide RPMs to our customer base when asked; most of the time as a gesture — indicating that most of the RPM build we do is really peanuts.
We believe that 1% is a better figure indeed, based on real user data we have.
regarding not to include those files — that’s pretty normal. Ordinary users don’t want kernel soures, devel packages et al.
> I hope they didn’t make the same mistake as they have
> been doing again and again
This is not a mistake, it is a feature and a standard. It will NEVER be changed, because that would be a severe regression.
> I prefer the slackware way: put everything in one .tgz
Bloat, bloat, bloat.
Do you have an idea how much disk space this consumes? The header files and development documents of a library as small as gtkmm are 70 MB (seventy megabytes) after unpacking. This can easily become more than a gigabyte for a full-featured desktop system.
Another reason for splitting out the header files: Putting them into the main package BREAKS parallel installability of multiple versions of the same library. You CANNOT have libexpat.so.1 and libexpat.so.0 for compatibility with legacy binaries that way because the header files are clashing.
> I don’t have to worry if I installed SDL-devel when I
> want to code using SDL and many others.
With a proper package management tool like Mandriva’s urpmi, installing SDL-devel is as simple as typing “urpmi SDL-devel” into a terminal.
Of course it will install all recursive dependencies for you, automatically within the same command. And of course you can select development packages during the initial installation – a Mandriva system can very well include a complete development environment right from the beginning, the user just has to use the appropriate installation options.
Most people don’t know what compile is. The problem is not about headers, is about package availability. Should I compile a program to my specific distro if i’m a noob? No, I don’t know how to compile, I come from Windows world and just want to install stuff. I’ve been told that with the installer Adept/Synaptic I can install everything is available to my distro. So this is how you actually install software in Linux. Is a great way, but lacks perfection. The Windows way is no better, but people knows already how to double-click the installer and then Next >> Next >> Finish
I hope most Linux software (not common and available normally with the distro) be released also with binary graphical installers, like in Windows. But compiling is for distro maintainers/advanced users/geeks. If you are one of them you already know how to get your -dev dependencies installed. There’s no need to install useless stuff unless you need it. Linux, remember, not Windows here.
What you don’t realize is that this is just utopia. Yes, it would be all nice if there were graphical installers for everything. But the reality is that they are not.
And until they are, SOME users WILL have to use the command line to COMPILE applications. And for THESE users, the headers must be part of the main package too. And no, it doesn’t mean that these users who occasionally compile an app are actually developers. They are users who are FORCED to use compilation because of the daily realities of the GNU/Linux environment in general.
So, there is no reason to close your eyes with a blindfold saying that “you don’t have to compile” so I won’t give you the -devel packages, because we all know that at some point we all will have to compile something for one reason or another.
SOME users WILL have to use the command line to COMPILE applications.
Especially those users most of the times know exactly what they are doing.What’s the use of a custom install if they don’t?
On FC i have more than 7000 packages at my disposal.Far more than i ever will use much less comprehend.Nonetheless sometimes i know i have to compile something from source,kradio for $ARCH = x86_64.You simply can’t include every possible package.
So while at the cli anyway i got a great view at an error message complaining libsndfile something.Back at the yumex GUI i simply added libsnd-devel to the install que.All very basic stuff.Perhaps a bit different for windows users but nonetheless very basic.
Somewhere they had to draw a line between usability and utter needless pampering and i think the balance between them isn’t so bad when you take the majority of linux distros into account.
If you can think,the OS doesn’t matter that much.
I hope most Linux software (not common and available normally with the distro) be released also with binary graphical installers, like in Windows.
You say the Windows way is no better, but then recommend Linux copies it? The Linux way is better. Instead of having to find some random website, install it, and hope it has an uninstaller, etc…
Whats wrong with the Linux way? Packages that are in the repositories are automatically downloaded and installed for the user with a single click, and in Ubuntu simple checkboxes in an “Add/Remove Applications” dialog. If you have to go to a website to download it, when you download the package, it will have a uniform interface that has a simple “Install Package” button. Please, for the love of god, keep the Windows method away from Linux. Its the worst way around.
“What you don’t realize is that this is just utopia. Yes, it would be all nice if there were graphical installers for everything. But the reality is that they are not.”
It’s not an utopia. You are beeing to much negative. And not all applications need to have a graphical installer. Only those that are not provided with your distro.
“And until they are, SOME users WILL have to use the command line to COMPILE applications. And for THESE users, the headers must be part of the main package too. And no, it doesn’t mean that these users who occasionally compile an app are actually developers. They are users who are FORCED to use compilation because of the daily realities of the GNU/Linux environment in general.”
You really don’t realize that most users don’t understand how to compile an application. And with users I mean the normal Windows user, not the advanced Linux one. Ofcourse I compile applications myself sometimes, and for that I installed the -dev packages as required and stated in the INSTALL or README files. Even some configures tell you so if they can’t find the headers. And if they don’t they should tell you what’s missing.
But then, normal users don’t need to compile. Everything they need is in the distro. If it’s not there’s a reason. I understand the Eugenia kind of user needs to compile. But not the Joe kind of user, the one that only want’s a package, double click and execute.
“So, there is no reason to close your eyes with a blindfold saying that “you don’t have to compile” so I won’t give you the -devel packages, because we all know that at some point we all will have to compile something for one reason or another.”
Look at you. Compile this, compile that. Ask some people in the street to compile something. That’s why Ubuntu is every day more easy to use. Everything Joe user needs is in the distro. What’s not, it’s not. Sorry. That’s the nature of Linux. It probably won’t change. But that doesn’t mean that most common users should compile anything.
Sometimes you will find that for some application you will also need to download a specific library that you distro doesn’t have. You will have to compile it and install the headers. Do you really expect someone without enough knowledge to accomplish such a task? If it can, he/she surely can issue a f–king apt-get install libwhatever-dev.
Usability can partly be described as:
not having to spend two days building a hammer in order to hammer one nail, every other month.
Most “users” like to work on their computers, not at their computers
So, why compile? Windows is everywhere, or at 95% of all places.
Why do you mention Windows? Over 90% of the Linux distros are binary only and do not require any compiling. The person who posted is complaining that Mandriva and Ubuntu and so on do not require any compiling. Why use Windows? Ubuntu and Mandriva and other distros are focusing on usability.
I’m still half way thru the download, so does anyone have quick impressions of it both as livecd and its install ?.
Eugenia, you’re just being silly. For one, I don’t agree with your assertion that many people need to compile from source. The typical “windows switcher” either *wants* to get his hands dirty, or will *never* compile. For two, for those people who do want to compile, installing the devel packages are absurdly simple. I really don’t see what the issue is.
Looked up this thread because I was interested in Mandriva (I still don’t quite see what Ubuntu has over Mandriva – both are good in my opinion). No danger of seeing any coments on that so, I might as well join in the dependencies discussion.
My first experience of compiling programs wasn’t too bad.
./configure
./make
su
make install.
Sure dependencies will come and bite you one day, but the same is true in Windows (though not as often). And it is a complete pain in the arse when it happens in Windows. No decent doccumentation or clues as how to fix the problems.
The fact is that most “Granny” type users will not have any need to install software, and probably wouldn’t have a clue about dependencies. The people most likely to run in to dependecy problems are going to be the ones running some relatively obscure software. That would imply that they are familiar enough about computers to be able to find out about that random piece of software in the first place. These people may have a problem at first, but it should’nt take them long to get round it. If these people are clued up enough to know what bit of software they need, then when they discover repositories, then at least the dependencies are easily solved by apt/yum/uprmi.
In my opinion, Windows is probably more intuitive, while Linux is easier to use.
Has anyone here actually had a chance to try the release out? I was hoping there would be some comments on the actual distro, but all I see in this thread is an argument about devel packages. I’m downloading the Gnome version right now, primarily because Mandriva in the past has focused more on KDE and I would like to see whether that has changed; of course, I also want to see 2.16 😉
When I’m doing “actual” work, I’m usually using Fluxbox anyway, but I enjoy both KDE and Gnome (not to mention the still-buggy E17). I probably use them about 1/3 of the time, and I like looking at the new releases.
I’m not sure if there is some Eugenia resentment or somthing going on, but anyone that uses an rpm based distro will at some point indeed need the dev libraries to go through the tried and true:
./configure –prefix=
make
su -c “make install”
It’s the only full proof way to really bypass the term commonly refered to as RPM Hell. Sure, on most occassions I can find a working rpm and install it via the gui and go on my merry way, but somtimes you’ll need to link to a required library (.so or .la file) to get the application running, and the only way to actually compile the source is to have the header files (dev files). I’m not foolish enough to throw out a percentage of users that are forced to go through this process, but I’d be inclined to think that more than 50% of Linux users that I know, are prepared and willingly accept that this will happen. Hell, compiling from source is almost like getting you meret badge of Linux honor, and you can’t compile without the dev libraries, which I always install during the initial instilation process, because downloading them later is a major PITA because they are large. For those of you using Debian (and it’s children), you may have been lucky enough with those huge software libraries never to actually have to go through this process, but your day is comming. Mandriva has such a large user base that most of the time the dependancy requirments will catch the required dev libraries, but it is far from full proof.
Mandriva has such a large user base that most of the time the dependancy requirments will catch the required dev libraries, but it is far from full proof.
Mandriva has a lot of packages in their repository.
People who run into trouble with dependancies are paradoxal most of the times the ones who know what they are doing.Why would you require a specific application that’s not within the existing enormous repository anyway?
A simple urpmi <package> from the cli will take the dependancies into account.That is if you haven’t found the GUI first.According to the known bugs,the GUI installer doesn’t work quite well yet.So installing with urpmi from the cli is the method with 2007 for the time being.
./configure –prefix=
make
su -c “make install”
Y,or,”./configure –enable-libsuffix=64 && make && su -c “make install”;”
For those of you using Debian (and it’s children), you may have been lucky enough with those huge software libraries never to actually have to go through this process, but your day is comming.
Debian and derivates,Fedora,Gentoo,.. all have indeed an impressive repository.To be honest i only compile from source to check wether i screwed the source i wrote,not because a particular app isn’t avaible.
For some it’s never good enough.To many packages,to little packages,..
A lot of (OSS) projects have very good documentation.
Most of the times they inform you about required packages and other requirements.Even if you have never compiled from source you can with the “baking cake” steps.That doesn’t mean there aren’t problems all the time.I simply feel the need to colour the picture a little because in my humble opinion the whole is being displayed a little oversized black&white.
> It’s the only full proof way to really bypass the
> term commonly refered to as RPM Hell.
Much easier solution: Learn how to use a package manager.
I am seriously getting tired about all these “RPM Hell” statements. If you are unable to use rpm correctly and unwilling to learn it, simply don’t use it, but stop making false statements. There is no “RPM Hell”.
Everything people have to learn is: “If ./configure complains about a library, install the matching -devel package”. That’s all. It’s really simple. It’s as simple as, let’s say, “If you want to create a directory, use ‘mkdir'”. Having to learn something as simple as that is definitely acceptable for someone who wants to learn about building software from source.
In order to set up an SDL build environment on Mandriva, execute “urpmi libSDL1.2-devel”. This will pull in all the needed things, including the ALSA development environment, the X11 development environment etc. Automatically, of course.
The *real* “RPM hell” is not in rpm itself, it’s in false statements like “In order to get a build environment, search random FTP sites manually, collect all packages manually, install them manually. Doing that will be really hard and rpm sucks hell”.
Yes, it is really hard that way and it is the *wrong* way to do it. If you don’t like rpm and don’t want to help people using it correctly, just don’t do it.
After reading this discussion, it sure explains why Linux only has 1% of the desktop market.