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!
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.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
I was just wondering, I'm a little confused (beginner). So all Linux Distros are organized by the major distribution they are based on, like Debian-based, RedHat/Fedora-based and Slackware-based? or are they organized by their package management system like APT-based, YUM-based etc..? If that's the case, can RPM's be installed on Debian-based distributions using APT and DEB's on Redhat/Fedora-based distros using YUM? And another thing, does installing programs by source code work on all distributions? Thanks for answering
does installing programs by source code work on all distributions?
Assuming you have satisfied the package dependencies, you should be able to compile source code on any distribution.
So all Linux Distros are organized by the major distribution they are based on, like Debian-based, RedHat/Fedora-based and Slackware-based? or are they organized by their package management system like APT-based, YUM-based etc..?
It's a combination of both. Some distros are Debian based and use .deb packages managed via dpkg, apt, aptitude, or synaptic; some are .rpm based and derived from RedHat, while some .rpm based distros were developed independently of RedHat (Suse comes to mind); some distros are source code based but not necessarily related to Slackware. The package management packages are quiet varied: dpkg, apt, aptitude, synaptic, yum, yast2, zypper, and a few more for managing source code packages.
If that's the case, can RPM's be installed on Debian-based distributions using APT and DEB's on Redhat/Fedora-based distros using YUM?
RPM's can be installed on .deb based systems IF you have the necessary rpm management packages installed. Some .rpm distros have modified apt and synaptic to work with their respective package repositories for package management. Much the same could be said for yum, zypper, urpmi, or any other package management system.
You could also use alien to convert from .deb to .rpm to .slackpack. There is checkinstall to go through the motions of compiling source code to make .deb, .rpm, or .slackpack, which you can then install on your system.
Having said that, beware! The locations of installed files, expecially executables, is not carved in stone. Using packages not built for your distro (or source code compiled on your machine) could install files in places that your distro will not recognize, which would make the package non-executable. You would have to use installation options to inform your system of the change in location of installed files. That gets to be complicated and frustrating.
No distro has an exclusive on good ideas. Good ideas have a way of being adapted from one distro to another do that you can mix any combination of package formats you want. However, it's generally a good rule to keep your distro limited to packages built for that distro, or source code compiled on your machine if such packages are not available.
Those are my thoughts on the matter.
Last edited by bigrigdriver; 12-12-2011 at 12:32 PM.
The package manager creates a database of installed files, starting with what came on the installation disk. Whenever you install a new package, the dependencies listed in its metadata are checked against the database to make sure they're all there.
So, if you install the deb package manager on an rpm system, it will create its own database, but that won't know about all the stuff you got as rpms. When you try to install a deb, the package manager will complain about missing dependencies. You'd have to check yourself to see that you had them, and then tell the package manager to install ignoring dependencies. That's why it's simpler to use source code if you need something that isn't available in your distro, that to mix two types of package.
There is a program called Alien that can convert from one format to another. This is useful if you need something that is only available compiled in a particular package. It's not a perfect solution, though, as it doesn't always succeed.
There's always the problem that names of packages may vary. Fedora has python.rpm and python-devel.rpm, but Mandriva combines them as python-base.rpm. I was once puzzled by the complaint that an rpm I'd got from the developer needed python-base: I had Python — what was I missing?
I was just wondering, I'm a little confused (beginner). So all Linux Distros are organized by the major distribution they are based on, like Debian-based, RedHat/Fedora-based and Slackware-based? or are they organized by their package management system like APT-based, YUM-based etc..?
Are organised by? Well, you could classify them in many ways, and some ways of classification would be very useful, and some less useful. So, it is quite usual to classify by packaging types (eg, rpm and deb, or maybe the app used to manage them), but you could also classify by which boot manager they use, whether they are strict about Free and Open Source only, whether they are single GUI environment or multiple (or even whether they have a GUI at all) or support arrangements (eg, commercial or not, and length of active support) or support of oddball filesystems or what start-up system they use, or even whether they were specialist systems for an SME environment, or not. It would probably be sensible to classify by some parameter or parameters that were relevan for your immediate purpose, but you could try classifying by something else, and see how you get on
Originally Posted by boroz
If that's the case, can RPM's be installed on Debian-based distributions using APT and DEB's on Redhat/Fedora-based distros using YUM? And another thing, does installing programs by source code work on all distributions? Thanks for answering
For most people, most of the time, they can just click on the program that they want and, assuming that it is available for Linux, it will just install. You can do something else, but it wouldn't be the normal approach, assuming that you want it to work and work without any unnecessary hassle. That said, there are always odd programs that you can't find, or can't find in the latest version, or something, so you can always build it yourself, if you really want. Converting between formats can also work, but isn't the most reliable way of getting a working app on your computer, if there is another way.
And, quite often, your distro will probably try to make the configuration process simpler - well, simpler than it otherwise might be. But, using software for another platform reduces the chances of that working; given the minor detail variations, generic stuff (compiling from source, in the general case) might not even attempt to do this, and even if the post install scripts do try to do this, they'll probably fail in subtle ways, because, eg, the networking information is stored somewhere different, or different systems set up the users for services differently. Now this isn't necessarily a disaster if you know enough to debug and put it right in a trice, but that wouldn't be the case for many new-ish users.
I haven't really touched on the 'compile in place' distros (eg, Gentoo and derivatives), but they normally go out of their way to give you the environment to make it trivial (ok, trivial to experienced users, and still potentially time consuming...but more time consuming for the computer than for you, fortunately) to compile applications, but if you want to add more compilation than you strictly need into your life, maybe one of those is what you want.