Differences between revisions 26 and 27
Revision 26 as of 2010-05-26 00:06:58
Size: 9291
Editor: ?DiederikDeHaas
Comment: replaced dist-upgrade with full-upgrade, since that's aptitude equivalent to apt-get's dist-upgrade
Revision 27 as of 2010-08-09 13:01:16
Size: 9143
Editor: ?ArnoldBlank
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
The one system that binds all software on a Debian system together is its package management. A Debian system uses "packages" to keep track of the files installed on your system and generally makes a piece of software feel at home on your system. These packages can be installed or removed (unless, of course some other package requires it) at will. In fact, the majority of the Debian installation process is installing the most basic packages that allow Debian to function. The package management system binds all the software on a Debian system together. Debian uses named "packages" for each piece of software, bundles of files which provide the files to be installed on the system, the dependencies between packages and the configuration of the software. These packages can be installed or removed (unless, of course some other package requires it) at will. In fact, the majority of the Debian installation process is installing the most basic packages that allow Debian to function.
Line 8: Line 8:
Debian package management consists of several layers. The lowest layers, most of which you won't want to touch, are made up of {{{dpkg}}} and associated programs. On top of those layers are the older {{{apt}}} and {{{apt-get}}} tools as well as the newer {{{aptitude}}} tool. The [[PackageManagement/PkgTools|Package Management Tools]] page has brief descriptions of these and other tools which work with DebianPackage files. Debian package management consists of several layers. The lowest layers, most of which you won't want to touch, are made up of [[dpkg]] and associated programs. On top of those layers are the [[Apt]] and [[apt-get]] tools as well as the newer [[aptitude]] tool. The [[PackageManagement/PkgTools|Package Management Tools]] page has brief descriptions of these and other tools which work with DebianPackage files.
Line 12: Line 12:
== Full-Screen Front-Ends ==
These are both console (ncurses) and GUI based. There are a number of alternatives, similar in some regards, different in others. For users of RpmBasedLinuxDistros, analogs include !RedCarpet and !Up2Date.
== Full-Screen Frontends ==
These are both console (ncurses) and GUI based. There are a number of alternatives, similar in some regards, different in others. For users of RPM-based Linux distros, analogs include !RedCarpet and !Up2Date.
Line 15: Line 15:
 * {{{aptitude}}} (see [[Aptitude|aptitude]]) calls a friendly frontend to apt. Note that the version in DebianPotato was very primitive; it's much improved in later releases and at the time of this writing replaces {{{apt-get}}} as the recommended tool for the command line.  * [[Aptitude|aptitude]] may be invoked in full screen console mode (ncurses) or CLI mode, and is a friendly frontend to apt. It replaces [[apt-get]] as the recommended tool for the command line.
Line 17: Line 17:
 * {{{dselect}}} (see [[dselect|DSelect]]) calls a not so nice frontend to apt (if in panic, pressing ESC several times will usually bring you back to a safe place).  It is no longer recommended.  * [[dselect|DSelect]] is an older frontend to apt. It is no longer recommended.
Line 25: Line 25:
== Command-line Front-Ends ==
Generally, tools which integrate a number of operations (package list management, package retrieval, package installation, package configuration) in a single command. The primary command is {{{aptitude}}}.  {{{apt-get}}} fulfills a similar purpose and although it is no longer the recommended primary tool some still use it. These tools have a number of useful invocations.
== Command-line Frontends ==
Generally, the command line tools integrate a number of operations (package list management, package retrieval, package installation, package configuration) in a single command plus arguments. The primary command line tool is [[aptitude]]. [[apt-get]] fulfills a similar purpose and although it is no longer the recommended primary tool some still use it. Here are some typical invocations:
Line 118: Line 118:
To upgrade from one major debian release to another (e.g. from lenny to squeeze) it is strongly recommended that the instructions given in the new version's [[http://www.debian.org/releases/stable/releasenotes|release notes]] be followed. These instructions will tell you to do a {{{dist-upgrade}}} (instead of {{{upgrade}}} in the case of apt-get or {{{safe-upgrade}}} in the case of aptitude) at least once. So you would have to type something like To upgrade from one major Debian release to another (e.g. from lenny to squeeze) it is strongly recommended that the instructions given in the new version's [[http://www.debian.org/releases/stable/releasenotes|release notes]] be followed. These instructions will tell you to do a {{{dist-upgrade}}} (instead of {{{upgrade}}} in the case of apt-get or {{{safe-upgrade}}} in the case of aptitude) at least once. So you would have to type something like
Line 133: Line 133:
How can you add a package to your system without the gui-programs? All you have to do is find out the name of this package and enter the command How can you add a package to your system without the GUI programs? All you have to do is find out the name of this package and enter the command
Line 154: Line 154:
=== Forced removing of a package: ===
While making a distribution upgrade it could happen that you have to remove a package first. But sometimes this is not possible with apt-get remove since the package has unmet dependencies or is not installed completely. You can remove the package foo by using the command
=== Forcing removal of a package: ===
While making a distribution upgrade it could happen that you have to remove a package first. But sometimes this is not possible with {{{apt-get remove}}} since the package has unmet dependencies or is not installed completely. You can remove the package foo by using the command

Translation(s): English - Italiano


The package management system binds all the software on a Debian system together. Debian uses named "packages" for each piece of software, bundles of files which provide the files to be installed on the system, the dependencies between packages and the configuration of the software. These packages can be installed or removed (unless, of course some other package requires it) at will. In fact, the majority of the Debian installation process is installing the most basic packages that allow Debian to function.

Debian package management consists of several layers. The lowest layers, most of which you won't want to touch, are made up of dpkg and associated programs. On top of those layers are the Apt and apt-get tools as well as the newer aptitude tool. The Package Management Tools page has brief descriptions of these and other tools which work with DebianPackage files.

All of those tools are documented by a ManPage, so if you have questions, you should consult them (eg. 'man apt'). If you're new, there are some commands that have proven most useful for everyday use. They are grouped generally as:

Full-Screen Frontends

These are both console (ncurses) and GUI based. There are a number of alternatives, similar in some regards, different in others. For users of RPM-based Linux distros, analogs include RedCarpet and Up2Date.

  • aptitude may be invoked in full screen console mode (ncurses) or CLI mode, and is a friendly frontend to apt. It replaces apt-get as the recommended tool for the command line.

  • DSelect is an older frontend to apt. It is no longer recommended.

  • adept is a nice GUI-based frontend with several nice options.

  • Synaptic is another GUI-based frontend.

  • other frontends are available (e.g. gnome-apt), try to use one of the above or apt-cache search to find one of them :)

Command-line Frontends

Generally, the command line tools integrate a number of operations (package list management, package retrieval, package installation, package configuration) in a single command plus arguments. The primary command line tool is aptitude. apt-get fulfills a similar purpose and although it is no longer the recommended primary tool some still use it. Here are some typical invocations:

  • aptitude update (or apt-get update, see apt-get) to update apt's internal database of available packages

  • aptitude safe-upgrade (or apt-get -u upgrade) to bring all currently installed packages up to date

  • aptitude search jabber (or apt-cache search jabber) to find a program that gives you access to the jabber instant-messaging system

  • aptitude show gabber (or apt-cache show gabber) to display more info about the GNOME jabber client

  • aptitude install gabber (or apt-get install gabber) to install the package

  • aptitude remove gabber (or apt-get remove gabber) to remove it again

  • aptitude search '~i' to show installed packages

"Apt Help":http://www.spack.org/wiki/UsingApt

You can also use Wajig, for an unified and more logical command-line interface to all package management functions.

Low-level Tools

Largely dpkg and friends, these are commands that perform a single task. They are most directly comparable to Redhat's "rpm" command.

  • dpkg-reconfigure locales to reconfigure ?locales

  • dpkg-reconfigure exim to reconfigure the exim mail-transfer agent. This command isn't currently part of dpkg; it's provided by debconf.

  • dpkg, (see DPkg) invoked with various command-line arguments. If you find a place to download debian-packages that is not accessible via apt, you can download the packages and install them directly. Note that this method will not automagically resolve dependencies between packages etc, therefore use apt or dselect if possible.

  • dpkg --listfiles textutils to list all the files provided by the textutils package. This only works for packages which are already installed. This can be useful to find out what form a package's documentation has been provided in.

  • dpkg -S /path/to/some/file to find out which package a file belongs to.

  • deborphan can be handy but is no longer required to recover space because apt now automatically un-installs unneeded packages that were installed only to satisfy a dependency of a package that was specifically requested to be installed but has since been removed. It gives you a list of library packages that no longer have higher-level packages depending on them.

Contents of a debian file

To see the contents of debian packages in the Debian repositories, whether installed or uninstalled, install the apt-file package and enter

$ apt-file update
$ apt-file list foo

To get the contents of the file "abc.deb", you have to enter

$ dpkg-deb -c abc.deb 

Reconfiguring of debconf

To reconfigure debconf, so that it informs you of most changes of the new packages, you have to enter (as Root):

 # dpkg-reconfigure debconf

Chose "medium" here

Package Management with apt-get and dpkg

Package resource list for APT

The file /etc/apt/sources.list is the definition file of the sources for apt. For further information about this file type

$ man 5 sources.list

Retrieve new lists of packages:

To fetch the new lists of all the packages from sources.list enter:

# aptitude update

or the equivalent

# apt-get update

This command checks for new release-files on the given servers. Luckily the command is clever enough to check if the release-file has changed after the last update.

Upgrade of all the files:

To make an update of all the changed packages, enter the line

# aptitude safe-upgrade

If you want to do this from cron you should consider using the cron-apt package.

The older apt-get based method is:

# apt-get upgrade -u

The additional flag -u shows a list of upgraded packages as well. If you want to run the update in a cron-job, you should use the flags -dy. With this flags the new packages will be downloaded but not installed. You can install them later by writing apt-get update -u.

Distribution Upgrade of all the files:

To upgrade from one major Debian release to another (e.g. from lenny to squeeze) it is strongly recommended that the instructions given in the new version's release notes be followed. These instructions will tell you to do a dist-upgrade (instead of upgrade in the case of apt-get or safe-upgrade in the case of aptitude) at least once. So you would have to type something like

# aptitude full-upgrade

# apt-get dist-upgrade -dy

# apt-get dist-upgrade -u

at some point during the major release upgrade.

A dist-upgrade may also be required to keep up-to-date with the latest version of sid.

Add a package:

How can you add a package to your system without the GUI programs? All you have to do is find out the name of this package and enter the command

# aptitude install sylpheed-claws

or

# apt-get install sylpheed-claws

to add the package sylpheed-claws.

Remove a package:

To get rid of the package foo which is no longer needed, enter the command

# aptitude remove foo

or

#  apt-get remove foo

If the package is needed by other packages you will be prompted to remove this package and all packages which depend on it.

Forcing removal of a package:

While making a distribution upgrade it could happen that you have to remove a package first. But sometimes this is not possible with apt-get remove since the package has unmet dependencies or is not installed completely. You can remove the package foo by using the command

# dpkg --force-all --remove foo 

Read the contents of a installed package:

Sometimes you want to know which files are in the package foo. To get this information enter the command

$ dpkg -L foo 

Get the description of a package:

You don't know what the package foo is for? Just write

$ aptitude show foo

or

$ dpkg -p foo 

Search the package of a file:

Have you ever wondered to which package belongs a given file? To get this information (e.g. for /usr/bin/apt-get), start the command

$ dpkg -S /usr/bin/apt-get

and it will tell you that this file is part of the package apt.


?CategoryQuickPackageManagement | CategoryPackageManagement