Команда apt в linux

3.1 Введение

Если чтение всей документации разработчиков слишком утомительно для Вас, то
сначала прочтите эту главу и потом наслаждайтесь всей мощью системы Debian,
используя дистрибутивы testing/unstable :-).

3.1.1 Основные инструменты

     dselect   – инструмент для управления пакетами с меню-подобным интерфейсом (высокоуровневый инструмент)
     dpkg      – инсталлятор пакетов (основная утилита для работы с файлами-пакетами)
     apt-get   – инсталлятор пакетов (утилита для работами с репозитариями пакетов,
                       интерфейс командной строки к системе APT)
     tasksel   – инсталлятор задач (набора пакетов)
     aptitude  – инсталлятор пакетов (пакеты & задачи, интерфейс к APT на базе ncurses)
     deity     – альтернатива ncurses-интерфейса к APT
     synaptic, gsynaptic – графические утилиты для работы с APT

Данные инструменты принадлежат разным уровням работы с пакетами.
работает над системой APT (команда ) и
программой .

APT использует файлы для отслеживания
доступных пакетов, в то время как для этих целей использует
файл . Если Вы установили пакеты
непосредственно используя программу или подобными
средствами (), то перед тем, как запускать команды
dselect select, tasksel или dpkg -l, не
забудьте обновить файл через пункт меню
pdate программы или, запустив в командной
строке команду «dselect update«.

Так как пакеты имееют зависимости, программа автоматически
при установке пакета выбирает к установке дополнительные пакеты, от которых
устанавливаемый пакет зависит (depends), но она не трогает
пакеты, связанные с ним зависимостями «рекомендует»
(recommends) и «предлагает»
(suggests). В то же время программа
через меню предлагает установить пакеты, основываясь на зависимостях вида
«зависит» (depends), «рекомендует»
(recommends) и «предлагает»
(suggests). Программа имеет опцию для
автоматической установки всех пакетов, выбираемых этими видами зависимостей.

3.1.2 Удобные инструменты

     apt-cache         - проверка локального кэша пакетов
     dpkg-reconfigure  - повторная конфигурация уже установленного пакета (если он использует debconf)
     dpkg-source       - управляет исходными файлами пакета
     dpkg-buildpackage - aвтоматизирует сборку пакета
     ...

Apt vs Apt-get. В чем различия?

Что использовать, apt или apt-get? В чем же разница между этими двумя утилитами? Для начала вам больше не нужно использовать apt-get autoremove, чтобы очистить кеш пакетов, пакеты будут удаляться автоматически. Также вам не нужно вводить apt-cache search для поиска пакетов.

Эти команды были заменены на apt search и apt remove. Главное отличие apt от apt-get — в том, что программа объединяет большинство команд apt-get и apt-cache. Вся функциональность теперь находится в одной утилите.

Хотя это не единственное отличие, от apt-get. Здесь улучшены прогресс бары установки пакетов. Ещё поддерживаются некоторые дополнения, которые делают утилиту умнее предыдущей. Например, при обновлении источников программного обеспечения с помощью apt-get нет простого способа посмотреть список пакетов доступных к обновлению. Здесь же вы можете просто выполнить:

А затем:

Конечно, мелочи, но приятно. Также были добавлены новые, современные цвета вывода, и в целом установка пакетов проходит быстрее. Canonical не спешит отказываться от apt-get, но они сделают это позитивным изменением.

Установка RPM-пакетов

Для управления пакетами формата RPM в Linux используется соответствующая команда — rpm. Она производит установку, удаление, а также опрос состояния программ. Требуемый функционал этой команды определяется специальными опциями. Например, самыми распространёнными являются: -i – установка, -e – удаление, -U – обновление и -q – запрос. Если с первыми тремя опциями всё довольно просто, то последняя, т. е. -q очень часто используется совместно с другими опциями, т. е. она служит для включения опций конкретных запросов, например, команда:

$ rpm -qa

выводит список всех программ, установленных в ОС. Для установки приложения  нужно выполнить команду следующего вида:

$ rpm -i apache2.rpm

