Как управлять пакетами с помощью команд apt-get, apt-cache, apt-file и dpkg (с 13 практическими примерами)

Мы предоставляем услуги удаленного администрирования серверов

Как управлять пакетами с помощью команд apt-get, apt-cache, apt-file и dpkg (с 13 практическими примерами)

Поделиться

Системы на основе Debian (включая Ubuntu) используют команды apt- * для управления пакетами из командной строки.

В этой статье, на примере установки Apache 2, давайте рассмотрим, как использовать команды apt- * для просмотра, установки, удаления или обновления пакетов.

1. apt-cache search: поиск в репозитории по имени пакета

Если вы устанавливаете Apache 2, вы можете догадаться, что имя пакета — apache2. Чтобы проверить, является ли это допустимым именем пакета, вы можете выполнить поиск в хранилище именно этого имени пакета, как показано ниже.

В следующем примере показано, как найти в хранилище определенное имя пакета.

$ apt-cache search ^apache2$
apache2 - Apache HTTP Server metapackage

2. apt-cache search: поиск в репозитории с использованием описания пакета

Если вы не знаете точного названия пакета, вы можете выполнить поиск, используя описание пакета, как показано ниже.

$ apt-cache search "Apache HTTP Server"
apache2 - Apache HTTP Server metapackage
apache2-doc - Apache HTTP Server documentation
apache2-mpm-event - Apache HTTP Server - event driven model
apache2-mpm-prefork - Apache HTTP Server - traditional non-threaded model
apache2-mpm-worker - Apache HTTP Server - high speed threaded model
apache2.2-common - Apache HTTP Server common files

3. apt-file search: поиск в репозитории с использованием имени файла из пакета

Иногда вы можете знать имя файла конфигурации (или) имя исполняемого файла из пакета, который вы хотите установить.

В следующем примере показано, что файл apache2.conf является частью пакета apache2.2-common. Найдите в хранилище имя файла конфигурации с помощью команды apt-file, как показано ниже.

$ apt-file search apache2.conf
apache2.2-common: /etc/apache2/apache2.conf
apache2.2-common: /usr/share/doc/apache2.2-common/examples/apache2/apache2.conf.gz

4. apt-cache show: основная информация о пакете

В следующем примере показана основная информация о пакете apache2.

$ apt-cache show apache2
Package: apache2
Priority: optional
Maintainer: Ubuntu Core Developers
Original-Maintainer: Debian Apache Maintainers
Version: 2.2.11-2ubuntu2.3
Depends: apache2-mpm-worker (>= 2.2.11-2ubuntu2.3)
 | apache2-mpm-prefork (>= 2.2.11-2ubuntu2.3)
 | apache2-mpm-event (>= 2.2.11-2ubuntu2.3)
Filename: pool/main/a/apache2/apache2_2.2.11-2ubuntu2.3_all.deb
Size: 46350
Description: Apache HTTP Server metapackage
 The Apache Software Foundation's goal is to build a secure, efficient and
 extensible HTTP server as standards-compliant open source software.
Homepage: http://httpd.apache.org/

5. apt-cache showpkg: подробная информация о пакете

«Apt-cache show» отображает основную информацию о пакете. Используйте «apt-cache showpkg» для отображения подробной информации о пакете, как показано ниже.

$ apt-cache showpkg apache2
Package: apache2
Versions:
2.2.11-2ubuntu2.3 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_jaunty-updates_main_binary-i386_Packages) (/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_jaunty-security_main_binary-i386_Packages)
 Description Language:
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_jaunty-updates_main_binary-i386_Packages
                  MD5: d24f049cd70ccfc178dd8974e4b1ed01
Reverse Depends:
  squirrelmail,apache2
  squid3-cgi,apache2
  phpmyadmin,apache2
  mahara-apache2,apache2
  ipplan,apache2
Dependencies:
  2.2.11-2ubuntu2.3 - apache2-mpm-worker (18 2.2.11-2ubuntu2.3) apache2-mpm-prefork (18 2.2.11-2ubuntu2.3) apache2-mpm-event (2 2.2.11-2ubuntu2.3)
  2.2.11-2ubuntu2 - apache2-mpm-worker (18 2.2.11-2ubuntu2) apache2-mpm-prefork (18 2.2.11-2ubuntu2) apache2-mpm-event (2 2.2.11-2ubuntu2)
