I need to brain dump and have someone verify

Whether you are using Linux on the desktop or as a server, it's still good that you're using Linux. Linux related questions go here.

Moderator: General Moderators

Post Reply
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

I need to brain dump and have someone verify

Post by alex.barylski »

Linux, as an open source monster :P

Entirely modular and dependancy hell cometh!!! :twisted: Is that even English?

GNU Build is a series of tools (GCC) which are used to generate a customized build environment based on the platofm/system your running.

Because everything is open source, when you download a tarball, and you run it's GNU ./configure script it's actually preparing the makefile and others to build for you architecture (x86, PowerPC, Mac, Solarism, etc). Is this correct? So for a self purpose application I could avoid using autoconf, etc and just build a makefile manually, knowing that I will likely never need it to compile on Solaris, etc...but in the spirit of open source we use the GNU compiler collection (GCC) suite of tools to automate the process as much as possible???

Most if not all GNU based applications will have the same:
./configure
make
make install
setup build environment, make the application binaries and install them appropriately type instructions, correct?

When you download the tarball for say, gEdit and you extract and attempt to build, the tarball package will not likely contain any of it's dependancies (gtk+ libs, etc) so you are expected to know this (as a developer) and download them prior to running a build like above...

Again, under windows, it's either very explicitly noted which libs, etc you need to install (Windows SDK's usually) or the dependancies are included with the package so there is no dependancy hell as i've expeirenced, but knowing this, if I am correct will make things a little easier now, knowing at least I have to research what is needed before building anything. PITA but what do you do? :P

Basically, inorder for my future to prosper under Linux I should brush up on the GNU tools (autoconf, automake, etc???)

These are what is typically refered to as GCC (GNU compiler collection?)

gcc is a front end to it's language specific compilers (C, C++, Ada, Java, Pascal, whatever)

Why is it then when I use gcc on a C++ source file it causes errors, but g++ works fine? Doesn't GCC assume that C++ source files are likely C++ and not C which is what is causing the error.

Not much more to ask, I should try and find a specialized forum for such questions, but thanks for any heads up...

Cheers :)
timvw
DevNet Master
Posts: 4897
Joined: Mon Jan 19, 2004 11:11 pm
Location: Leuven, Belgium

Re: I need to brain dump and have someone verify

Post by timvw »

Hockey wrote: Most if not all GNU based applications will have the same:
./configure
make
make install
The first thing you really should do is actually read the README.TXT and INSTALL.TXT files...
Hockey wrote: When you download the tarball for say, gEdit and you extract and attempt to build, the tarball package will not likely contain any of it's dependancies (gtk+ libs, etc) so you are expected to know this (as a developer) and download them prior to running a build like above...
So here's what README.TXT in the gEdit tarball says:
Installation
============

gedit requires GTK+-2.8.x, GtkSourceView 1.2.0 and GNOME 2.13.x libraries.
pygtk 2.8.x and gnome-python-desktop 2.13.x are required to enable python
plugins support.

Simple install procedure:

% gzip -cd gedit-2.15.9.tar.gz | tar xvf - # unpack the sources
% cd gedit-2.15.9 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build gedit
[ Become root if necessary ]
% make install # install gedit

See the file 'INSTALL' for more detailed information.

And yes, those requirements will have their own requirements, and those have their onws, and so on... If you're going to build everything from scratch i most certainly would not recommend debian (or derivates like ubuntu) since they've got many packages that are different from the vanilla distribution.... The easiest solution for compiling in a debian distribution would be to use "apt-get source" and "apt-get build-deps".. (more info at http://www.debian.org/doc/manuals/apt-h ... ng.en.html).
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Post by alex.barylski »

So timvw, I've decided I like Ubuntu but I need to see what else is out there...

GTK+ is less and less appealing to me and as much as I enjoy Evolution I really also enjoy Konquerer as a browser...

KDE uses Qt which sounds like it's a helluva lot better than the GNOME libraries, at least in the sense of OOP, which is really important to me. Ubuntu was good for a starter and now I need something a little less...friendly maybe and more programmer friendly, sounds like KDE is the way to go. Plus I absolutely MUST have KATE :P

She is a lovely editor you know :)