В результате будет произведена установка веб-сервера «Апач», т. к. это в данном случае предписывает опция -i. Сам же файл программы должен быть предварительно загружен или иным способом помещён в файловую систему. Бывает и так, что при работе с приложениями  возникают сложности — чаще всего с зависимостями, например:

$ sudo rpm -U openssh-2.9p2-12.i386.rpm
error: failed dependencies:
openssh = 2.9p2-7 is needed by openssh-askpass-2.9p2-7
openssh = 2.9p2-7 is needed by openssh-askpass-gnome-2.9p2-7
openssh = 2.9p2-7 is needed by openssh-clients-2.9p2-7
openssh = 2.9p2-7 is needed by openssh-server-2.9p2-7

Этот вывод означает, что при попытке обновить приложение  openSSH будут затронуты другие, зависящие от него программы. Это помогает сориентироваться, в том, что ещё нужно сделать для выполнения успешного обновления приложения openSSH, т. е. удовлетворить зависимости

Следует обратить особое внимание на то, что опция —force, для принудительной установки/обновления здесь не помощник — запросто можно сломать приложение. Для того, чтобы заранее узнать, какие зависимости имеются у требуемого приложения, нужно выполнить команду следующего вида:

$ rpm -q --whatrequires openssh
openssh-askpass-2.9p2-7
openssh-askpass-gnome-2.9p2-7
openssh-clients-2.9p2-7
openssh-server-2.9p2-7

Как видно, опция включения запроса -q предписывает выполнить сам запрос с требованием —whatrequires для фразы «openssh», т. е. «определить зависимости приложения openssh», и далее следует логичный вывод. Используя информацию из этого вывода можно скачать файлы нужных зависимостей и установить или обновить их последовательно, используя соответствующие ключи. Для удобства достаточно эти зависимости указать списком:

$ sudo rpm -U openssh-*

Для проверки результата нужно воспользоваться опцией запроса:

$ rpm -q openssh
openssh-2.9p2-12

Этот вывод означает, что в ОС корректно установлен (в результате предыдущих действий) openSSH. Нужно заметить, что для команды необязательно указывать точное название программы  и версий — она правильно распознаёт их и при сокращённой записи их наименований.

Для чего нужны зависимости

Если вы уже устанавливали пакеты в Linux, то вы могли обратить внимание, что вы вводите имя одной программы для установки, но зачастую одновременно с ней устанавливаются ещё и другие пакеты — это зависимости.

Зависимости — это библиотеки, программы, драйверы и прочее, что необходимо для работы другой программы. Такой подход позволяет один и тот же код (библиотеку) использовать в различных программах. К примеру, мы пишем приложение, в которое ходим добавить сетевые функции с поддержкой различных протоколов — нам не нужно всё писать с нуля, мы можем воспользоваться библиотекой libcurl (от авторов программы cURL), которая уже поддерживает десятки сетевых протоколов. И так могут поступить многие другие программы — они все могут использовать одну библиотеку без необходимости дублировать код — достаточно установить библиотеку в ОС один раз.

Для работы некоторых программ необходимы другие программы, либо они являются обёртками, графическими интерфейсами для облегчения использования утилиты. Такие программы также являются зависимостями.

apt-get update && apt-get upgrade

(необходимы привилегии root)

Это одностроковая команда, которая обновит список ваших пакетов и выполнит обновление вашей системы. Поскольку для ее выполнения требуются привилегии root, то если ваш дистрибутив — Ubuntu, используйте

Обратите внимание, что вторая команда (после двойного амперсанда) выполняется только в случае, если выполнение первой команды было успешным, поэтому, если по какой-нибудь причине списка обновлений получить не удалось, вторая команда выполняться не будет. Если вы используете тестовый или бета-релиз, используйте вместо нее следующую команду:

sudo apt-get update && sudo apt-get dist-upgrade

Обновления будут получены даже в случае, если они зависят от более новых пакетов.

Средства графического режима

Для работы с пакетами в графическом режиме Mint располагает общим для всех deb based систем менеджером пакетов Synaptic. Мы им периодически пользуемся, и потому в своё воремя кот Мануал описал его в своих . Так что здесь повторяться мы полагаем излишним.

