1

My goal is to meet the requirements to compile the Linux kernel. I need reiserfsprogs >= 3.6.3. I ran sudo apt-get install reiserfsprogs. Then reiserfsck -V says 3.6.24. I then ran apt-cache showpkg reiserfsprogs and it gave

Versions: 1:3.6.24-3.1 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_xenial_main_binary-amd64_Packages) (/var/lib/dpkg/status)

My goal here is to install a specific package version so I can run the install command as below. However, I do not understand this file version with a : in it. What is that?

sudo apt-get install reiserfsprogs=3.6.3-whateverPackageName

Why am I getting a seemingly old version of the package? How can I upgrade to the required minimum version?

  • 2
    3.6.24 is newer than 3.6.3... – Stephen Kitt Feb 28 '17 at 21:06
  • @StephenKitt I'm used to versions going up in number not down. Can you explain this to me further please? In other words how is 3.6.2x newer than 3.6.3? Ohhh, I tottally misread it! 24 > 3 :). Woops. I still want to understand the remainder of the question. – P.Brian.Mackey Feb 28 '17 at 21:07
4

The version of the package encodes a number of different pieces of information:

  • the epoch, before the colon (0 by default, 1 in this case);
  • the upstream version number, between the colon and the hyphen (3.6.24);
  • the packaging version number, after the hyphen (3.1).

Epochs are used when the upstream versioning isn't increasing, for whatever reason. Version numbers as seen by the packaging tools need to be monotonically increasing for newer releases to be considered as upgrades. In reiserfsprogs' case, in 2002 the version went from 3.x.1b (with an actual 'x') to 3.6.2; 3.6.2 sorts before 3.x.1b, so an epoch was added — 1:3.6.2 sorts after 3.x.1b (which is equivalent to 0:3.x.1b). Debian policy has the details (and applies for Ubuntu versions too).

When you use = syntax with apt-based tools to specify the version you wish to install, you can't specify any version you like: the tools only allow you to choose between the versions available in the repositories you have configured. You can say

sudo apt-get install reiserfsprogs=1:3.6.3-1

(which is the version of 3.6.3 which appeared in the archives, as per the changelog), but that will only work if apt-get can find that version in its repositories (which hasn't been possible for a long time — 3.6.3 will be fifteen years old this year).

If you really need an old version of a Debian package, you can look for them on snapshot.debian.org. Archives of Ubuntu releases are available on old-releases.ubuntu.com. None of these go as far back as reiserfsprogs 3.6.3 though.

As it stands, 3.6.24 is newer than 3.6.3, and the current version of reiserfsprogs does satisfy your requirement.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.