480 lines
14 KiB
HTML
480 lines
14 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
|
|
|
<title>The Debian GNU/Linux FAQ - Keeping your Debian system up-to-date</title>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<p><a name="ch-uptodate"></a></p>
|
|
<hr>
|
|
|
|
<p>
|
|
[ <a href="ch-pkgtools.en.html">previous</a> ]
|
|
[ <a href="index.en.html#contents">Contents</a> ]
|
|
[ <a href="ch-basic_defs.en.html">1</a> ]
|
|
[ <a href="ch-getting.en.html">2</a> ]
|
|
[ <a href="ch-compat.en.html">3</a> ]
|
|
[ <a href="ch-software.en.html">4</a> ]
|
|
[ <a href="ch-ftparchives.en.html">5</a> ]
|
|
[ <a href="ch-pkg_basics.en.html">6</a> ]
|
|
[ <a href="ch-pkgtools.en.html">7</a> ]
|
|
[ 8 ]
|
|
[ <a href="ch-kernel.en.html">9</a> ]
|
|
[ <a href="ch-customizing.en.html">10</a> ]
|
|
[ <a href="ch-support.en.html">11</a> ]
|
|
[ <a href="ch-contributing.en.html">12</a> ]
|
|
[ <a href="ch-redistrib.en.html">13</a> ]
|
|
[ <a href="ch-nexttime.en.html">14</a> ]
|
|
[ <a href="ch-faqinfo.en.html">15</a> ]
|
|
[ <a href="ch-kernel.en.html">next</a> ]
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<h1>
|
|
The Debian GNU/Linux FAQ
|
|
<br>Chapter 8 - Keeping your Debian system up-to-date
|
|
</h1>
|
|
|
|
<hr>
|
|
|
|
<p>
|
|
A Debian goal is to provide a consistent upgrade path and a secure upgrade
|
|
process. We always do our best to make upgrading to new releases a smooth
|
|
procedure. In case there's some important note to add to the upgrade process,
|
|
the packages will alert the user, and often provide a solution to a possible
|
|
problem.
|
|
</p>
|
|
|
|
<p>
|
|
You should also read the Release Notes document that describes the details of
|
|
specific upgrades. It is shipped on all Debian CDs and available on the WWW at
|
|
<code><a
|
|
href="http://www.debian.org/releases/stable/releasenotes">http://www.debian.org/releases/stable/releasenotes</a></code>.
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<h2><a name="s-libc5to6upgrade"></a>8.1 How can I upgrade my Debian 1.3.1 (or earlier) distribution, based on libc5, to 2.0 (or later), based on libc6?</h2>
|
|
|
|
<p>
|
|
There are several ways to upgrade:
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
<p>
|
|
Using a simple shell script called <samp>autoup.sh</samp> which upgrades the
|
|
most important packages. After <samp>autoup.sh</samp> has done his job, you
|
|
may use dselect to install the remaining packages <em>en masse</em>. This is
|
|
probably the recommended method, but not the only one.
|
|
</p>
|
|
|
|
<p>
|
|
Currently, the latest release of <samp>autoup.sh</samp> may be found on the
|
|
following locations:
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
<p>
|
|
<code><a
|
|
href="http://www.debian.org/releases/2.0/autoup/">http://www.debian.org/releases/2.0/autoup/</a></code>
|
|
</p>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li>
|
|
<p>
|
|
<code><a
|
|
href="http://www.taz.net.au/autoup/">http://www.taz.net.au/autoup/</a></code>
|
|
</p>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li>
|
|
<p>
|
|
<code><a
|
|
href="http://debian.vicnet.net.au/autoup/">http://debian.vicnet.net.au/autoup/</a></code>
|
|
</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li>
|
|
<p>
|
|
Following closely the <code><a
|
|
href="http://debian.vicnet.net.au/autoup/HOWTO/libc5-libc6-Mini-HOWTO.html">Debian
|
|
libc5 to libc6 Mini-HOWTO</a></code> and upgrade the most important packages by
|
|
hand. <samp>autoup.sh</samp> is based on this Mini-HOWTO, so this method
|
|
should work more or less like using <samp>autoup.sh</samp>.
|
|
</p>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li>
|
|
<p>
|
|
Using a libc5-based <samp>apt</samp>. APT stands for Advanced Package Tool,
|
|
and it might replace dselect some day. Currently, it works just as a
|
|
command-line interface, or as a dselect access method. You will find a libc5
|
|
version in the <samp>dists/slink/main/upgrade-older-i386</samp> directory at
|
|
the Debian archives.
|
|
</p>
|
|
</li>
|
|
</ul>
|
|
<ul>
|
|
<li>
|
|
<p>
|
|
Using just dselect, without upgrading any package by hand first. It is highly
|
|
recommended that you do NOT use this method if you can avoid it, because
|
|
dselect alone currently does not install packages in the optimal order. APT
|
|
works much better and it is safer.
|
|
</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<h2><a name="s-howtocurrent"></a>8.2 How can I keep my Debian system current?</h2>
|
|
|
|
<p>
|
|
One could simply execute an anonymous ftp call to a Debian archive, then peruse
|
|
the directories until one finds the desired file, and then fetch it, and
|
|
finally install it using <samp>dpkg</samp>. Note that <samp>dpkg</samp> will
|
|
install upgrade files in place, even on a running system. Sometimes, a revised
|
|
package will require the installation of a newly revised version of another
|
|
package, in which case the installation will fail until/unless the other
|
|
package is installed.
|
|
</p>
|
|
|
|
<p>
|
|
Many people find this approach much too time-consuming, since Debian evolves so
|
|
quickly -- typically, a dozen or more new packages are uploaded every week.
|
|
This number is larger just before a new major release. To deal with this
|
|
avalanche, many people prefer to use a more automated method. Several
|
|
different packages are available for this purpose:
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<h3><a name="s-aptitude-upgrade"></a>8.2.1 aptitude</h3>
|
|
|
|
<p>
|
|
APT is an advanced interface to the Debian packaging system. It features
|
|
complete installation ordering, multiple source capability and several other
|
|
unique features, see the User's Guide in
|
|
<samp>/usr/share/doc/apt-doc/guide.html/index.html</samp> (you will have to
|
|
install the <samp>apt-doc</samp> package).
|
|
</p>
|
|
|
|
<p>
|
|
<code>aptitude</code> is the recommended package manager for Debian GNU/Linux
|
|
systems. It is a text-based interface to APT using the curses library, and can
|
|
be used to perform management tasks in a fast and easy way.
|
|
</p>
|
|
|
|
<p>
|
|
Before you can use <code>aptitude</code>, you'll have to edit the
|
|
<samp>/etc/apt/sources.list</samp> file to set it up. If you wish to upgrade
|
|
to the latest stable version of Debian, you'll probably want to use a source
|
|
like this one:
|
|
</p>
|
|
|
|
<pre>
|
|
http://http.us.debian.org/debian stable main contrib non-free
|
|
</pre>
|
|
|
|
<p>
|
|
You can replace http.us.debian.org with the name of a faster Debian mirror near
|
|
you. See the mirror list at <code><a
|
|
href="http://www.debian.org/misc/README.mirrors">http://www.debian.org/misc/README.mirrors</a></code>
|
|
for more information.
|
|
</p>
|
|
|
|
<p>
|
|
More details on this can be found in the <code>sources.list(8)</code> manual
|
|
page.
|
|
</p>
|
|
|
|
<p>
|
|
To update your system, run
|
|
</p>
|
|
|
|
<pre>
|
|
aptitude update
|
|
</pre>
|
|
|
|
<p>
|
|
followed by
|
|
</p>
|
|
|
|
<pre>
|
|
aptitude dist-upgrade
|
|
</pre>
|
|
|
|
<p>
|
|
Answer any questions that might come up, and your system will be upgraded. See
|
|
also <a href="ch-pkgtools.en.html#s-aptitude">aptitude, Section 7.1.3</a>.
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<h3><a name="s-apt"></a>8.2.2 apt-get, dselect and apt-cdrom</h3>
|
|
|
|
<p>
|
|
<code>apt-get</code> is an APT-based command-line tool for handling packages,
|
|
and the APT dselect method is an interface to APT through <code>dselect</code>.
|
|
Both of these provide a simple, safe way to install and upgrade packages.
|
|
</p>
|
|
|
|
<p>
|
|
To use <code>apt-get</code>, install the <code>apt</code> package, and edit the
|
|
<samp>/etc/apt/sources.list</samp> file to set it up, just as for <a
|
|
href="#s-aptitude-upgrade">aptitude, Section 8.2.1</a>.
|
|
</p>
|
|
|
|
<p>
|
|
Then run
|
|
</p>
|
|
|
|
<pre>
|
|
apt-get update
|
|
</pre>
|
|
|
|
<p>
|
|
followed by
|
|
</p>
|
|
|
|
<pre>
|
|
apt-get dist-upgrade
|
|
</pre>
|
|
|
|
<p>
|
|
Answer any questions that might come up, and your system will be upgraded. See
|
|
also the <code>apt-get(8)</code> manual page, as well as <a
|
|
href="ch-pkgtools.en.html#s-apt-get">APT, Section 7.1.2</a>.
|
|
</p>
|
|
|
|
<p>
|
|
To use APT with <code>dselect</code>, choose the APT access method in dselect's
|
|
method selection screen (option 0) and then specify the sources that should be
|
|
used. The configuration file is <code>/etc/apt/sources.list</code>. See also
|
|
<a href="ch-pkgtools.en.html#s-dselect">dselect, Section 7.1.4</a>.
|
|
</p>
|
|
|
|
<p>
|
|
If you want to use CDs to install packages, you can use <code>apt-cdrom</code>.
|
|
For details, please see the Release Notes, section "Setting up for an
|
|
upgrade from a local mirror".
|
|
</p>
|
|
|
|
<p>
|
|
Please note that when you get and install the packages, you'll still have them
|
|
kept in your /var directory hierarchy. To keep your partition from
|
|
overflowing, remember to delete extra files using <samp>apt-get clean</samp>
|
|
and <samp>apt-get autoclean</samp>, or to move them someplace else (hint: use
|
|
<code>apt-move</code>).
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<h3><a name="s-dpkg-ftp"></a>8.2.3 dpkg-ftp</h3>
|
|
|
|
<p>
|
|
This is an older access method for <code>dselect</code>. It can be invoked
|
|
from within <code>dselect</code>, thereby allowing a user the ability to
|
|
download files and install them directly in one step. To do this, select the
|
|
<samp>ftp</samp> access method in <code>dselect</code> (option 0) and specify
|
|
the remote host name and directory. <code>dpkg-ftp</code> will then
|
|
automatically download the files that are selected (either in this session of
|
|
<code>dselect</code> or earlier ones).
|
|
</p>
|
|
|
|
<p>
|
|
Note that, unlike the <code>mirror</code> program, <code>dpkg-ftp</code> does
|
|
not grab everything at a mirror site. Rather, it downloads only those files
|
|
which you have selected (when first starting up <code>dpkg-ftp</code>), and
|
|
which need to be updated.
|
|
</p>
|
|
|
|
<p>
|
|
<code>dpkg-ftp</code> is somewhat obsolete. You should use the APT access
|
|
method with ftp:// URLs in <code>sources.list</code> instead.
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<h3><a name="s-mirror"></a>8.2.4 mirror</h3>
|
|
|
|
<p>
|
|
This Perl script, and its (optional) manager program called
|
|
<code>mirror-master</code>, can be used to fetch user-specified parts of a
|
|
directory tree from a specified host <em>via</em> anonymous FTP.
|
|
</p>
|
|
|
|
<p>
|
|
<code>mirror</code> is particularly useful for downloading large volumes of
|
|
software. After the first time files have been downloaded from a site, a file
|
|
called <samp>.mirrorinfo</samp> is stored on the local host. Changes to the
|
|
remote file system are tracked automatically by <code>mirror</code>, which
|
|
compares this file to a similar file on the remote system and downloads only
|
|
changed files.
|
|
</p>
|
|
|
|
<p>
|
|
The <code>mirror</code> program is generally useful for updating local copies
|
|
of remote directory trees. The files fetched need not be Debian files. (Since
|
|
<code>mirror</code> is a Perl script, it can also run on non-Unix systems.)
|
|
Though the <code>mirror</code> program provides mechanisms for excluding files
|
|
names of which match user-specified strings, this program is most useful when
|
|
the objective is to download whole directory trees, rather than selected
|
|
packages.
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<h3><a name="s-dpkg-mountable"></a>8.2.5 dpkg-mountable</h3>
|
|
|
|
<p>
|
|
dpkg-mountable adds an access method called `mountable' to dselect's list,
|
|
which allows you to install from any file system specified in /etc/fstab. For
|
|
example, the archive could be a normal hard disk partition or an NFS server,
|
|
which it will automatically mount and umount for you if necessary.
|
|
</p>
|
|
|
|
<p>
|
|
It also has some extra features not found in the standard dselect methods, such
|
|
as provision for a local file tree (either parallel to the main distribution or
|
|
totally separate), and only getting packages which are required, rather than
|
|
the time-consuming recursive directory scan, as well as logging of all dpkg
|
|
actions in the install method.
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<h2><a name="s-upgradesingle"></a>8.3 Must I go into single user mode in order to upgrade a package?</h2>
|
|
|
|
<p>
|
|
No. Packages can be upgraded in place, even in running systems. Debian has a
|
|
<samp>start-stop-daemon</samp> program that is invoked to stop, then restart
|
|
running process if necessary during a package upgrade.
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<h2><a name="s-savedebs"></a>8.4 Do I have to keep all those .deb archive files on my disk?</h2>
|
|
|
|
<p>
|
|
No. If you have downloaded the files to your disk (which is not absolutely
|
|
necessary, see above for the description of dpkg-ftp), then after you have
|
|
installed the packages, you can remove them from your system.
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<h2><a name="s-keepingalog"></a>8.5 How can I keep a log of the packages I added to the system? I'd like to know when which package upgrades and removals have occured!</h2>
|
|
|
|
<p>
|
|
Passing the <samp>--log</samp>-option to <code>dpkg</code> makes
|
|
<code>dpkg</code> log status change updates and actions. It logs both the
|
|
<code>dpkg</code>-invokation (e.g.
|
|
</p>
|
|
|
|
<pre>
|
|
2005-12-30 18:10:33 install hello 1.3.18 2.1.1-4
|
|
</pre>
|
|
|
|
<p>
|
|
) and the results (e.g.
|
|
</p>
|
|
|
|
<pre>
|
|
2005-12-30 18:10:35 status installed hello 2.1.1-4
|
|
</pre>
|
|
|
|
<p>
|
|
) If you'd like to log all your <code>dpkg</code> invokations (even those done
|
|
using frontends like <code>aptitude</code>), you could add
|
|
</p>
|
|
|
|
<pre>
|
|
log /var/log/dpkg.log
|
|
</pre>
|
|
|
|
<p>
|
|
to your <code>/etc/dpkg/dpkg.cfg</code>. Be sure the created logfile gets
|
|
rotated periodically. If you're using <code>logrotate</code>, this can be
|
|
achieved by creating a file <code>/etc/logrotate.d/dpkg</code> with contents
|
|
</p>
|
|
|
|
<pre>
|
|
/var/log/dpkg {
|
|
missingok
|
|
notifempty
|
|
}
|
|
</pre>
|
|
|
|
<p>
|
|
More details on <code>dpkg</code> logging can be found in the
|
|
<code>dpkg(1)</code> manual page.
|
|
</p>
|
|
|
|
<p>
|
|
<code>aptitude</code> logs the package installations, removals, and upgrades
|
|
that it intends to perform to <code>/var/log/aptitude</code>. Note that the
|
|
<em>results</em> of those actions are not recorded in this file!
|
|
</p>
|
|
|
|
<p>
|
|
Another way to record your actions is to run your package management session
|
|
within the <code>script(1)</code> program.
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<p>
|
|
[ <a href="ch-pkgtools.en.html">previous</a> ]
|
|
[ <a href="index.en.html#contents">Contents</a> ]
|
|
[ <a href="ch-basic_defs.en.html">1</a> ]
|
|
[ <a href="ch-getting.en.html">2</a> ]
|
|
[ <a href="ch-compat.en.html">3</a> ]
|
|
[ <a href="ch-software.en.html">4</a> ]
|
|
[ <a href="ch-ftparchives.en.html">5</a> ]
|
|
[ <a href="ch-pkg_basics.en.html">6</a> ]
|
|
[ <a href="ch-pkgtools.en.html">7</a> ]
|
|
[ 8 ]
|
|
[ <a href="ch-kernel.en.html">9</a> ]
|
|
[ <a href="ch-customizing.en.html">10</a> ]
|
|
[ <a href="ch-support.en.html">11</a> ]
|
|
[ <a href="ch-contributing.en.html">12</a> ]
|
|
[ <a href="ch-redistrib.en.html">13</a> ]
|
|
[ <a href="ch-nexttime.en.html">14</a> ]
|
|
[ <a href="ch-faqinfo.en.html">15</a> ]
|
|
[ <a href="ch-kernel.en.html">next</a> ]
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<p>
|
|
The Debian GNU/Linux FAQ
|
|
</p>
|
|
|
|
<address>
|
|
version 3.1.5, 17 January 2007<br>
|
|
<br>
|
|
Authors are listed at <a href="ch-faqinfo.en.html#s-authors">Debian FAQ Authors</a><br>
|
|
<br>
|
|
</address>
|
|
<hr>
|
|
|
|
</body>
|
|
|
|
</html>
|
|
|