Однако Linux Mint (как, впрочем, и LMDE) славится также набором фирменных утилит, предназначенных для всестороннего управления пакетами (точнее, приложениями). Правда, и утилиты эти были некогда достаточно подробно описаны в онлайновой книге , однако и здесь стоит сказать о них несколько слов.

Первая из этих утилит — Менеджер программ, который запускается из одноимённого пункта секции Администрирование главного меню. Пиктограмма для запуска этой утилиты по умолчанию имеется также в колонке Избранное. Будучи запущенным тем или иным способом, Менеджер программ для начала запрашивает пароль пользователя, после чего предстаёт перед его взором в следующем виде:

Первое, что обращает на себя внимание — минималистичный дизайн: никаких баннеров, новинок, рекомендаций. Только поле поискового запроса, пиктограммы категорий софта и строка состояния текущих действий (сразу после запуска, разумеется, пустая)

И потому Менеджер приложений не вызывает визуального отторжения. И в обращении он столь же прост, как и внешне. А обращение с ним, разумеется, начинается с поиска нужного пакета. Что можно сделать, просматривая Выбор редакции или Категории:

Здесь можно видеть кнопку Установить, нажатие на которую приводит к мгновенной инсталляции выбранного приложения (в примере — Skype). Если же искомое приложение уже имеет место быть в системе, то устанавливать его, разумеется, не нужно — зато, возможно, захочется чего-то удалить:

Причём сделать это можно вместе с зависимостями. Правда, только с зависимыми пакетами, зависимости-сироты в системе остаются:

Надо сказать, что в Mint’овской сборке Cinnamon есть и ещё один метод удаления приложений, ещё более простой — непосредственно из главного меню, по ПКМ на любом его пункте появляется меню контекстное, с соответствующим пунктом:

Как и в предыдущем случае, зависимые пакеты при этом удаляются, но осиротелые — нет. От них надо избавляться вручную, командой

$ apt autoremove

Далее, в той же секции Администрирование есть пункт Источники приложений — это ни что иное, как менеджер репозиториев, который в оригинале зовётся (или ):

Здесь можно выбрать наиболее подходящие зеркала официальных репозиториев, как базового (то есть прародительской Ubuntu), так и Mint-специфичные, подключить PPA-репозитории, а также любые сторонние — достаточно выбрать раздел репозиториев и нажать кнопку Добавить. После чего появляется панель, например, для PPA-репозиториев — такая. В соответствующую строку необходимо вписать нужный ppa-адрес (в примере добавляется PPA-репозиторий свежих ядер сайта Liquorix) и нажать OK:

Затем согласиться с предложением действительно добавить указанный репозиторий:

И, после согласия с предложением обновить локальный кеш, убедиться, что новый репозиторий действительно добавлен:

А для отключения репозитория, который оказался (или показался?) ненужным, достаточно снять соответствующую «птицу» — опять же с обязательным обновлением кеша.

И, наконец, последнее — Менеджер обновлений. Его можно вызвать из главного меню Cinnamon (всё из той же секции Администрирование). Но по умолчанию пиктограммка запуска нашего «обновителя» висит в системном трее, где к тому же показывается, сколько обновлений доступно в данный момент. А список обновляемых пакетов можно поглядеть после запуска Менеджера:

И, внимательно его проверив, нажать на кнопку Установить обновления

В принципе, к управлению пакетами имеет отношение и ещё одна утилита — Менеджер драйверов. Но, поскольку мы с Мануалом никаких проприетарных драйверов не используем, то и необходимости обращаться к нему не ощущали. Так что пора подвести итоги.

3.5 Other Debian peculiarities

3.5.1 The command

File diversions are a way of forcing not to
install a file into its default location, but to a diverted
location. Diversions can be used through the Debian package
scripts to move a file away when it causes a conflict. System administrators
can also use a diversion to override a package’s configuration file, or
whenever some files (which aren’t marked as conffiles) need to
be preserved by , when installing a newer version of a package
which contains those files.

     # dpkg-divert   filename # add "diversion"
     # dpkg-divert --remove filename # remove "diversion"

It’s usually a good idea not to use unless it is
absolutely necessary.

3.5.2 The package

