Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
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.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I'm pretty new to the linux terminal and trying to do everything with it lately.
I want to practice compiling programs and such. It's working for me now with no problems on OpenSuse 11.3 but I have so many compilers and dev packs installed that I dont really know whats being used. Eventualy I want to keep and use only whats really needed.
My question is:
1. Is there a list of programs that need to be installed in order to compile anything or do I need different things for different programs.
For example do I need different things installed to compile mplayer vs atidrivers.
2. What are the minimum programs needed to compile?
I know there are many RPMs available and its safer to use them but this is my test machine I want to use to learn the insides and processes of linux so if I really mess it up its no problem.
I don't think there is list of programs that you install and it will compile everything. Different programs uses different libraries and depending on that you can install required packages. For example mplayer uses different codec libraries and games uses different graphics libraries.
I'm pretty new to the linux terminal and trying to do everything with it lately.
I want to practice compiling programs and such. It's working for me now with no problems on OpenSuse 11.3 but I have so many compilers and dev packs installed that I dont really know whats being used. Eventualy I want to keep and use only whats really needed.
Experience will tell you.
Quote:
My question is:
1. Is there a list of programs that need to be installed in order to compile anything or do I need different things for different programs.
For example do I need different things installed to compile mplayer vs atidrivers.
Different programs will have (probably) different requirements. For a starter, there are thousands of programming languages. You will need a different compiler for each language (well, for most of them). For example, if you program is written in C++ you you need g++ to compile it (or another C++ compiler). If your program is written in C then your compiler is gcc. If your program is written using Gambas you will need such environment to compile it. Java programs will need the java compiler and probably the java run time environment. The list continues: perl, lisp, python, etc. You get the idea.
Then there are libs. A qt-based program will need qt installed on your system AND the development stuff for QT. Some programs will need the kernel sources or at least the headers (ati-drivers, and most drivers, definitely do need this). Some program could use SDL to do the drawing or sound output, some others could use allegro, libao or alsa directly, or maybe phonon, gstreamer, xine, or whatever else.
Quote:
2. What are the minimum programs needed to compile?
A good starting point is the gnu toolchain, which includes binutils, the gnu C compiler and some common tools like "make".
Quote:
I know there are many RPMs available and its safer to use them but this is my test machine I want to use to learn the insides and processes of linux so if I really mess it up its no problem.
You might be interested in LFS (linux from scratch).
Sources can come in a number of ways. Most commons are compressed packages of some kind (tar.*, 7z, zip...) or from some kind of rcs repository (via cvs, svn, bazaar, git...). In any case, once you download and/or uncompress the package, most likely you will find some kind of README or INSTALL file(s) which should list the dependencies and whatever special requirements you might need to meet to compile the package.
What packages you will need to install will often depend on your distro. On binary distros, source and header packages usually are named like something-dev or something-devel, in Gentoo you get this for free, because of its nature (being a source-based metadistro).
You can add an RPM source repository in YaST2. Often when a package needs a library, you will need the *-devel version of those same libraries. You will need to install of those libraries, but the more packages you build, the less you will need in the future.
Be sure to run "./configure --help" to see what build options are available.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.