update
update is used to resynchronize the package index files from their
sources. The indexes of available packages are fetched from the
location(s) specified in /etc/apt/sources.list. For example, when
using a Debian archive, this command retrieves and scans the
Packages.gz files, so that information about new and updated
packages is available. An update should always be performed before
an upgrade or dist-upgrade. Please be aware that the overall
progress meter will be incorrect as the size of the package files
cannot be known in advance.
upgrade
upgrade is used to install the newest versions of all packages
currently installed on the system from the sources enumerated in
/etc/apt/sources.list. Packages currently installed with new
versions available are retrieved and upgraded; under no
circumstances are currently installed packages removed, or packages
not already installed retrieved and installed. New versions of
currently installed packages that cannot be upgraded without
changing the install status of another package will be left at
their current version. An update must be performed first so that
apt-get knows that new versions of packages are available.
dist-upgrade
dist-upgrade in addition to performing the function of upgrade,
also intelligently handles changing dependencies with new versions
of packages; apt-get has a "smart" conflict resolution system, and
it will attempt to upgrade the most important packages at the
expense of less important ones if necessary. The dist-upgrade
command may therefore remove some packages. The
/etc/apt/sources.list file contains a list of locations from which
to retrieve desired package files. See also apt_preferences(5) for
a mechanism for overriding the general settings for individual
packages.
上面的內容是從apt-get的man文檔中摘錄出來的。上面表達的意思就是,update的作用是從/etc/apt/source.list文件中定義的源中去同步包的索引文件,即運行這個命令其實並沒有更新軟件,而是相當於windows下面的檢查更新,獲取的是軟件的狀態。
而upgrade則是更據update命令同步好了的包的索引文件,去真正地更新軟件。
而dist-upgrade則是更聰明的upgrade,man文檔中說它以更聰明的方式來解決更新過程中出現的軟件依賴問題,它也是從/etc/apt/source.list文件中獲得地址,然后從這些地址中檢索需要更新的包。
最后,需要注意的一點是,每回更新之前,我們需要先運行update,然后才能運行upgrade和dist-upgrade,因為相當於update命令獲取了包的一些信息,比如大小和版本號,然后再來運行upgrade去下載包,如果沒有獲取包的信息,那么upgrade就是無效的啦!