If you compile a program from source, it is best to make it into a real local
debianized package (*.deb). Use equivs as a last
resort.

     Package: equivs
     Priority: extra
     Section: admin
     Description: Circumventing Debian package dependencies
      This is a dummy package which can be used to create Debian
      packages, which only contain dependency information.

3.5.3 Alternative commands

To make the command run , use
:

     # update-alternatives --display vi
     ...
     # update-alternatives --config vi
       Selection    Command
     -----------------------------------------------
           1        /usr/bin/elvis-tiny
           2        /usr/bin/vim
     *+    3        /usr/bin/nvi
     
     Enter to keep the default, or type selection number: 2

Items in the Debian alternatives system are kept in
as symlinks.

To set your favorite X Window environment, apply
to and
.

is a direct symlink to or
. It’s safer to use to be
compatible with old Bashism-contaminated scripts but better discipline to use
to enforce POSIX compliance. Upgrading to a 2.4 Linux
kernel tends to set this to .

3.5.4 System-V and runlevels

The default runlevel to boot into can be set in .

Unlike other distributions, Debian makes the management of runlevel completely
the sysadmin’s responsibility. Management of System-V style
on Debian is intended to be performed through scripts.

Starting in runlevel 1,2,3 and
stopping in 4,5 with sequencing priority number 20 (normal) can be done by:

     # update-rc.d name start 20 1 2 3 . stop 20 4 5 .

Removing symbolic links while the script in still exists
can be done by:

     # update-rc.d -f name remove

For editing runlevels, I cheat. I edit entries manually using the
command at the shell prompt of while copying
link entries using Alt-Enter. For example:

     # mv S99xdm K99xdm # disable xdm (X display manager)

I even disable a daemon by inserting exit 0 at the start of an
script as a quick hack. These are conffiles
after all.

3.5.5 Отключение неиспользующихся сервисов

Дистрибутив Debian серъезно относится к вопросам безопасности и ожидает участие
компетентного администратора. Поэтому иногда простота использования переходит
на второй план, и многие сервисы идут с наивысшим уровнем безопасности, а сама
система с минимальным набором работающих сервисов после установки по умолчанию.

Если Вы имеете какие-то сомнения относительно сервисов (Exim, DHCP, …),
запустите команду ps aux или проверьте содержимое файлов
и . Также проверьте
файл . Очень полезная команда
(смотрите ).

С недавних пор в Debian система X11 не позволяет удаленные TCP/IP подключения.
Проброс трафика системы X Window в тунеле SSH также запрещена.

Краткий справочник по Debian

CVS, Чтв 18. Янв 2007, 11:54:40 UTC
Osamu Aoki
Перевод Ильи В. Головко

Typical usage example

I want to feel the wind in my hair, I want the adrenaline of speed. So let’s install a racing game. But what racing games are available?

apt-cache search racing game

It gives me a lot of answers. I see a game named «torcs». Let’s get some more information on this game.

apt-cache show torcs

Hmmm… it seems interesting. But is this game not already installed on my computer? And what is the available version? Which repository is it from (Universe or Main)?

apt-cache policy torcs

Ok, so now, let’s install it!

apt-get install torcs

What is the command I must type in the console to launch this game? In this example, it’s straightforward («torcs»), but that’s not always the case. One way of finding the name of the binary is to look at what files the package has installed in «/usr/bin». For games, the binary will be in «/usr/games». For administrative programs, it’s in «/usr/sbin».

dpkg -L torcs | grep /usr/games/

The first part of the command display all files installed by the package «torcs» (try it). With the second part, we ask to only display lines containing «/usr/games/».

Hmmm, that game is cool. Maybe there are some extra tracks?

apt-cache search torcs

But I’m running out of space. I will delete the apt cache!

apt-get clean

Oh no, my mother asked me to remove all games from this computer. But I want to keep the configuration files so I can simply re-install it later.

apt-get remove torcs

If I want to also remove config files :

apt-get purge torcs

Работа с пакетами исходников

Всё сказанное выше относилось к бинарным пакетам. Однако в сценарии предусмотрены и средства для работы с пакетами исходных текстов. Так, с помощью внтуренней команды source можно просто скачать пакет, указанный в качестве её аргумента — разумеется, для этого должен быть подключён репозиторий исходников. Внутренняя команда (эквивалент из стандартных утилит deb based систем) выполнит построение бинарного пакета (что требует соответствующего инструментария в установленном виде). А внутренняя команда ограничится конфигурированием необходимых для этого зависимостей, например:

