From the course: Linux: Package Managers and Repositories

Package naming - Linux Tutorial

From the course: Linux: Package Managers and Repositories

Start my 1-month free trial

Package naming

- [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.

Contents