On Wed, Aug 11, 2010 at 12:37:13AM +0900, Osamu Aoki wrote: > So far, ease of "hold" feature of aptitude is the missing feature for > apt-get command line. Writing /etc/apt/preferences by hand to hold > a package is quite cumbersome.... If "apt-get hold ..." creates a file > in /etc/apt/preferences.d, maybe difference is smaller but this is not > so important. 'aptitude hold' is mentioned several times in the release notes, so we won't entirely eliminate mention of aptitude here. However, for the most part apt-get is a much safer recommendation than aptitude for dist-upgrades, so I've applied the attached patch to the release-notes svn. Corrections are welcome. (Note that there are particular steps involved in an upgrade from lenny to squeeze, such as kernel+udev+bootloader manual handling, which are not yet documented here and will need to be before release.) > If you have time, please check my updated Debian Reference. I borrowed > much of your idea. I just do not want to have gross misunderstanding. > http://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_literal_apt_get_literal_literal_apt_cache_literal_vs_literal_aptitude_literal > I did notice constant breakage of aptitude resolver. So I put them as > following note for people to understand situation: > Note > Although the aptitude command comes with rich features such as its > enhanced package resolver, this complexity had caused (or may still > causes) some regressions such as Bug #411123, Bug #514930, and Bug > #570377. In case of doubts, please use the apt-get and apt-cache > commands over the aptitude command. This looks good to me - thanks! -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer http://www.debian.org/ slangasek@ubuntu.com vorlon@debian.org
=== modified file 'en/about.dbk'
--- en/about.dbk 2009-02-08 17:36:07 +0000
+++ en/about.dbk 2010-08-18 06:40:11 +0000
@@ -73,18 +73,18 @@
<para>
<programlisting condition="fixme">
-TODO: check status of #494028 about apt-get vs. aptitude
TODO: any more things to add here?
</programlisting>
The status of your package database before and after the upgrade:
<command>dpkg</command>'s status database available at
<filename>/var/lib/dpkg/status</filename> and
-<command>aptitude</command>'s package state information, available at
-<filename>/var/lib/aptitude/pkgstates</filename>. You should have
-made a backup before the upgrade as described at <xref
-linkend="data-backup"/>, but you can also find backups of this
-information in <filename>/var/backups</filename>.
+<systemitem role="package">apt</systemitem>'s package state information,
+available at <filename>/var/lib/apt/extended_states</filename>. You
+should have made a backup before the upgrade as described at
+<xref linkend="data-backup"/>, but you can also find backups of
+<filename>/var/lib/dpkg/status</filename> in
+<filename>/var/backups</filename>.
</para>
</listitem>
<listitem>
=== modified file 'en/upgrading.dbk'
--- en/upgrading.dbk 2009-09-18 19:25:30 +0000
+++ en/upgrading.dbk 2010-08-18 06:40:11 +0000
@@ -26,8 +26,10 @@
<para>
The main things you'll want to back up are the contents of
<filename>/etc</filename>, <filename>/var/lib/dpkg</filename>,
-<filename>/var/lib/aptitude/pkgstates</filename> and the output of
-<literal>dpkg --get-selections "*"</literal> (the quotes are important).
+<filename>/var/lib/apt/extended_states</filename> and the output of
+<literal>dpkg --get-selections "*"</literal> (the quotes are important). If
+you use <command>aptitude</command> to manage packages on your system, you
+will also want to back up <filename>/var/lib/aptitude/pkgstates</filename>.
</para>
<para>
The upgrade process itself does not modify anything in the
@@ -325,13 +327,13 @@
upgraded.
</para>
<para>
-The <quote>hold</quote> package state for <command>aptitude</command> can be changed using:
+The <quote>hold</quote> package state for <command>apt-get</command> can be changed using:
</para>
<screen>
-# aptitude hold <replaceable>package_name</replaceable>
+# echo <replaceable>package_name</replaceable> hold | dpkg --set-selections
</screen>
<para>
-Replace <literal>hold</literal> with <literal>unhold</literal> to unset the
+Replace <literal>hold</literal> with <literal>install</literal> to unset the
<quote>hold</quote> state.
</para>
<para>
@@ -403,10 +405,12 @@
<section id="handle-conflict">
<title>Manually unmarking packages</title>
<para>
-To prevent <command>aptitude</command> from removing some packages that were
+To prevent <command>apt-get</command> from removing some packages that were
pulled in through dependencies, you need to manually unmark them as
<emphasis>auto</emphasis> packages. This includes OpenOffice and Vim for
-desktop installs:
+desktop installs. <command>apt-get</command> does not provide an interface
+for marking or unmarking <emphasis>auto</emphasis> packages, so you will need
+to use <command>aptitude</command> for this:
</para>
<screen>
# aptitude unmarkauto openoffice.org vim
@@ -585,9 +589,11 @@
<title>Upgrading packages</title>
<para>
The recommended way to upgrade from previous &debian; releases is to
-use the package management tool <command>aptitude</command>. This program
-makes safer decisions about package installations than running
-<command>apt-get</command> directly.
+use the package management tool <command>apt-get</command>. In previous
+releases, <command>aptitude</command> was recommended for this purpose, but
+recent versions of <command>apt-get</command> provide equivalent
+functionality and also have shown to more consistently give the desired
+upgrade results.
</para>
<para>
Don't forget to mount all needed partitions (notably the root and
@@ -660,13 +666,8 @@
This is done by executing:
</para>
<screen>
-# aptitude update
+# apt-get update
</screen>
-<para>
-Running this the first time new sources are updated will print out some
-warnings related to the availability of the sources. These warnings are
-harmless and will not appear if you rerun the command again.
-</para>
</section>
<section id="sufficient-space">
@@ -688,12 +689,12 @@
difficult to recover from.
</para>
<para>
-Both <command>aptitude</command> and <systemitem role="package">apt</systemitem> will show you
-detailed information of the disk space needed for the installation. Before
-executing the upgrade, you can see this estimate by running:
+<command>aptitude</command> can show you detailed information of the disk
+space needed for the installation. Before executing the upgrade, you can see
+this estimate by running:
</para>
<screen>
-# aptitude -y -s -f --with-recommends dist-upgrade
+# aptitude -y -s -f dist-upgrade
[ ... ]
XXX upgraded, XXX newly installed, XXX to remove and XXX not upgraded.
Need to get xx.xMB/yyyMB of archives. After unpacking AAAMB will be used.
@@ -718,8 +719,8 @@
<para>
Remove packages that have been previously downloaded for installation (at
<filename>/var/cache/apt/archives</filename>). Cleaning up the package cache by
-running <command>apt-get clean</command> or <command>aptitude clean</command>
-will remove all previously downloaded package files.
+running <command>apt-get clean</command> will remove all previously downloaded
+package files.
</para>
</listitem>
<listitem>
@@ -894,7 +895,7 @@
<title>Minimal system upgrade</title>
<para>
Because of certain necessary package conflicts between &oldreleasename; and &releasename;, running
-<literal>aptitude dist-upgrade</literal> directly will often remove large
+<literal>apt-get dist-upgrade</literal> directly will often remove large
numbers of packages that you will want to keep. We therefore recommend a
two-part upgrade process, first a minimal upgrade to overcome these conflicts,
then a full <literal>dist-upgrade</literal>.
@@ -903,7 +904,7 @@
First, run:
</para>
<screen>
-# aptitude safe-upgrade
+# apt-get upgrade
</screen>
<para>
This has the effect of upgrading those packages which can be upgraded without
@@ -981,7 +982,7 @@
You are now ready to continue with the main part of the upgrade. Execute:
</para>
<screen>
-# aptitude dist-upgrade
+# apt-get dist-upgrade
</screen>
<para>
This will perform a complete upgrade of the system, i.e. install the newest
@@ -1001,7 +1002,7 @@
changing the install status of another package will be left at their current
version (displayed as <quote>held back</quote>). This can be resolved by either using
<command>aptitude</command> to choose these packages for installation or by
-trying <literal>aptitude -f install
+trying <literal>apt-get -f install
<replaceable>package</replaceable></literal>.
</para>
</section>
@@ -1015,7 +1016,7 @@
checking mechanism:
</para>
<screen>
-# aptitude update
+# apt-get update
</screen>
<para>
The upgrade will have already retrieved and enabled the signing keys for
@@ -1052,15 +1053,15 @@
<para>
Sometimes it's necessary to enable the <literal>APT::Force-LoopBreak</literal>
option in APT to be able to temporarily remove an essential package due to a
-Conflicts/Pre-Depends loop. <command>aptitude</command> will alert you of this
+Conflicts/Pre-Depends loop. <command>apt-get</command> will alert you of this
and abort the upgrade. You can work around this by specifying the option <literal>-o
-APT::Force-LoopBreak=1</literal> on the <command>aptitude</command> command
+APT::Force-LoopBreak=1</literal> on the <command>apt-get</command> command
line.
</para>
<para>
It is possible that a system's dependency structure can be so corrupt as to
require manual intervention. Usually this means using
-<command>aptitude</command> or
+<command>apt-get</command> or
</para>
<screen>
# dpkg --remove <replaceable>package_name</replaceable>
@@ -1069,7 +1070,7 @@
to eliminate some of the offending packages, or
</para>
<screen>
-# aptitude -f install
+# apt-get -f install
# dpkg --configure --pending
</screen>
<para>
@@ -1101,7 +1102,7 @@
</screen>
<para>
After fixing things up, you should be able to resume the upgrade by repeating
-the previously described <command>aptitude</command> commands.
+the previously described <command>apt-get</command> commands.
</para>
<para>
During the upgrade, you will be asked questions regarding the configuration or
@@ -1168,7 +1169,7 @@
# apt-cache show linux-image-2.6-686
</screen>
<para>
-You should then use <literal>aptitude install</literal> to install it. Once
+You should then use <literal>apt-get install</literal> to install it. Once
this new kernel is installed you should reboot at the next available
opportunity to get the benefits provided by the new kernel version.
</para>
@@ -1279,7 +1280,7 @@
<section id="nownownow">
<title>Things to do before rebooting</title>
<para>
-When <literal>aptitude dist-upgrade</literal> has finished, the <quote>formal</quote> upgrade
+When <literal>apt-get dist-upgrade</literal> has finished, the <quote>formal</quote> upgrade
is complete, but there are some other things that should be taken care of
<emphasis>before</emphasis> the next reboot.
</para>
@@ -1803,15 +1804,19 @@
provides a similar section but the listing it presents might differ.
</para>
<para>
-Also, if
-you have used <command>aptitude</command> to manually install packages in &oldreleasename;
+Also, if you have used <command>aptitude</command> or
+<command>apt-get</command> to manually install packages in &oldreleasename;
it will have kept track of those packages you manually installed and will be
able to mark as obsolete those packages pulled in by dependencies alone which
-are no longer needed if a package has been removed. Also,
-<command>aptitude</command>, unlike <command>deborphan</command> will not mark
-as obsolete packages that you manually installed, as opposed to those that were
-automatically installed through dependencies.
-</para>
+are no longer needed if a package has been removed.
+<command>aptitude</command> and <systemitem role="package">apt</systemitem>,
+unlike <command>deborphan</command>, will not mark for removal packages that
+you manually installed, as opposed to those that were automatically
+installed through dependencies. To remove automatically installed packages
+that are no longer used, run:
+<screen>
+# apt-get autoremove
+</screen>
<para>
There are additional tools you can use to find obsolete packages such as
<command>deborphan</command>, <command>debfoster</command> or
=== modified file 'en/whats-new.dbk'
--- en/whats-new.dbk 2009-08-23 20:03:32 +0000
+++ en/whats-new.dbk 2010-08-18 06:40:11 +0000
@@ -327,24 +327,13 @@
<section id="pkgmgmt">
<title>Package management</title>
-<programlisting condition="fixme">
-TODO: is aptitude always prefered over apt-get?
-</programlisting>
-
-<para>
-The preferred program for package management from the command line is
-<command>aptitude</command>, which can perform the same package
-management functions as <command>apt-get</command> and has proven to be
-better at dependency resolution. If you are still using
-<command>dselect</command>, you should switch to <systemitem
-role="package">aptitude</systemitem> as the official front-end for package
-management.
-</para>
-<para>
-For &releasename; an advanced conflict resolving mechanism has been
-implemented in <command>aptitude</command> that will try to find the
-best solution if conflicts are detected because of changes in
-dependencies between packages.
+<para>
+The preferred program for interactive package management from a terminal is
+<command>aptitude</command>. For a non-interactive command line interface
+for package management, it is recommended to use <command>apt-get</command>.
+If you are still using <command>dselect</command>, you should switch to
+<systemitem role="package">aptitude</systemitem> as the official front-end
+for package management.
</para>
<programlisting condition="fixme">
@@ -381,7 +370,7 @@
<programlisting>deb &url-debian-mirror-eg;/debian &releasename;-proposed-updates main contrib
deb-src &url-debian-mirror-eg;/debian &releasename;-proposed-updates main contrib</programlisting>
<para>
- The next time you run <command>aptitude update</command>, the
+ The next time you run <command>apt-get update</command>, the
system will become aware of the packages in the
<literal>proposed-updates</literal> section and will consider them
when looking for packages to upgrade.
@@ -418,7 +407,7 @@
using:
</para>
<screen>
-# aptitude install selinux-basics
+# apt-get install selinux-basics
</screen>
<para>
Note that SELinux support is <emphasis>not</emphasis> enabled by default.
Attachment:
signature.asc
Description: Digital signature