apt build-dep ubuntu-zfs

Некогда это требовалось мне при сборке пакетов поддержки ZFS on Linux.

Pacman — менеджер пакетов Arch Linux

Этот менеджер пакетов linux разработан командой программистов для дистрибутива ArchLinux. Сейчас, кроме ArchLinux, он используется в Manjaro и еще нескольких малоизвестных дистрибутивах, основанных на ArchLinux.

Здесь поддерживаются все основные возможности — установка программного обеспечения, автоматическое разрешение зависимостей, обновление, удаление пакетов, а также загрузка пакетов программ для последующей установки.

Программа специально спроектирована для удобной работы с пакетами в Arch Linux. А поскольку это система с режимом выпуска в виде роллинг релизов, то этот пакетный менеджер подходит наилучшим образом. Pacman поддерживает систему в актуальном состоянии синхронизируя списки пакетов из основного сервера. Причем существует только одна версия системы — текущая.

Программа написана на Си, а в качестве пакетов используются файлы формата tar.xz, которые на самом деле являются обычными архивами, внутри которых находятся файлы программы и файл описания установки PKGBUILD. Читайте подробнее про установку пакетов в Arch Linux в отдельной статье.

Репозитории на компакт-дисках

Всё, про что я рассказывал выше, касалось в первую очередь интернет-репозиториев и установки приложений из них. Однако было бы странно, если бы единственной возможностью получить новое программное обеспечение было бы скачивание его из интернета через стандартные утилиты.

Поэтому существует способ создания репозитория не в интернете, а на локальных источниках данных, например, на CD и DVD дисках. Фактически, что такое репозиторий? Это сборник пакетов с индексом, имеющий некоторый адрес. Поэтому если вы соберёте нужные пакеты где-то на вашем компьютере, создадите индекс и в качестве пути будете использовать путь до основной папки с вашими пакетами, то это тоже будет репозиторий. И самое замечательное в этом то, что Ubuntu сможет работать с вашим репозиторием с помощью штатных средств управления пакетами. Это немного упрощённая схема, но, надеюсь, общая концепция понятна.

Поэтому если у вас нет интернета, то самым разумным решением проблемы с установкой новых программ для вас являются, пожалуй, так называемые срезы репозиториев. Фактически это содержимое стандартных интернет-репозиториев Ubuntu, записанное на диски и оформленное так же в виде репозитория. К сожалению, централизованного источника распространения срезов нет, однако вы можете поискать их на торрент-трекерах или же у друзей.

Пожалуй, на этом знакомство с механизмом подключения дополнительных источников программного обеспечения можно закончить. Теперь же я немного расскажу про самое популярное место размещения сторонних репозиториев и, соответственно, программ для Ubuntu:

PPA на Launchpad

Надеюсь, понятно почему

Было бы странно, если бы для установки программ надо было бы быть администратором, а для изменения параметров процесса установки — нет.

Обратите так же внимание на то, что тут можно указать основной сервер репозиториев. Российский сервер контролируется яндексом, и если у вас вдруг есть с ним проблемы, то можете выбрать другой.

Справедливости ради надо сказать, что периодически система обновляет индексы сама, если вы конечно не отключите такую возможность

Так что даже если вы не запустите процесс обновления вручную. в какой-то момент Ubuntu сама всё перекачает. По умолчанию она это делает раз в день.

Собственно, обычно именно этот вариант и предлагают использовать на сайтах с репозиториями, мало того, обычно ссылки на ключ вовсе не дают.

Сервер ключей — это централизованное защищённое хранилище ключей аутентификации, с которого можно запросить ключ по его имени.

Сразу хочу вам сказать, что устанавливать Adobe Reader крайне не рекомендуется, в Linux есть свои просмоторщики pdf и они работают куда как лучше программы от Adobe.

Если вам интересно как она это делает, то вам придётся поподробней изучить механизмы формирования и использования консольных команд.

