List of GNU packages


A number of notable software packages were developed for, or are maintained by, the Free Software Foundation as part of the GNU Project.

What it means to be a GNU package

Summarising the situation in 2013, Richard Stallman identified nine aspects which generally apply to being a GNU package, but he noted that exceptions and flexibility are possible when there are good reasons:
  1. The package should say that it is a GNU package.
  2. It should be distributed via ftp.gnu.org, or another site offering access to everyone.
  3. The package's homepage should be on the GNU website.
  4. The developers must pay attention to making their software work well with other GNU packages.
  5. Documentation should be in Texinfo format, or in a format easily convertible to Texinfo.
  6. Should use GNU Guile for its extension language, but exceptions are explicitly possible in this regard.
  7. Should not recommend any non-free program, nor refer the user to any non-free documentation or non-free software.
  8. Use GNU terminology, including referring to GNU/Linux systems and free software in situations where other observers would write Linux and open source
  9. The maintainer should be contactable, at least infrequently, to discuss problems in the software or fixing compatibility issues.

    Base system

There is no official "base system" of the GNU operating system. GNU was designed to be a replacement for Unix operating systems of the 1980s and used the POSIX standards as a guide, but either definition would give a much larger "base system". The following list is instead a small set of GNU packages which seem closer to being "core" packages than being in any of the further down sections. Inclusions and exclusions are of course debatable.
NameDescriptionProvidesVersion
bashGNU's UNIX compatible shellbash
coreutilsbase commandsfileutils: chgrp, chown, chmod, cp, dd, df, dir, du, ln, ls, mkdir, mkfifo, mknod, mv, rm, etc.

textutils: cat, cksum, head, tail, md5sum, nl, od, pr, tsort, join, wc, tac, paste, etc.

shellutils: basename, chroot, date, dirname, echo, env, groups, hostname, nice, nohup, printf, sleep, etc.
cpioarchiving programcpio
diffutilscontains utilities to compare filesdiff, cmp, diff3, sdiff3.2
findutilscontains search utilitiesfind, locate, updatedb, xargs
fingeruser informationn/a1.37,
grepsearch for strings in filesgrep2.10,
groffdocument processing system groff
GRUBGRand Unified Bootloadergrub
gzipcompression program gzip
hurdmicrokernel-based set of servers that perform the same function as a UNIX kerneln/a0.7,
inetutilsuseful utils for networkingftp, telnet, rsh, rlogin, tftp1.9.4,
linux-librekernel that is maintained from modified versions of Linux to remove any software that does not include its source code, has its source code obfuscated, or is released under proprietary licensesn/a4.13.10-gnu,
plotutilsuseful utils for plotting to different devicesgraph, libplot, libplotter2.6,
readlineuseful library for reading command linesreadline
screena terminal multiplexerscreen
sysutilssystem utilities to manage users, groups, passwords, shellsadd-shell, chage, chfn, chgroup, chgrpmem, chpasswd, chsh, chuser, cppw, expiry, gpasswd, grpck, gshadow, hwclock, isosize, last, lastlog, login, lsage, lsgroup, lsuser, mkgroup, mkuser, nologin, passwd, pwck, remove-shell, rmgroup, rmuser, setpwnam, vipw, wall, write0.1.6
tararchiver able to create and handle file archives in various formatstar
texinfodocumentation system for producing online and printed manualsn/a
timeprogram to determine the duration of execution of a particular commandtime1.8,

Software development

The software listed below is generally useful to software developers and other computer programmers.

GNU toolchain

The following libraries and software frameworks are often used in combination with the basic toolchain tools above to build software.
The following packages provide compilers and interpreters for programming languages beyond those included in the GNU Compiler Collection.
The software listed below is generally useful to users not specifically engaged in software development.

Graphical desktop

The following packages provide GUI desktop environments, window managers, and associated graphics libraries.