KDE has some awesome looking desktops to boot...I want it I want it I want it :P

So do you have any suggestions for a KDE distro? I'm thinking (if I'm thinking right) Suse looks pretty good...

I would ideally like something a little more developer oriented...bare bones so I have to install packages such as KDE/Qt libraries for development, GCC, etc...this way I can build from a less cruft filled standpoint.

Suggestions?
User avatar
Jenk
DevNet Master
Posts: 3587
Joined: Mon Sep 19, 2005 6:24 am
Location: London

Post by Jenk »

alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Post by alex.barylski »

actually as we speak I'm building a gentoo... :P

From a minimal CD so it's quite an process so far, but I think I almost have it we'll see in a few if I do or not...

USE variables kinda threw me off though...I mean I get the idea...but why do you need to specify them when build the kernel, what does a kernel care if we include GTK+ or GNOME or not???

I understabnd I can change this later, it just seems like a weird process (from my current understanding) to include in building Gentoo???
User avatar
Jenk
DevNet Master
Posts: 3587
Joined: Mon Sep 19, 2005 6:24 am
Location: London

Post by Jenk »

They are customisation flags. Generally speaking if you are going to use KDE or other desktop enviornment (i.e. not Gnome), you won't need Gnome (and it's dependancy lib's) so to make sure they are not unecessarily included, you use the -gnome flag. Same for any other flag type.
User avatar
sweatje
Forum Contributor
Posts: 277
Joined: Wed Jun 29, 2005 10:04 pm
Location: Iowa, USA

Post by sweatje »

Hockey wrote:actually as we speak I'm building a gentoo... :P

From a minimal CD so it's quite an process so far, but I think I almost have it we'll see in a few if I do or not...

USE variables kinda threw me off though...I mean I get the idea...but why do you need to specify them when build the kernel, what does a kernel care if we include GTK+ or GNOME or not???

I understabnd I can change this later, it just seems like a weird process (from my current understanding) to include in building Gentoo???
You can specify global USE flags in /etc/make.conf (which will then apply to any package you emerge), or you can specify per package use flags in the /etc/portage/package.use file in the format:
dir/package use1 use2 -use3

you can emerge genkernel and have a nice menu based system for building your kernel.

I love gentoo BTW, it is a great hackers distro
User avatar
Jenk
DevNet Master
Posts: 3587
Joined: Mon Sep 19, 2005 6:24 am
Location: London

Post by Jenk »

You don't need genkernel for the make menuconfig :)

Code: Select all

cd /usr/src/linux
make menuconfig
<choose options on menuconfig>
make && make modules_install
mount /dev/hda1 /boot
cp /usr/src/linux/arch/i386/bzImage /boot/kernel-linux-<version>
nano -w /boot/grub/grub.conf
<add new kernel info to grub.conf (symlink for menu.lst) use grub.conf.example for guide>
reboot
<cross fingers, mutter a few prayers and hope kernel works>
All takes about 10mins to do :)

It's compiling a desktop env that is the kicker.. 14hours for KDE.
alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Post by alex.barylski »

Edit: Sorry I jumped the gun, I haven't installed any DHCP clients, etc yet thats likely why I couldn't emerge kde :P

I'll try that jungle nest first and see what happens :P
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

To go back to a point you made earlier about the user needing to know any deps before trying to install the GNU app from source. It's partly true but ./configure should pick up on this too if it's actually been setup correctly.

I would suggest playing around with a distro like Gentoo if you want to learn more about compiling from source and just generally get more of a handle on using a linux system right off the command line. You'll also have to build your own desktop enviroment and as has already been noted there are some very minimal lightweight ones such as enlightenment or evilwm.

I'm not too sure where you are going with USE flags. The USE variable is effectively a wrapper around "./configure --with-<xxxx>" where xxxx is the in USE.
User avatar
Todd_Z
Forum Regular
Posts: 708
Joined: Thu Nov 25, 2004 9:53 pm
Location: U Michigan

Post by Todd_Z »

kubuntu is ubuntu + KDE.
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

Todd_Z wrote:kubuntu is ubuntu + KDE.
Note that if you already have Ubuntu installed there's absolutely no need to uninstall it and install Kubuntu. Just install KDE from apt-get.
User avatar
Jenk
DevNet Master
Posts: 3587
Joined: Mon Sep 19, 2005 6:24 am
Location: London

Post by Jenk »

Gentoo should have net-setup available from the command line if you are experiencing trouble. And remember to run

Code: Select all

emerge portage
emerge --sync
before using emerge to install anything.
User avatar
ibbo
Forum Commoner
Posts: 51
Joined: Tue Sep 19, 2006 6:20 am

Post by ibbo »

Hockey,

More teething problems.
"Entirely modular and dependancy hell cometh"
Which is exaclty the opposite of the monolithic MS appraoch. Take it or leave it but for the masses its a better design.
"Again, under windows, it's either very explicitly noted which libs, etc you need to install"
Read the README file in the src dir, in there you will be given a list of libs to build from. Its up to you to read it. Sounds like your more in favour of windows (yet your making the struggle to become a penguin). Trust me every man or woman jack who starts out with linux has teething problems.

Your dealing with a set of procedures (gcc make etc) that have barely changed in 20 years (long before MS have even got its self any real focus). These tools have been used and re-used and re-used and in 20 years time will still be getting used where your windows oppo will be using something that simply has not been created yet.
"gcc is a front end to it's language specific compilers (C, C++, Ada, Java, Pascal, whatever) "
gcc is simply for C programming, it provides make etc as part of the bnndle. Ada JAVA APscal and all the others are not part of gcc.

You cannot 'cc' cpp files as cc uses a differnet set of headers and libs, For cpp development you need libstdg++ (or your distro equiv).

There are many distro's top choose from these days but trust me 99% of them are keeping up with cutting edge stuff which will mean you have to keep up not just with whats changing but you need to know your basics too.

Modern flavours of linux are ever more daunting due to this and what you need is a bare bones old school OS like slackware which is pure linux and once you master that your away to tackle any of the newbies out there. (your choice though, remember looks can be deceiving).

I personally find KDE over bloated and resource hungry (GNOME preforms better but is still not good enough). There are lots of Desktops you can play with and you dont need some splinter version of linux to access them.

My recommendations are.

Slackware 11.

Reasons : Its the oldest linux distro still going. It does not provide you with a 5 cd install that dumps lots of stuff you will never use on your machine and finally its clean fast and (easier to handle).

Why should you not use it.

Slackware install can be a nightmare (but so can they all). Thats only reason I have.

Days end the choice is yours but remember to stick at whichever one you choose (and master it to the best of your ability, you never know when it may cross your path again). The more you make a mess of things the more you learn not what to do.

It can take years if not more to be a competent penguin so keep it up.

Ibbo
User avatar
Jenk
DevNet Master
Posts: 3587
Joined: Mon Sep 19, 2005 6:24 am
Location: London

Post by Jenk »

In my opinion, if you have Gentoo going from a minimal install CD, there's no need to try Slackware as well, for reasons other than curiosity. Both are purely minimal linux distro's, giving you only the essentials to operate your machine. After that, you can install whatever you like. X, KDE, Gnome, E17 etc. are all just flavors of a DE. KDE is my preference, though I may be swung onto Enlightenment (currently E17) once it has progressed a bit in the development chain (currently alpha/beta)

Ubuntu tries to be a Windows Clone in my opinion. They use the buzzwords "Linux", "Not Windows", "Free Open Source" and "Gives total control to the user" but, again in my opinion, only satisfy one of those criteria, and thinly satisfy two others. Total control not being in there at all.
Post Reply