Но все они всё равно в любом случае заключаются в выполнение двух вещей: добавления APT-строки к списку источников и импортирования ключа репозитория.

Собственно, все необходимая информация дана прям на вкладке обновлений в виде краткой характеристики каждого пункта. Почему не стоит включать эти обновления? Потому что в них зачастую попадают пакеты, не до конца протестированные на работоспособность в текущей версии Ubuntu.

Конечно, можно раздобыть deb-пакеты и установить их вручную, однако в этом случае вы рискуете наткнуться на неразрешимые зависимости и вам придётся доставать откуда-то недостающие пакеты, возможно, и не единожды.

Такие репозитории отображаются на первой вкладке приложения управления источниками программного обеспечения. Кстати, там уже доступен один репозиторий на CD диске. Это тот диск, с которого вы ставили систему. Однако на нём, к сожалению, содержится очень мало пакетов. И отключён он, кстати, не зря. Дело в том, что репозитории на CD имеют больший приоритет, чем репозитории в интернете. Поэтому если вы включите CD репозиторий и вам понадобится установить пакет, который есть на CD, то система попросит у вас вставить диск в компьютер, а не скачает нужный пакет из сети. Поэтому если у вас доступен интернет, то включать CD репозитории не стоит.

Как пользоваться apt

1. Обновление пакетов

Сначала давайте обновим список пакетов apt из репозиториев. Репозитории находятся на удалённых серверах и когда утилита apt ищет пакет для установки, естественно, что она не обращается ко всем репозиториям подряд чтобы узнать где он находится. В системе уже есть сохранённых кэш информации о том, какие пакеты вообще есть и где их можно скачать. Для обновления этого кэша используйте команду update:

Во время загрузки URL репозиториев обозначаются специальными префиксами, вот что они означают:

  • Hit (Сущ) — список не изменился с момента предыдущей загрузки;
  • Ign (Игн) — репозиторий игнорируется, либо он слишком новый, либо произошла незначительная ошибка во время загрузки;
  • Get (Пол) — доступна новая версия и она будет загружена.

Когда кэш обновлен вы можете посмотреть для каких пакетов доступны обновления:

Аналогично можно посмотреть установленные пакеты apt:

Или всех доступных:

Затем можно обновить все пакеты в системе:

2. Установка пакетов

Чтобы установить пакет apt используйте команду install, например, для установки программы Gimp используйте команду install:

Если пакет установился неверно и вы хотите его переустановить, можно использовать опцию —reinstall:

Как видите, опции можно указывать не только перед командой, но и после неё, аналогично можно установить несколько пакетов сразу, например:

Чтобы не подтверждать установку вручную используем опцию -y. Допустим вы установили пакет с помощью dpkg и теперь хотите установить для него зависимости, запустите команду install без параметров с опцией -f или —fix-broken:

Можно скачать deb пакет в текущую папку без установки:

Скачивать пакеты надо от имени обычного пользователя, иначе тогда они не будут доступны для работы с ними. Если вам нужно установить пакет из файла, просто передайте путь к файлу команде install:

Чтобы установить определенную версию пакета просто укажите нужную версию после имени пакета через знак =, например:

Чтобы найти доступные версии можно использовать команду policy. Она отображает информацию о том какая версия установлена, а также какие версии доступны:

Если вы не знаете как точно называется пакет, можно выполнить поиск пакетов apt с помощью команды search:

3. Удаление пакетов

Чтобы удалить ненужный пакет используйте команду remove:

Однако если вы изменяли какие-либо конфигурационные файлы из состава пакета, то при таком способе удаления они останутся в системе, чтобы удалить всё полностью используйте команду purge:

Чтобы удалить лишние пакеты, которые в системе больше не нужны выполните команду autoremove:

А для очистки кэша пакетов — autoclean:

×

3. Контрольные суммы, Conffiles

В дополнение к скриптам сопровождающего и управляющим данным, уже упомянутым в предыдущих разделах, архив control.tar.gz пакета Debian может содержать другие интересные файлы:

ar p /var/cache/apt/archives/bash_4.4-2_amd64.deb control.tar.gz | tar -tzf -
./
./conffiles
./control
./md5sums
./postinst
./postrm
./preinst
./prerm

