Библиотека сайта rus-linux.net
Ошибка базы данных: Table 'a111530_forumnew.rlf1_users' doesn't exist
18 советов по использованию команд APT и DPKG в системах Debian и Ubuntu
Оригинал: "Collection of 18 Popular APT & DPKG Tips for Debian and Ubuntu"Автор: Craciun Dan
Дата публикации: September 20th, 2010
Перевод: Н.Ромоданов
Дата перевода: декабрь 2010 г.
В настоящем руководстве представлены наиболее популярные и полезные примеры использования команд APT и DPKG, которые можно применить как в Ubuntu, так и в Debian (а также в системах, производных от них). Явно указано, в каких случаях требуются привилегии суперпользователя, а для тех команд, где ничего не указано — команду может выполнить обычный пользователь. Если вы используете Ubuntu, то для получения привилегии суперпользователя, наберите перед командой префикс sudo
(и введите свой пароль пользователя); в Debian наберите команду su
, введите пароль, а затем вводите команды, которые описаны ниже.
dpkg -L package_name
Эта команда покажет, какие файлы для пакета с именем package_name установлены на вашем компьютере. Обратите внимание, что эта команда работает только для уже установленных пакетов. Пример:
embryo@debian:~$ dpkg -L vorbis-tools /. /usr /usr/bin /usr/bin/ogg123
apt-get build-dep package_name
(необходимы привилегии root)
Это очень полезная команда, с ее помощью устанавливаются все библиотеки, необходимые для разработки приложения. Так что если вам нужно скомпилировать новую версию программы, отличающуюся от той, что есть в репозитарии, для получения зависимостей используйте эту команду. Обратите внимание, что будут установлены библиотеки, необходимые для текущей версии приложения, которая взята из репозитариев, поэтому вам, возможно, потребуется установить дополнительные библиотеки. Но для большинства приложений этого не требуется. Пример:
apt-get build-dep wesnoth
С помощью этой команды будут установлены все пакеты разработчика, необходимые для приложения Wesnoth. Имейте в виду, что у вас должен быть прописан доступ к репозитариям исходных кодов (в Ubuntu по умолчанию доступ к ним есть).
apt-get clean (и apt-get autoclean)
(необходимы привилегии root)
С помощью этой команды удаляются все архивы, установленные в вашей системе. Всякий раз, когда вы устанавливаете приложение, оно будет загружено и его пакет DEB будет помещен в директорий /var/cache/apt/archives/. Данная команда удаляет эти пакеты и освобождает место.
apt-get clean apt-get autoclean
Относительно apt-get autoclean
: с помощью этой команды удаляются только те архивы, которых уже нет в репозитариях, и сохраняются те, которые в данный момент в репозитариях присутствуют. Эта команда полезна, если вы хотите избавиться от старых архивов, которые были обновлены, но обновленные архивы хотите на всякий случай сохранить. Для того, чтобы увидеть, сколько места занимают архивы, используйте команду du -h
(аргумент -h
указывает, что результат нужно выдать в формате, удобном для чтения):
du -h /var/cache/apt/archives/
apt-cache show package_name
Будет отображена информация о любом пакете package_name, который присутствует в репозитарии. Вам достаточно набрать только название пакета, а не указывать название и версию. Пример:
embryo@debian:~$ apt-cache show vorbis-tools Package: vorbis-tools Priority: optional Section: sound Installed-Size: 580 ...
apt-cache search pattern
Будет произведен поиск и будет выдан список всех пакетов, у которых в имени или в описании содержится шаблон поиска (pattern). Вы можете перенаправить этот список в grep для получения результата в более удобном варианте:
embryo@debian:~$ apt-cache search gnome terminal|grep terminal gmfsk - MFSK, RTTY and other digital mode terminal for HF/amateur radio gnome-terminal-data - Data files for the GNOME terminal emulator gnome-terminal - The GNOME 2 terminal emulator application
apt-get update && apt-get upgrade
(необходимы привилегии root)
Это одностроковая команда, которая обновит список ваших пакетов и выполнит обновление вашей системы. Поскольку для ее выполнения требуются привилегии root, то если ваш дистрибутив — Ubuntu, используйте sudo apt-get update && sudo apt-get upgrade
. Обратите внимание, что вторая команда (после двойного амперсанда) выполняется только в случае, если выполнение первой команды было успешным, поэтому, если по какой-нибудь причине списка обновлений получить не удалось, вторая команда выполняться не будет. Если вы используете тестовый или бета-релиз, используйте вместо нее следующую команду:
sudo apt-get update && sudo apt-get dist-upgrade
Обновления будут получены даже в случае, если они зависят от более новых пакетов.
dpkg --get-selections
Эта команда выведет список всех пакетов, установленных в системе с помощью менеджера пакетов (более точно, это те пакеты, которые были выбраны в менеджере пакетов — прим.пер.). Пример:
embryo@debian:~$ dpkg --get-selections acpi-support-base install acpid install adduser install akregator install ...
dpkg -S filename
Будет найден по образцу filename список файлов, имеющихся в установленных пакетах. Пример:
embryo@debian:~$ dpkg -S oggenc vorbis-tools: /usr/share/man/man1/oggenc.1.gz vorbis-tools: /usr/bin/oggenc embryo@debian:~$
apt-get autoremove
(необходимы привилегии root)
С помощью этой команды удаляются ненужные пакеты (например, одиночные пакеты), которые не используются никаким из пакетов, в текущий момент установленных в системе. Такая ситуация часто возникает после удаления определенного приложения, когда его зависимости не удаляются и по-прежнему остаются в системе. Используйте эту команду, чтобы избавиться от таких пакетов.
apt-cache dump
Эта команда выводит список всех пакетов, находящихся в кэше.
apt-cache depends package_name
Очень полезная команда, которая перечисляет все зависимости, которые есть у пакета, в том числе и рекомендуемые пакеты.
embryo@debian:~$ apt-cache depends vorbis-tools vorbis-tools Depends: libao2 Depends: libc6 Depends: libcurl3-gnutls ...
apt-cache rdepends package_name
Команда покажет обратную зависимость пакетов, т. е. будет выдан список всех пакетов, которые зависят от указанного пакета.
apt-cache rdepends mplayer
apt-cache policy package_name
Эта команда выдаст список репозитариев, в которых находится пакет. В Ubuntu, есть четыре таких репозитария: main, restricted, universe и multiverse. В Debian имеются репозитари main, contrib и non-free. Для каждого пакета есть определенная политика его использования и она зависит от того, в каком из указанных репозитариев находится пакет.
apt-cache policy amarok apt-cache policy sun-java6-jre
apt-cache showsrc package_name
Будет отображаться информация об исходном коде пакета.
apt-get -f install
(необходимы привилегии root)
Будет сделана попытка исправить нарушенные зависимости. Как правило, эта команда очень полезна в случае, если вы пытаетесь вручную установить пакет DEB, не устанавливая первоначально его зависимости. Выполните команду apt-get -f install
, а затем снова попытайтесь установить пакет.
apt-cdrom add
(необходимы привилегии root)
Команда добавит CD-ROM к числу источников, откуда можно получать пакеты, так что вы сможете устанавливать с него пакеты. Эта команда особенно полезна, если у вас есть образы ISO, которые вы не хотите записывать на компакт-диск. Для того, чтобы сканировать образы ISO, используйте команду:
apt-cdrom -d=/cdrom add
В результате в директории /cdrom будет смонтирован образ ISO, а затем его содержимое будет добавлено в sources.list. Обратите внимание, что директорий /cdrom должен быть пустым. Для этого вы можете использовать любой пустой директорий:
apt-cdrom -d=/home/USER/mydir
dpkg -c local_file.deb
Аргумент -c указывает команде dpkg выдать список содержимого пакета DEB. Пример:
embryo@debian:~$ dpkg -c google-chrome-stable_current_i386.deb ... drwxr-xr-x root/root 0 2010-07-30 23:54 ./usr/share/man/man1/ -rwxr-xr-x root/root 3098 2010-07-30 23:54 ./usr/share/man/man1/google-chrome.1 lrwxrwxrwx root/root 0 2010-07-30 23:54 ./usr/bin/google-chrome -> /opt/google/chrome/google-chrome
dpkg -f local_file.deb
Эта команда покажет управляющую информацию бинарного пакета. Из нее менеджер пакетов получает данные о зависимостях, о том, кто осуществляет поддержку пакета, о домашней странице пакета, общее описание, а также многое другое.
embryo@debian:~$ dpkg -f google-chrome-stable_current_i386.deb Package: google-chrome-stable Version: 5.0.375.126-r53802 ...
Это наиболее популярные примеры использования команд APT и DPKG. Есть еще? Пожалуйста, поделитесь ими!