TeX started as a single, self-contained program (called TeX, naturally) written by Knuth. That program still exists, but a lot of infrastructure has grown up around it: first, its "environment" has been expanded a lot; and second, the program itself has been modified to various ends.
The expanded environment largely centers around LaTeX, which is a "format" allowing a particular style of TeX programming designed to make it easier to consider the appearance of a document separately from its contents. One of its features is that it supports the inclusion of additional packages extending its capabilities, and these number in the thousands on ctan.org now. These packages make up the majority of a TeX "distribution"; they can be installed at your discretion and sometimes on-demand, depending on the distro (MikTeX does that, for example). Well, them and the huge pile of fonts that TeX needs to make your document have anything in it at all.
The environment also includes a lot of utilities, such as dvipdf(m)(x) (this one has had several incarnations), which converts DVI files, the default output format of the original TeX, into PDF files. These are also part of a TeX distribution.
TeX has also been expanded by being redesigned, producing new "engines": eTeX adds some programming capabilities; XeTeX (as I understand it) is designed to work much better with non-English languages and modern fonts; pdfTeX outputs PDF files directly and supports a lot of stuff that is only possible in them (everyone gives the microtype
package as an example, since it was the original motivation; it makes nearly invisible but very attractive changes to the layout of the lines of text); LuaTeX is the next generation of pdfTeX and goes much farther beyond eTeX in providing the programming capabilities of a modern programming language.
So in short: a TeX engine is a program and turns your file into a nice document, and a TeX distribution is the setup that lets it all work.
In the distribution documentation is separated from run time files, but it isn't essential that you do that, so if in doubt (or in a hurry) just leave all the files together in a directory in your input path.
Whether you need to run texhash afterwards depends where you put them. Some directories are marked as being hashed so if the new files are not hashed they will not be found, other directories are marked as not hashed and for them kpse searches the file system so just putting the files there is enough. (For example you never need texhash for the current directory)
kpsepath tex
will tell you your input path
mine is
$ kpsepath tex
.:/home/davidc/.texlive2012/texmf-config/tex/kpsewhich//:
/home/davidc/.texlive2012/texmf-var/tex/kpsewhich//:
/home/davidc/texmf/tex/kpsewhich//:
!!/usr/local/texlive/2012/texmf-config/tex/kpsewhich//:
!!/usr/local/texlive/2012/texmf-var/tex/kpsewhich//:
!/usr/local/texlive/2012/texmf/tex/kpsewhich//:
!!/usr/local/texlive/2012/../texmf-local/tex/kpsewhich//:
!!/usr/local/texlive/2012/texmf-dist/tex/kpsewhich//:
/home/davidc/.texlive2012/texmf-config/tex/generic//:
/home/davidc/.texlive2012/texmf-var/tex/generic//:
/home/davidc/texmf/tex/generic//:
!!/usr/local/texlive/2012/texmf-config/tex/generic//:
!!/usr/local/texlive/2012/texmf-var/tex/generic//:
!!/usr/local/texlive/2012/texmf/tex/generic//:
!!/usr/local/texlive/2012/../texmf-local/tex/generic//:
!!/usr/local/texlive/2012/texmf-dist/tex/generic//:
/home/davidc/.texlive2012/texmf-config/tex///:
/home/davidc/.texlive2012/texmf-var/tex///:
/home/davidc/texmf/tex///:
!!/usr/local/texlive/2012/texmf-config/tex///:
!!/usr/local/texlive/2012/texmf-var/tex///:
!!/usr/local/texlive/2012/texmf/tex///:
!!/usr/local/texlive/2012/../texmf-local/tex///:
!!/usr/local/texlive/2012/texmf-dist/tex///
which is an unmodified texlive 2012 setup.
Path segments prefixed by !!
require texhash
path segments ending in //
include all subdirectories to any depth.
Best Answer
TeX Live from the Terminal/Command Prompt (Windows/Mac/Linux)
Understanding the TeX Live update scheme
If you have a TeXLive distribution (including MacTeX) there are a few things to understand about updating your system.
All TeX distributions consist of both binaries (including scripts) and packages (including classes). It is important to understand that for TeX Live these two parts of the distribution are effectively on separate update schedules, and this can lead to some confusion during the period in which the major updates of binaries is taking place.
The TeX Live binary part of the distribution undergoes a major update only once a year, while the packages can be updated constantly. This system, however comes at a cost: once a new binary version of TeX Live is available, package updates for the previous years are no longer available.
This means that if you have e.g. TeXLive 2011, you can update its packages roughly until TeXLive 2012 is created. After that point, your 2011 system will not be able to update any packages ever again using the normal package manager. (You can update individual packages manually via CTAN, of course.)
Major Updates
The major binary updates of TeX Live (which come out yearly) must be installed as if you were installing a fresh distribution. Since each version is installed in a folder named by its year, it's possible to have multiple distributions on the same system.
Package Updates
Once you have a version of TeX Live installed, you can update the packages as often as you like using the package manager
tlmgr
. The simplest command is:which will update all packages that have changed since the last update.
If you want to see a list of the updatable packages without updating them, you can use
Sometimes it's necessary to update the package manager itself, in which case you need to use
It is also possible to combine options together
with the final option (
--reinstall-forcibly-removed
) used as occasionally a package will become corrupted in one update and will therefore need to be reinstalled.The Mac has a very nice GUI to the package manager called TeX Live Utility. See the MacOS answer for more details on that.
When is TeX Live "frozen"?
Once a year, the TeX Live packagers must "freeze" the system so that the latest version of the distribution (with new binaries) can be produced and tested. This means that there is a period during which
tlmgr
will no longer be able to update the current year's distribution even though the new year's distribution is not publicly available. This freezing is necessary so that the new distribution can be guaranteed to work. Once the current year is frozen, it will never be able to be further updated. To keep up-to-date, you will need to install the next year's distribution when it becomes available. For additional information, see Why does TeX Live "require" yearly updates?Administrator/root privileges
If you install TeX Live as Administrator/root, then you will also need to update with these privileges. On Windows, an Administrator-privilege Command Prompt is run by finding the Command Prompt icon in the Start Menu, right clicking to obtain the options and choosing 'Run as Administrator ...'. For Mac users, using
sudo
will be sufficient astlmgr
will be available on the path. This may not be the case in Linux distributions: see below.Some notes on Linux "TeX Live" based packages
If you installed your TeX Live system using a Linux package manager (for example,
apt-get
), then there is no guarantee that it will be updated on the same schedule as the regular TeX Live. In most cases the updates lag by some time, often years, depending on the particular version of Linux you are running. For this reason, most experienced TeX users who run Linux install the vanilla TeX Live distribution directly, bypassing their OS package manager completely. See How to install "vanilla" TeXLive on Debian or Ubuntu? for more information on this.If you followed the directions in How to install "vanilla" TeXLive on Debian or Ubuntu? and installed TeX Live as
root
then you will also need to runtlmgr
as root. You can do so (for example) by runningsudo -s
from the command line, which will log you in asroot
. Alternatively, you can runtlmgr
with the full path, for example on a 64-bit installationAnother option is to change the ownership of the TeX Live directory, by using (something like)
after which you can run
tlmgr
as a normal user (withoutsudo
).When moving to a new version of TeXLive (e.g from 2011 to 2012) you may choose to remove the current installation you can use
(with
sudo
if you haven't changed the permissions) and see the steps described in How to remove everything related to TeX Live for fresh install on Ubuntu? for example.