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:

  • Download a wholly free GNU/Linux distribution .
  • Get a copy from a friend.
  • Buy a computer with a wholly free GNU/Linux system preinstalled from one of the companies that offers this.
  • Download individual packages from the web or via FTP : we provide source code for all GNU software as free software , and free of charge. (Please also make a donation to the FSF if you can, to help support the development of more free software.)
  • Use the GNU Guix functional package manager to install and manage GNU package releases.
  • Use the GNU GSRC collection to easily install the latest GNU package releases on their own, without conflicting with any system versions.
  • Use the GNU PPA (Personal Package Archive) on Trisquel, gNewSense, or related distros to get the latest releases suitably packaged.
  • Get the development sources for a package and build them. Many GNU packages keep their development sources at the GNU hosting site savannah.gnu.org . Some packages use other source repositories, or have none at all. Each package's web pages should give the specifics.

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   anastasis   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   c-intro-and-ref   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   gmediaserver   gmp   gnash   gnat   gnats   gnatsweb   gnowsys   gnu-c-manual   gnu-crypto   gnu-pw-mgr   gnuae   gnuastro   gnubatch   gnubg   gnubiff   gnubik   gnuboot   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   gprofng-gui   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   libidn2   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):