Первый — md5sums — содержит контрольные суммы MD5 для всех файлов пакета. Его главное преимущество заключается в том, что он позволяет dpkg —verify проверять, были ли эти файлы изменены с момента их установки

Обратите внимание, что когда этот файл не существует, dpkg будет генерировать его динамически во время установки (и сохранять его в базе данных dpkg, как и другие контрольные файлы).

conffiles перечисляет файлы пакетов, которые должны обрабатываться как файлы конфигурации. Файлы конфигурации могут быть изменены администратором, и dpkg попытается сохранить эти изменения во время обновления пакета.

По сути, в этой ситуации dpkg ведёт себя максимально разумно: если стандартный файл конфигурации не изменился между двумя версиями, он ничего не делает. Однако, если файл изменился, он попытается обновить этот файл. Возможны два случая: либо администратор не трогал этот файл конфигурации, и в этом случае dpkg автоматически устанавливает новую версию; или файл был изменён, и в этом случае dpkg спрашивает администратора, какую версию он хочет использовать (старую с модификациями или новую, поставляемую с пакетом). Чтобы помочь в принятии этого решения, dpkg предлагает отобразить diff (различия), которые показывает разницу между двумя версиями. Если вы решите сохранить старую версию, новая будет сохранена в том же месте в файле с суффиксом .dpkg-dist. Если вы выбираете новую версию, старая сохраняется в файле с суффиксом .dpkg-old. Другое доступное действие состоит в кратковременном прерывании dpkg для редактирования файла и попытке восстановления соответствующих изменений (ранее идентифицированных с помощью diff).

dpkg обрабатывает обновления файла конфигурации, но при этом регулярно прерывает свою работу, чтобы запросить ввод у администратора. Это может быть трудоёмким и неудобным. К счастью, вы можете указать dpkg автоматически отвечать на эти запросы. Опция —force-confold сохраняет старую версию файла, в то время как —force-confnew будет использовать новую версию. Эти варианты соблюдаются, даже если файл не был изменён администратором, что лишь редко даёт желаемый эффект. Добавление параметра —force-confdef указывает dpkg самостоятельно решать, когда это возможно (другими словами, когда исходный файл конфигурации не был затронут), и использует —force-confnew или —force-confold для других случаев.

Эти параметры применяются к dpkg, но в большинстве случаев администратор будет работать напрямую с программами aptitude или apt. Таким образом, необходимо знать синтаксис, используемый для указания параметров, передаваемых команде dpkg (их интерфейсы командной строки очень похожи).

apt -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" full-upgrade

Эти параметры могут быть сохранены непосредственно в конфигурации apt. Для этого просто напишите следующую строку в файл /etc/apt/apt.conf.d/local:

DPkg::options { "--force-confdef"; "--force-confold"; }

Включение этой опции в файл конфигурации означает, что она также будет использоваться в графическом интерфейсе, таком как aptitude.

И наоборот, вы также можете заставить dpkg задавать вопросы о файле конфигурации. Опция —force-confask указывает dpkg отображать вопросы о файлах конфигурации даже в тех случаях, когда они обычно не нужны. Таким образом, при переустановке пакета с этой опцией dpkg снова задаст вопросы для всех файлов конфигурации, изменённых администратором. Это очень удобно, особенно для переустановки исходного файла конфигурации, если он был удалён, а другая копия недоступна: обычная переустановка не будет работать, поскольку dpkg рассматривает удаление как форму допустимого изменения и, таким образом, не устанавливает нужный файл конфигурации.

Устанавливаем новое

Ситуация: мы хотим смотреть видео и слушать музыку у себя на компьютере, но плеера у нас ещё нет. Проверенный вариант — использовать открытый и бесплатный VLC Player. 

Сначала посмотрим информацию о пакете, используя команду — она выведет описание пакета и какие там зависимости:

В описании указан официальный адрес проекта, значит, скорее всего, это то, что нам нужно

Устанавливаем плеер командой . Sudo означает, что команда выполнится от имени суперпользователя (администратора) — без этого установить новую программу не получится. После установки у нас появилась новая программа в меню приложений:

После запуска появляется стандартный интерфейс медиаплеера

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: