Not too amazingly, DEB packages are associated with Debian systems and those derived from the Debian distribution. DPKG is the package management software that manages the DEB packages.
APT on the other hand, standing for Advanced Packaging Tool, manages the deployment, dependencies and updates of DEB packages and allows for searching and control of software repositories.
Anatomy of an DEB file and Operations
The naming convention for an DEB file is;
debname_a.b.c-d.arch.deb
debname - You may have gathered what this is, this is is the name of the application in the package, although there are strange naming conventions just to keep you on your toes. For instance, the Apache HTTP Server will normally be called 'httpd'... and these may be different on different Linux distributions.
a.b.c - The package version number, this is normally the version of the program in the package.
d - The build or release number comes next, and this represents that minor changes made by the packager not the author of the code.
arch - This represents the architecture the package was built for, this could be i386, i586, i686 and x86-64 depending on the binary.
Some useful DPKG commands and options;
Installs the Apache HTTP application or updates it if it is already installed:
dpkg -i apache2_2.2.22-13+deb7u3.amd64.deb
Uninstalls the package:
dpkg -P apache2_2.2.22-13+deb7u3
List all of the files in the installed package:
dpkg -L apache2
List all of the packages installed on the machine:
dpkg -l apache2
List the package a particular file was installed from:
dpkg -S /usr/share/bug/apache2/script
dpkg -S /usr/share/bug/apache2/script
Show information about any installed package:
dpkg -p apache2
Using APT-CACHE and APT-GET
The APT group of applications largely duplicate what the YUM system does but is arguably a more comprehensive toolkit. The first of these tools, apt-cache deals entirely with the Debian package database (cache). apt-get houses the more common YUM equivalent commands, it is a meta-packager and it allows the user to search and locate packages in multiple repositories on the Internet and locally and will also download and install them on the machine. These commands are listed below;
apt-cache showpkg apache2 - Shows additional package information.
apt-cache stats - Shows statistics about the packages and the cache.
apt-cache unmet - Lists all unmet dependencies on the system.
apt-cache depends apache2 - Shows an applications dependencies.
apt-cache pkgnames - Shows all installed packages on a system.
As an example, we'll try and search for, install and then remove the Midnight Commander File Manager.
Search for a name, summary or description to find a specific package;
# apt-cache search "midnight commander"
mc-data - Midnight Commander - a powerful file manager -- data files
mc - Midnight Commander - a powerful file manager
Package: mc
Version: 3:4.8.3-10
Installed-Size: 1300
Maintainer: Debian MC Packaging Group <pkg-mc-devel@lists.alioth.debian.org>
Architecture: amd64
Depends: e2fslibs (>= 1.42.2), libc6 (>= 2.11), libcomerr2 (>= 1.01), libglib2.0-0 (>= 2.24.0), libgpm2 (>= 1.20.4), libslang2 (>= 2.2.4), mc-data (= 3:4.8.3-10)
Recommends: mime-support, unzip, perl
Suggests: zip, bzip2, links | w3m | lynx, arj, file, xpdf | pdf-viewer, dbview, odt2txt, gv, catdvi, djvulibre-bin, imagemagick, python, python-boto, python-tz
Description-en: Midnight Commander - a powerful file manager
GNU Midnight Commander is a text-mode full-screen file manager. It
uses a two panel interface and a subshell for command execution. It
includes an internal editor with syntax highlighting and an internal
viewer with support for binary files. Also included is Virtual
Filesystem (VFS), that allows files on remote systems (e.g. FTP, SSH
servers) and files inside archives to be manipulated like real files.
Homepage: http://www.midnight-commander.org
Description-md5: 252a5c5aeeb7425db45357d4ab8aa55f
Tag: admin::filesystem, implemented-in::c, implemented-in::perl,
interface::commandline, interface::text-mode, role::program,
scope::application, suite::gnu, uitoolkit::ncurses, use::browsing,
use::editing, use::organizing, works-with::archive, works-with::file
Section: utils
Priority: optional
Filename: pool/main/m/mc/mc_4.8.3-10_amd64.deb
Size: 470358
MD5sum: 9e412f6352b2b013a8e15ea88a48b21e
SHA1: 8362913a55345e183ac93824358e33b2569a18a9
SHA256: 2d3fe9dde39183b41477446ac013fc3bb4df9be4500173aa21f5760b0f1242d3
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
mc-data
Suggested packages:
zip arj dbview odt2txt gv catdvi djvulibre-bin python-boto python-tz
The following NEW packages will be installed:
mc mc-data
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,556 kB of archives.
After this operation, 6,252 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://http.debian.net/debian/ wheezy/main mc-data all 3:4.8.3-10 [1,086 kB]
Get:2 http://http.debian.net/debian/ wheezy/main mc amd64 3:4.8.3-10 [470 kB]
Fetched 1,556 kB in 1s (1,255 kB/s)
Selecting previously unselected package mc-data.
(Reading database ... 126224 files and directories currently installed.)
Unpacking mc-data (from .../mc-data_3%3a4.8.3-10_all.deb) ...
Selecting previously unselected package mc.
Unpacking mc (from .../mc_3%3a4.8.3-10_amd64.deb) ...
Processing triggers for hicolor-icon-theme ...
Processing triggers for man-db ...
Processing triggers for menu ...
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...
Setting up mc-data (3:4.8.3-10) ...
Setting up mc (3:4.8.3-10) ...
update-alternatives: using /usr/bin/mcview to provide /usr/bin/view (view) in auto mode
Processing triggers for menu ...
Using APT-CACHE and APT-GET
The APT group of applications largely duplicate what the YUM system does but is arguably a more comprehensive toolkit. The first of these tools, apt-cache deals entirely with the Debian package database (cache). apt-get houses the more common YUM equivalent commands, it is a meta-packager and it allows the user to search and locate packages in multiple repositories on the Internet and locally and will also download and install them on the machine. These commands are listed below;
apt-cache showpkg apache2 - Shows additional package information.
apt-cache stats - Shows statistics about the packages and the cache.
apt-cache unmet - Lists all unmet dependencies on the system.
apt-cache depends apache2 - Shows an applications dependencies.
apt-cache pkgnames - Shows all installed packages on a system.
As an example, we'll try and search for, install and then remove the Midnight Commander File Manager.
Search for a name, summary or description to find a specific package;
# apt-cache search "midnight commander"
mc-data - Midnight Commander - a powerful file manager -- data files
mc - Midnight Commander - a powerful file manager
Find out more information about a specific package;
# apt-cache show mc
# apt-cache show mc
Package: mc
Version: 3:4.8.3-10
Installed-Size: 1300
Maintainer: Debian MC Packaging Group <pkg-mc-devel@lists.alioth.debian.org>
Architecture: amd64
Depends: e2fslibs (>= 1.42.2), libc6 (>= 2.11), libcomerr2 (>= 1.01), libglib2.0-0 (>= 2.24.0), libgpm2 (>= 1.20.4), libslang2 (>= 2.2.4), mc-data (= 3:4.8.3-10)
Recommends: mime-support, unzip, perl
Suggests: zip, bzip2, links | w3m | lynx, arj, file, xpdf | pdf-viewer, dbview, odt2txt, gv, catdvi, djvulibre-bin, imagemagick, python, python-boto, python-tz
Description-en: Midnight Commander - a powerful file manager
GNU Midnight Commander is a text-mode full-screen file manager. It
uses a two panel interface and a subshell for command execution. It
includes an internal editor with syntax highlighting and an internal
viewer with support for binary files. Also included is Virtual
Filesystem (VFS), that allows files on remote systems (e.g. FTP, SSH
servers) and files inside archives to be manipulated like real files.
Homepage: http://www.midnight-commander.org
Description-md5: 252a5c5aeeb7425db45357d4ab8aa55f
Tag: admin::filesystem, implemented-in::c, implemented-in::perl,
interface::commandline, interface::text-mode, role::program,
scope::application, suite::gnu, uitoolkit::ncurses, use::browsing,
use::editing, use::organizing, works-with::archive, works-with::file
Section: utils
Priority: optional
Filename: pool/main/m/mc/mc_4.8.3-10_amd64.deb
Size: 470358
MD5sum: 9e412f6352b2b013a8e15ea88a48b21e
SHA1: 8362913a55345e183ac93824358e33b2569a18a9
SHA256: 2d3fe9dde39183b41477446ac013fc3bb4df9be4500173aa21f5760b0f1242d3
Install the specified package from a repository, also including dependencies;
# apt-get install mcReading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
mc-data
Suggested packages:
zip arj dbview odt2txt gv catdvi djvulibre-bin python-boto python-tz
The following NEW packages will be installed:
mc mc-data
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,556 kB of archives.
After this operation, 6,252 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://http.debian.net/debian/ wheezy/main mc-data all 3:4.8.3-10 [1,086 kB]
Get:2 http://http.debian.net/debian/ wheezy/main mc amd64 3:4.8.3-10 [470 kB]
Fetched 1,556 kB in 1s (1,255 kB/s)
Selecting previously unselected package mc-data.
(Reading database ... 126224 files and directories currently installed.)
Unpacking mc-data (from .../mc-data_3%3a4.8.3-10_all.deb) ...
Selecting previously unselected package mc.
Unpacking mc (from .../mc_3%3a4.8.3-10_amd64.deb) ...
Processing triggers for hicolor-icon-theme ...
Processing triggers for man-db ...
Processing triggers for menu ...
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...
Setting up mc-data (3:4.8.3-10) ...
Setting up mc (3:4.8.3-10) ...
update-alternatives: using /usr/bin/mcview to provide /usr/bin/view (view) in auto mode
Processing triggers for menu ...
To check to see if there are any updates available;
# apt-get --simulate update
Hit http://security.debian.org wheezy/updates Release.gpg
Get:1 http://http.debian.net wheezy Release.gpg [1,655 B]
Hit http://security.debian.org wheezy/updates Release
Hit http://http.debian.net wheezy-updates Release.gpg
Hit http://http.debian.net wheezy Release
Hit http://http.debian.net wheezy-updates Release
Hit http://security.debian.org wheezy/updates/main Sources
Get:2 http://http.debian.net wheezy/main Sources [5,957 kB]
Hit http://security.debian.org wheezy/updates/contrib Sources
Hit http://http.debian.net wheezy/main amd64 Packages
Hit http://security.debian.org wheezy/updates/main amd64 Packages
Hit http://http.debian.net wheezy/main Translation-en
Hit http://security.debian.org wheezy/updates/contrib amd64 Packages
Hit http://http.debian.net wheezy-updates/main Sources
Hit http://security.debian.org wheezy/updates/contrib Translation-en
Hit http://http.debian.net wheezy-updates/main amd64 Packages/DiffIndex
Hit http://security.debian.org wheezy/updates/main Translation-en
Hit http://http.debian.net wheezy-updates/main Translation-en/DiffIndex
Fetched 5,958 kB in 3s (1,510 kB/s)
Reading package lists... Done
Get:1 http://http.debian.net wheezy Release.gpg [1,655 B]
Hit http://security.debian.org wheezy/updates Release
Hit http://http.debian.net wheezy-updates Release.gpg
Hit http://http.debian.net wheezy Release
Hit http://http.debian.net wheezy-updates Release
Hit http://security.debian.org wheezy/updates/main Sources
Get:2 http://http.debian.net wheezy/main Sources [5,957 kB]
Hit http://security.debian.org wheezy/updates/contrib Sources
Hit http://http.debian.net wheezy/main amd64 Packages
Hit http://security.debian.org wheezy/updates/main amd64 Packages
Hit http://http.debian.net wheezy/main Translation-en
Hit http://security.debian.org wheezy/updates/contrib amd64 Packages
Hit http://http.debian.net wheezy-updates/main Sources
Hit http://security.debian.org wheezy/updates/contrib Translation-en
Hit http://http.debian.net wheezy-updates/main amd64 Packages/DiffIndex
Hit http://security.debian.org wheezy/updates/main Translation-en
Hit http://http.debian.net wheezy-updates/main Translation-en/DiffIndex
Fetched 5,958 kB in 3s (1,510 kB/s)
Reading package lists... Done
Update a specific package to the latest version;
# apt-get --only-upgrade install cpio
Reading package lists... Done
Building dependency tree
Reading state information... Done
cpio is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Building dependency tree
Reading state information... Done
cpio is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Shows all of the dependencies of a specified package;
# apt-cache depends mc
mc
Depends: e2fslibs
Depends: libc6
Depends: libcomerr2
Depends: libglib2.0-0
Depends: libgpm2
Depends: libslang2
Depends: mc-data
Suggests: zip
Suggests: bzip2
|Suggests: links
|Suggests: w3m
Suggests: lynx
Suggests: arj
Suggests: file
|Suggests: xpdf
Suggests: <pdf-viewer>
epdfview
evince
evince-gtk
gv
okular
viewpdf.app
xpdf
zathura
Suggests: dbview
Suggests: odt2txt
Suggests: gv
Suggests: catdvi
Suggests: djvulibre-bin
Suggests: imagemagick
graphicsmagick-imagemagick-compat
Suggests: python
Suggests: python-boto
Suggests: python-tz
Recommends: mime-support
Recommends: unzip
Recommends: perl
Depends: e2fslibs
Depends: libc6
Depends: libcomerr2
Depends: libglib2.0-0
Depends: libgpm2
Depends: libslang2
Depends: mc-data
Suggests: zip
Suggests: bzip2
|Suggests: links
|Suggests: w3m
Suggests: lynx
Suggests: arj
Suggests: file
|Suggests: xpdf
Suggests: <pdf-viewer>
epdfview
evince
evince-gtk
gv
okular
viewpdf.app
xpdf
zathura
Suggests: dbview
Suggests: odt2txt
Suggests: gv
Suggests: catdvi
Suggests: djvulibre-bin
Suggests: imagemagick
graphicsmagick-imagemagick-compat
Suggests: python
Suggests: python-boto
Suggests: python-tz
Recommends: mime-support
Recommends: unzip
Recommends: perl
Remove the specified package from the machine;
# apt-get remove mc
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
mc-data
Use 'apt-get autoremove' to remove it.
The following packages will be REMOVED:
mc
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 1,331 kB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 126526 files and directories currently installed.)
Removing mc ...
update-alternatives: using /usr/bin/vim.tiny to provide /usr/bin/view (view) in auto mode
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...
Processing triggers for menu ...
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
mc-data
Use 'apt-get autoremove' to remove it.
The following packages will be REMOVED:
mc
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 1,331 kB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 126526 files and directories currently installed.)
Removing mc ...
update-alternatives: using /usr/bin/vim.tiny to provide /usr/bin/view (view) in auto mode
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...
Processing triggers for menu ...
Cleans the APT cache directory;
# apt-get clean
No comments:
Post a Comment