Join Scott Simpson for an in-depth discussion in this video Package naming, part of Linux: Package Managers and Repositories.
- [Instructor] In a little bit, we'll start working with package files, but before we do I want to explain the naming system used for them. The naming can be a little bit arcane, and if you're searching the web for an individual package, you need to be sure you get the correct one for your particular Linux distribution and machine architecture, or you may have problems installing and using the software. Let's take a look at packages for Nano, which is a small text editor. Here's a couple possibilities that I found in a web search. Let's break this down a little bit. At the front of the name is the package name, in this case Nano, then there's a separator and the version number of the software.
Within the version number, after a dash, is the release of the software. That is, small changes that have happened since a particular version was released. On the top one here, we're on the tenth release since version 2.3.1, and on the next one this is the first release since 2.6.1. After that, we see the target distro for each package. EL7 here means Enterprise Linux 7, or Red Hat Enterprise Linux 7, which also includes CentOS 7. FC25 is Fedora Core 25.
EL6 is Enterprise Linux 6 or CentOS 6, and so on. There's not always a designation for a target distro. If there isn't one, it should work fine on anything. If there is one specified, you may have dependency problems if you try to install it on something that it wasn't intended for. And after the distro, there's a designation for the architecture. You'll see 64-bit and 32-bit packages, represented by x86_64 or AMD64 for the 64-bit ones, which are modern Intel Core and Xeon processors, and many other processors built in the last few years.
And there's i386, i686, and similar things for the 32-bit ones, which are older Intel processors like Core Duo and Pentium. You may also see other packages for other architectures, like PPC, s390x, and various ARM choices. Another architecture designation to be aware of is noarch, which stands for no architecture, meaning that the package does not depend on any particular system architecture and can be used anywhere. Packages will be shipped for different architectures because they can be optimized for a given environment.
For example, a program might be able to take advantage of the higher memory limits and other improvements offered by a 64-bit machine, but that same code wouldn't run on the 32-bit processor. So a different version would have to be shipped for people using each architecture. You can find out what the architecture of your installation is with the uname -m command. And finally, at the end of the file name is an extension, which for Red Hat packages is .rpm, and for Debian packages is .deb. We'll see more about both of these later on.
- Managing packages with RPM and YUM
- Downloading a package file
- Finding package information
- Exploring package dependencies
- Installing a package and checking what has been installed
- Installing groups of packages
- Adding software from third parties to your installation
- Removing and upgrading a package
- Managing packages with dpkg and APT package managers
- Exploring aptitude