Provides:
  2.2.11-2ubuntu2.3 -
  2.2.11-2ubuntu2 -
Reverse Provides:
  apache2-mpm-itk 2.2.6-02-1build4.3
  apache2-mpm-worker 2.2.11-2ubuntu2.3
  apache2-mpm-prefork 2.2.11-2ubuntu2.3
  apache2-mpm-prefork 2.2.11-2ubuntu2
  apache2-mpm-event 2.2.11-2ubuntu2

6. Список apt-файлов: список всех файлов, находящихся внутри пакета

Используйте «apt-file list», чтобы отобразить все файлы, расположенные внутри пакета apache2, как показано ниже.

$ apt-file list apache2 | more
apache2: /usr/share/bug/apache2/control
apache2: /usr/share/bug/apache2/script
apache2: /usr/share/doc/apache2/NEWS.Debian.gz
apache2: /usr/share/doc/apache2/README.Debian.gz
apache2: /usr/share/doc/apache2/changelog.Debian.gz

7. apt-cache зависит: список всех зависимых пакетов

Перед установкой, если вы хотите просмотреть все зависимые пакеты, используйте «apt-cache зависящий», как показано ниже.

$ apt-cache depends apache2
apache2
 |Depends: apache2-mpm-worker
 |Depends: apache2-mpm-prefork
  Depends: apache2-mpm-event

8. dpkg -l: пакет уже установлен?

Перед установкой пакета вы можете убедиться, что он еще не установлен, как показано ниже, с помощью команды dpkg -l.

  $ dpkg -l |  grep -i apache

9. apt-get install: установить пакет

Наконец, установите пакет, используя «apt-get install», как показано ниже.

$ sudo apt-get install apache2
[sudo] password for RSA: 

The following NEW packages will be installed:
  apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1
  libaprutil1 libpq5

0 upgraded, 7 newly installed, 0 to remove and 26 not upgraded.

10. dpkg -l: проверить, был ли пакет успешно установлен

После установки пакета используйте «dpkg -l», чтобы убедиться, что он успешно установлен.

$ dpkg -l | grep apache
ii  apache2             2.2.11-2ubuntu2.3  Apache HTTP Server metapackage
ii  apache2-mpm-worker  2.2.11-2ubuntu2.3  Apache HTTP Server - high speed threaded mod
ii  apache2-utils       2.2.11-2ubuntu2.3  utility programs for webservers
ii  apache2.2-common    2.2.11-2ubuntu2.3  Apache HTTP Server common files

11. apt-get remove: удалить пакет

Используйте «apt-get purge» или «apt-get remove», чтобы удалить пакет, как показано ниже.

$ sudo apt-get purge apache2

(or)

$ sudo apt-get remove apache2

The following packages were automatically installed and are no longer required:
  apache2-utils linux-headers-2.6.28-11 libapr1 apache2.2-common
  linux-headers-2.6.28-11-generic apache2-mpm-worker libpq5 libaprutil1

Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  apache2
0 upgraded, 0 newly installed, 1 to remove and 26 not upgraded.
Removing apache2 ...
  • apt-get remove не удалит файлы конфигурации пакета
  • apt-get purge удалит файлы конфигурации пакета

12. apt-get -u install: обновить определенный пакет

В следующем примере показано, как обновить один конкретный пакет.

$ sudo apt-get -u install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
apache2 is already the newest version.
The following packages were automatically installed and are no longer required:
  linux-headers-2.6.28-11 linux-headers-2.6.28-11-generic
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 26 not upgraded.

13. apt-get -u upgrade: обновить все пакеты

Чтобы обновить все пакеты до последней версии, используйте «apt-get -u upgrade», как показано ниже.

$ sudo apt-get -u upgrade
The following packages will be upgraded:
  libglib2.0-0 libglib2.0-data libicu38 libsmbclient libwbclient0
  openoffice.org-base-core openoffice.org-calc openoffice.org-common
  openoffice.org-core openoffice.org-draw openoffice.org-emailmerge
  openoffice.org-gnome openoffice.org-gtk openoffice.org-impress
  openoffice.org-math openoffice.org-style-human openoffice.org-writer
  python-uno samba-common smbclient ttf-opensymbol tzdata
26 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
 2019-2020 © linuxadmins all rights reserved

Facebook Twitter Vkontakte