0

I always assumed anything that was defined in the posix standard would be on most commons Linux distributions.

Yet when I looked up what utilities are standard in the posix standard I found this page with a long list.

After trying some that I hadn't heard much about I quickly noticed many don't seem to be installed on my system.

Perhaps the utilities are just named differently? For example I don't have c99 on my system but I do have cc which I assume can compile as c99.

Other utilities I tried but don't seem to be on my system:

  • what
  • uux
  • qalter
  • renice
  • sact

I've only tried a handful of commands that looked unfamiliar but I'm guessing many more aren't on my system.

Are these optional utilities?

3
  • 1
    qalter is marked optional and obsolescent. You could've gathered as much by clicking through the links from that list. Also, since you're not telling the name of your system, I assume that it's something very secret and special, and consequently no conclusion can be drawn from it about Linux distros in general (FWIW, I haven't yet seen a non-embedded Linux system without renice).
    – user313992
    Dec 20, 2019 at 6:26
  • 1
    If you really want an example of POSIX utility not present by default on most linux distros, it's ed, the "standard" editor.
    – user313992
    Dec 20, 2019 at 6:33
  • 2
    You should check what the codes, like [UU] and [OB] etc., means (in the description of the utilities, these are links that gives you their meaning). Some of these feature tags are used to describe optional (or in the case of [OB], obsolete) components of a POSIX system.
    – Kusalananda
    Dec 20, 2019 at 6:50

1 Answer 1

3

Yes, many of them are optional:

renice should be present on most systems; in Debian it’s part of bsdutils, which is one of the core packages which are always supposed to be present. As far as POSIX is concerned, renice was optional in Issue 6, but it’s part of Base in Issue 7.

At least on some distributions (Debian 10, Fedora 31), installing GCC results in a c99 command being made available.

If you’re aiming for conformance, you’ll need to ensure the required packages are installed, for Base and any Options you’re claiming. The “tags” ([UU], [XSI], [BE] etc.) next to command names link to information about the requirements they correspond to.

5
  • It's worth explicitly stating that conformance necessitates installing the appropriate packages.
    – JdeBP
    Dec 20, 2019 at 9:54
  • I would hope anyone interested in conformance would read the corresponding chapter, but yes, it doesn’t hurt to be explicit here. Dec 20, 2019 at 10:33
  • Since SCCS ist OpenSource since December 2006, there is no problem to include this development utility. A portable and maintained version is part of the schilytools.
    – schily
    Dec 20, 2019 at 11:06
  • I find that it's one of the most common errors in this area. People erroneously assume that their default-installed Linux-based operating system must be conformant.
    – JdeBP
    Dec 20, 2019 at 11:14
  • Linux is not POSIX and most current Linux distros have the problem that they act like commercial platforms that like to sell each feature separately. If Linux did deliver the typical UNIX set from the late 1980s by default, less people did have problems and since disk space has become cheep, including that on the filesystem is not a real problem that eats up expensive space.
    – schily
    Dec 20, 2019 at 11:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .