GNU Software

GNU is an operating system which is 100% free software. It was launched in 1983 by Richard Stallman (rms) and has been developed by many people working together for the sake of freedom of all software users to control their computing. Technically, GNU is generally like Unix. But unlike Unix, GNU gives its users freedom.

The GNU system contains all of the official GNU software packages (which are listed below), and also includes non-GNU free software, notably TeX and the X Window System. Also, the GNU system is not a single static set of programs; users and distributors may select different packages according to their needs and desires. The result is still a variant of the GNU system.

If you're looking for a whole system to install, see our list of GNU/Linux distributions which are entirely free software.

To look for individual free software packages, both GNU and non-GNU, please see the Free Software Directory: a categorized, searchable database of free software. The Directory is actively maintained by the Free Software Foundation and includes links to program home pages where available, as well as entries for all GNU packages. Another list of all GNU packages is below. Free software documentation links are listed separately.

Finally, we have a short list of free software replacements for proprietary software running on various proprietary systems.

We have also published a list of recommended educational software.

How to get GNU software

Download distributions

GNU and Linux

If you're looking for a whole system to install, see our list of GNU/Linux distributions which are entirely free software.

GNU software is available by several different methods:

Develop GNU software

The FSF maintains a list of high-priority free software projects; please help with these projects if you can. For other ways to contribute to GNU, including reviving unmaintained GNU packages and helping with development, see the GNU help wanted page.

If you're writing a new program and would like to make your software an official GNU package, see the evaluation information and submission form. Refer to the ethical repository criteria for guidance choosing a hosting service for your project.

If you're maintaining or developing a GNU package, whether newly dubbed or of long standing, this short list of tips for GNU maintainers may be useful, along with this information about GNU software developer resources.

All GNU packages

Links to the home pages of all current GNU packages are given below, using their identifiers (rather than long names) for brevity. They are sorted alphabetically from left to right. If you have corrections to this list or questions about it, please email <maintainers@gnu.org>.

Also available are lists of:

3dldf  8sync  a2ps  acct  acm  adns  alive  anubis  apl  archimedes  aris  artanis  aspell  auctex  autoconf  autoconf-archive  autogen  automake  avl  ballandpaddle  barcode  bash  bayonne  bazaar  bc  behistun  bfd  binutils  bison  bool  bpel2owfn  c-graph  ccaudio  ccd2cue  ccide  ccrtp  ccscript  cflow  cgicc  chess  cim  classpath  classpathx  clisp  combine  commoncpp  complexity  config  consensus  coreutils  cpio  cppi  cssc  cursynth  dap  datamash  dc  ddd  ddrescue  dejagnu  denemo  dia  dico  diction  diffutils  direvent  djgpp  dominion  dr-geo  easejs  ed  edma  electric  emacs  emacs-muse  emms  enscript  epsilon  fdisk  ferret  findutils  fisicalab  foliot  fontopia  fontutils  freedink  freefont  freeipmi  freetalk  fribidi  g-golf  gama  garpd  gawk  gcal  gcc  gcide  gcl  gcompris  gdb  gdbm  gengen  gengetopt  gettext  gforth  ggradebook  ghostscript  gift  gimp  glean  global  glpk  glue  gmediaserver  gmp  gnash  gnat  gnats  gnatsweb  gnowsys  gnu-c-manual  gnu-crypto  gnu-pw-mgr  gnuae  gnuastro  gnubatch  gnubg  gnubiff  gnubik  gnucap  gnucash  gnucobol  gnucomm  gnudos  gnufm  gnugo  gnuit  gnujdoc  gnujump  gnukart  gnulib  gnumach  gnumed  gnumeric  gnump3d  gnun  gnunet  gnupg  gnupod  gnuprologjava  gnuradio  gnurobots  gnuschool  gnushogi  gnusound  gnuspeech  gnuspool  gnustandards  gnustep  gnutls  gnutrition  gnuzilla  goptical  gorm  gpaint  gperf  gprolog  grabcomics  greg  grep  gretl  groff  grub  gsasl  gsegrafix  gsl  gslip  gsrc  gss  gtick  gtypist  guile  guile-cv  guile-dbi  guile-gnome  guile-ncurses  guile-opengl  guile-rpc  guile-sdl  guix  gurgle  gv  gvpe  gwl  gxmessage  gzip  halifax  health  hello  help2man  hp2xx  html-info  httptunnel  hurd  hyperbole  icecat  idutils  ignuit  indent  inetutils  inklingreader  intlfonts  jacal  jami  java-getopt  jel  jitter  jtw  jwhois  kawa  kopi  leg  less  libc  libcdio  libdbh  liberty-eiffel  libextractor  libffcall  libgcrypt  libiconv  libidn  libjit  libmatheval  libmicrohttpd  libredwg  librejs  libsigsegv  libtasn1  libtool  libunistring  libxmi  lightning  lilypond  lims  linux-libre  liquidwar6  lispintro  lrzsz  lsh  m4  macchanger  mailman  mailutils  make  marst  maverik  mc  mcron  mcsim  mdk  mediagoblin  melting  mempool  mes  metaexchange  metahtml  metalogic-inference  mifluz  mig  miscfiles  mit-scheme  moe  motti  mpc  mpfr  mpria  mtools  nana  nano  nano-archimedes  ncurses  nettle  network  ocrad  octave  oleo  oo-browser  orgadoc  osip  panorama  parallel  parted  pascal  patch  paxutils  pcb  pem  pexec  pies  pipo  plotutils  poke  polyxmass  powerguru  proxyknife  pspp  psychosynth  pth  pythonwebkit  qexo  quickthreads  r  radius  rcs  readline  recutils  reftex  remotecontrol  rottlog  rpge  rush  sather  scm  screen  sed  serveez  sharutils  shepherd  shishi  shmm  shtool  sipwitch  slib  smalltalk  social  solfege  spacechart  spell  sqltutor  src-highlite  ssw  stalkerfs  stow  stump  superopt  swbis  sysutils  taler  talkfilters  tar  termcap  termutils  teseq  teximpatient  texinfo  texmacs  time  tramp  trans-coord  trueprint  unifont  units  unrtf  userv  uucp  vc-dwim  vcdimager  vera  vmgen  wb  wdiff  websocket4j  webstump  wget  which  womb  xaos  xboard  xlogmaster  xmlat  xnee  xorriso  zile 

Decommissioned GNU packages

GNU packages are occasionally decommissioned, generally because they've been superseded by, or integrated into, other packages. If you have time and interest in resurrecting any of these, please contact <maintainers@gnu.org>. Here is the list; we leave the old project pages up (when they existed):