Package management

Установка с помощью пакетного менеджера

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

Перед началом установки пакетов рекомендуется обновить данные о версиях и зависимостях в репозитории следующей командой:

Скриншот №1. Обновление данных о версиях и зависимостях в репозитории

Если необходимо уточнить название пакета, который требуется установить — ищем в локальном кэше менеджер по ключевым словам, например, web server:

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

Скриншот №2. Поиск по ключевым словам

Выбираем нужный нам пакет — в данном случае это apache2, и устанавливаем его:

Пакетный менеджер проверяет зависимости, версии, сравнивает их с уже установленными через apt-get пакетами, после чего выдает список необходимых для установки компонентов и запрашивает разрешение на продолжение операции:

Скриншот №3. Установка пакета

Нажимаем y и дожидаемся окончания установки.

Часто используемые команды пакетного менеджера:

  • apt-get update — обновление информации о пакетах и зависимостях в подключенных репозиториях;
  • apt-get upgrade — обновление всех установленных пакетов до актуальной версии, имеющейся в репозитории;
  • apt-get install имя_пакета — установка пакета;
  • apt-get remove имя_пакета — удаление пакета;
  • apt-get download имя_пакета — скачать deb-пакет в локальную папку;
  • apt-cache search ключевые слова — поиск пакета по ключевым словам;
  • apt-cache show имя_пакета — показать информацию о пакете;
  • apt-cache depends имя_пакета — показать от каких компонентов зависит данный пакет;
  • apt-cache rdepends имя_пакета — показать какие компоненты зависят от пакета;
  • apt-mark hold имя_пакета — зафиксировать текущую версию пакета, прекратить обновление пакета;
  • apt-mark unhold имя_пакета — разрешить обновление пакета.

Использование

В APT входит несколько утилит, выполняющих отдельные задачи.

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

apt-get

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

Основные команды:

  • — Обновить информацию о пакетах, содержащихся в репозиториях.
  • — Установить пакет foo. Скачивание, установка и настройка происходят автоматически. Если для настройки пакета foo нужны дополнительные сведения, будет показан запрос к пользователю.
  • — Обновление пакетов, для которых в репозитории доступны новые версии.
  • — Обновление пакетов, требующих разрешения зависимостей (установка дополнительных или удаление конфликтующих пакетов).
  • — Удаление пакета foo из системы.
  • — Удаление пакета foo и очистка системы от его конфигурационных файлов. Файлы настроек в домашних каталогах пользователей удалены не будут.
  • — Удаление пакета, который более не нужен в системе. Используется для очистки системы от ненужных пакетов. Факт, что пакет более не нужен, определяется следующим образом: если пакет был установлен не сам по себе, а как зависимость для другого пакета, который впоследствии был удалён, значит этот пакет тоже уже не нужен в системе.
  • — Получение исходных текстов пакета foo.
  • — Получение зависимостей для сборки пакета foo.

Починка базы пакетов

apt-get также используется для устранения сбоев в базе пакетов вызванных нарушенными зависимостями. Разрешение зависимостей производится командой:

sudo apt-get install -f

apt-cache

apt-cache – утилита, позволяющая выполнять запросы к кешу APT.

Основные команды:

  • — Поиск пакета по части названия или описания. Поддерживает регулярные выражения.
  • — Информация о пакете: версия, размер, описание и т. п.
  • — Зависимости указанного пакета.
  • — Обратные зависимости пакета.

apt-key

apt-key служит для добавления ключей от репозиториев в систему. Ключи защищают репозитории от возможности подделки пакета. Подробнее смотрите в статье .

Основные команды:

  • — Добавление ключа в базу доверенных ключей.
  • — Удаление ключа из доверенных.

Conclusion

We have a long list of Dpkg commands used for various operations on a particular file or package. Still, we have focused only on the dpkg –configure command in this write-up. We have explained the purpose of dpkg –configure while covering the use of dpkg commands on Debian-based systems.

Frequently, users end up getting configuration problems when installing a new program or updating an application. We also have described the reasons that cause such errors. Therefore, we have provided all the possible solutions to overcome this problem.

We hope you have found this article helpful and informative. If you still have any queries on suggestions, please let us know in the comment section.

apt-get update && apt-get upgrade

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

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

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

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

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

Internal environment¶

DPKG_ROOT
Defined by dpkg on the maintainer script environment to indicate
which installation to act on (since dpkg 1.18.5). The value is intended to
be prepended to any path maintainer scripts operate on. During normal
operation, this variable is empty. When installing packages into a
different instdir, dpkg normally invokes maintainer scripts
using chroot(2) and leaves this variable empty, but if
—force-script-chrootless is specified then the chroot(2)
call is skipped and instdir is non-empty.
DPKG_ADMINDIR
Defined by dpkg on the maintainer script environment to indicate
the dpkg administrative directory to use (since dpkg 1.16.0). This
variable is always set to the current —admindir value.
DPKG_SHELL_REASON
Defined by dpkg on the shell spawned on the conffile prompt to
examine the situation (since dpkg 1.15.6). Current valid value:
conffile-prompt.
DPKG_CONFFILE_OLD
Defined by dpkg on the shell spawned on the conffile prompt to
examine the situation (since dpkg 1.15.6). Contains the path to the old
conffile.
DPKG_CONFFILE_NEW
Defined by dpkg on the shell spawned on the conffile prompt to
examine the situation (since dpkg 1.15.6). Contains the path to the new
conffile.
DPKG_HOOK_ACTION
Defined by dpkg on the shell spawned when executing a hook action
(since dpkg 1.15.4). Contains the current dpkg action.
DPKG_RUNNING_VERSION
Defined by dpkg on the maintainer script environment to the version
of the currently running dpkg instance (since dpkg 1.14.17).
DPKG_MAINTSCRIPT_PACKAGE
Defined by dpkg on the maintainer script environment to the
(non-arch-qualified) package name being handled (since dpkg 1.14.17).
DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT
Defined by dpkg on the maintainer script environment to the package
reference count, i.e. the number of package instances with a state greater
than not-installed (since dpkg 1.17.2).
DPKG_MAINTSCRIPT_ARCH
Defined by dpkg on the maintainer script environment to the
architecture the package got built for (since dpkg 1.15.4).
DPKG_MAINTSCRIPT_NAME
Defined by dpkg on the maintainer script environment to the name of
the script running, one of preinst, postinst, prerm
or postrm (since dpkg 1.15.7).
DPKG_MAINTSCRIPT_DEBUG
Defined by dpkg on the maintainer script environment to a value
(‘’ or ‘1’) noting whether
debugging has been requested (with the —debug option) for the
maintainer scripts (since dpkg 1.18.4).

How to Install Deb Files (Packages) on Ubuntu

27 Января 2021
|

Ubuntu

Deb — это формат установочного пакета, используемый всеми дистрибутивами на основе Debian.

Хранилища Ubuntu содержат тысячи пакетов DEB , которые могут быть установлены либо из Ubuntu Software Center или из командной строки с помощью и утилиты.

Многие приложения не включены в Ubuntu или какие-либо сторонние репозитории. Эти приложения необходимо загрузить с веб-сайтов разработчика и установить вручную. Будьте особенно осторожны при установке пакетов deb из неофициальных источников.

Скачивание файлов deb 

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

Запустите свой веб-браузер и перейдите на страницу загрузки TeamViewer для Linux . Загрузите пакет deb, щелкнув ссылку для загрузки Ubuntu и Debian.

Если вы предпочитаете терминал, вы можете загрузить файл deb с помощью или :

Установка файлов deb из командной строки 

Когда дело доходит до установки пакетов deb из командной строки, в вашем распоряжении несколько инструментов. В следующих разделах мы покажем вам , как использовать , и утилиты для установки пакетов DEB.

Установка файлов deb с помощью  

— это утилита командной строки для установки, обновления, удаления и иного управления пакетами deb в Ubuntu, Debian и связанных дистрибутивах Linux. Он был представлен в Ubuntu 14.04 и сочетает в себе наиболее часто используемые команды из и .

Чтобы установить локальные пакеты deb, вам необходимо указать полный путь к файлу deb. Если файл находится в вашем текущем рабочем каталоге, вместо того, чтобы вводить абсолютный путь, вы можете добавить его перед именем пакета. В противном случае попытается получить и установить пакет из репозиториев Ubuntu.

    Вам будет предложено ввести, чтобы продолжить:

Менеджер пакетов разрешит и установит все зависимости пакетов.

Установка файлов deb с помощью  

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

Чтобы установить пакет deb с типом:

Введите, когда будет предложено, и разрешит и установит пакет deb и все его зависимости за вас.

Установка файлов deb с помощью  

это низкоуровневый менеджер пакетов для систем на базе Debian. Используйте опцию (или ) для установки пакетов deb с .

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

Установка пакетов deb с помощью графического интерфейса 

Если вы предпочитаете использовать графический интерфейс, просто загрузите файл deb и откройте его двойным щелчком.

Это откроет центр графического программного обеспечения дистрибутива по умолчанию:

Нажмите кнопку «Установить», и откроется диалоговое окно «Проверка подлинности».

    Введите пароль администратора и нажмите кнопку «Аутентификация».

    Установка может занять некоторое время в зависимости от размера файла и его зависимостей. После установки пакета deb кнопка «Установить» в программном центре Ubuntu изменится на «Удалить».

Вот и все, приложение установлено в вашей системе и вы можете начать им пользоваться.

Мы показали вам, как установить локальные файлы deb в Ubuntu. При установке пакетов из командной строки предпочитайте использовать, поскольку он разрешит и установит все зависимости пакетов.

4 ответа

104

Где найти эту информацию в системе

Вы можете найти эту информацию в главе вывода dpkg -l, поскольку это просто соглашение о форматировании:

Скопировано здесь для справки:

Описание каждого поля

Как видно из первых трех строк:

Первая буква -> желаемое состояние пакета («состояние выбора»):

  • u … неизвестно
  • i … установить
  • r … remove /deinstall
  • p … очистить (удалить, включая файлы конфигурации)
  • h … hold

Вторая буква -> текущее состояние пакета:

  • n … не установлен
  • i … установлен
  • c … config-files (только файлы конфигурации установлены)
  • U … распакованный
  • F … с половиной конфигурации (по какой-то причине сбой конфигурации)
  • h … полуинсталляция (по какой-то причине не удалось выполнить установку)
  • W … триггеры — ожидаемые (пакет ждет триггера из другого пакета)
  • t … триггеры-ожидающие (пакет был запущен)

Третья буква -> (обычно вы не должны видеть третью букву, а вместо нее — пробел):

R … reinst-required (пакет сломан, требуется переустановка)

21

В первой букве отображается состояние ожидаемого пакета.
Во второй букве отображается, что такое текущий статус пакета.

Итак, например:

означает «Он должен быть установлен и установлен», тогда как означает «он удален /удален, но все файлы конфигурации все еще существуют» р>

9

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

Информация для чтения -l | Выход из списка находится в

и не в

dpkg просто действует как front-end в этих случаях

Introduction

Ubuntu’s package management system is derived from the same system used by the Debian GNU/Linux distribution. The package files contain all of the necessary files, meta-data, and instructions to implement a particular functionality or software application on your Ubuntu computer.

Debian package files typically have the extension , and usually exist in repositories which are collections of packages found online or on physical media, such as CD-ROM discs. Packages are normally in a pre-compiled binary format; thus installation is quick and requires no compiling of software.

Many packages use dependencies. Dependencies are additional packages required by the principal package in order to function properly. For example, the speech synthesis package depends upon the package , which is a package supplying the ALSA sound library tools needed for audio playback. In order for festival to function, it and all of its dependencies must be installed. The software management tools in Ubuntu will do this automatically.

Method 1

A program Installation goes through the following steps in Debian systems.

  1. 1It extracts the files from the package.
  2. In case the app is already installed on the system, it initiates a new installation.
  3. The file unpacking starts along with backup. In case program installation gets interrupted for any reason, the system can start a new installation again.
  4. Lastly, the configuration process gets executed

Sometimes, if the program doesn’t get properly executed, it throws the error mentioned above, and it will create issues while installing or updating programs. Now execute the following command for fixing this error:

$ sudo dpkg —configure package… -a or —pending

When we run -a or –pending parameter with dpkg command rather than providing package name, all unpacked, but unconfigured packages are configured.

Now, start the installation or update process again to check if it is working or not. If it persists, you can try the following solutions.

What is dpkg Command?

Let’s start with the basics, assuming you are using Debian, as dpkg configure is used in Debian-based systems. That’s why you are here to learn about this command. As said above, it is a package manager used for Debian.

So, what is a package manager? If you use Linux-based operating systems, you will often hear the term “package manager” term.

You probably have found .deb files (or packages) in your operating system. These files are called packages in general language. A package carries all types of files that come with a particular type of application.

The package manager is used to manage these packages. For the Debian system, we can use the dpkg command as a package manager for Installing, removing, and upgrading packages in Debian and Debian-based systems.

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

Если пакет вам больше не нужен, то вы можете удалить его из вашей системы,
используя APT. Чтобы это сделать просто введите: apt-get remove
package
. Например:

     @[/] # apt-get remove gnome-panel
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following packages will be REMOVED:
       gnome-applets gnome-panel gnome-panel-data gnome-session 
     0 packages upgraded, 0 newly installed, 4 to remove and 1  not upgraded.
     Need to get 0B of archives. After unpacking 14.6MB will be freed.
     Do you want to continue? [Y/n]

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

Вышеприведенная команда удалит пакеты, но оставит их
настроечные файлы, если они есть. Для полного удаления пакета запустите:

     @[/] # apt-get --purge remove gnome-panel
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following packages will be REMOVED:
       gnome-applets* gnome-panel* gnome-panel-data* gnome-session* 
     0 packages upgraded, 0 newly installed, 4 to remove and 1  not upgraded.
     Need to get 0B of archives. After unpacking 14.6MB will be freed.
     Do you want to continue? [Y/n]

Обратите внимание на ‘*’ после имен. Это указывает на то, что будут удалены
настроечные файлы для каждого из этих пакетов.. Аналогично действию install, вы можете инвертировать действие
remove для определенных пакетов

В случае удаления, если вы
добавите знак ‘+’ справа от имени пакета, то пакет будет
установлен, а не удален.

Аналогично действию install, вы можете инвертировать действие
remove для определенных пакетов. В случае удаления, если вы
добавите знак ‘+’ справа от имени пакета, то пакет будет
установлен, а не удален.

     @[/] # apt-get --purge remove gnome-panel nautilus+
     Reading Package Lists... Done
     Building Dependency Tree... Done
     The following extra packages will be installed:
       bonobo libmedusa0 libnautilus0 nautilus 
     The following packages will be REMOVED:
       gnome-applets* gnome-panel* gnome-panel-data* gnome-session* 
     The following NEW packages will be installed:
       bonobo libmedusa0 libnautilus0 nautilus 
     0 packages upgraded, 4 newly installed, 4 to remove and 1  not upgraded.
     Need to get 8329kB of archives. After unpacking 2594kB will be used.
     Do you want to continue? [Y/n]

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

Method 2

Run the following command to remove the updates first:

$ cd varlibdpkgupdates
$ sudo rm *

Now, try to install or update the app again. For that, we will use the following command:

$ sudo apt update
$ sudo apt upgrade

If the system still throws errors, then it is because the system or other programs are using the file to update applications or the system, resulting in the locking of dpkg files.

When two processes simultaneously use the same file, the system locks the file, preventing unknown errors. You can check if the system is locking the dpkg file. Enter this command to check further:

$ ps aux | grep -i ap

After running the above command, if you see the result like usr/lib/apt/apt.systemd.daily lock_is_held update, this means the file is being used in another process run in the background.

It would help if you either waited to finish the background process or manually check and remove the locked files using the following command.

To check all the locked dpkg files, we will use the lsof command. lsof command list all the services running in the system. Therefore, we have used the following command one by one to get processes holding the dpkg file.

$ sudo lsof varlibdpkglock
$ sudo lsof varlibaptlistslock
$ sudo lsof varcacheaptarchiveslock

You will see that the command you have just entered above throws the one or more processes with the ID that you can terminate using the force kill command.

$ sudo kill -9 <ID>

Also, you can remove the lock files with these commands:

$ sudo rm varlibaptlistslock
$ sudo rm varcacheaptarchiveslock

Finally, run this command to initiate the update process.

$ sudo apt-get update

8.5 Как определить пакет, которому принадлежит определённый файл?

Чтобы определить, в каком пакете содержится файл с именем foo, выполните одну из следующих команд:

dpkg —search имя_файлаЭта команда ищет имя_файла в установленных пакетах. (Это, в настоящий момент, эквивалентно поиску всех файлов с расширением .list в каталоге /var/lib/dpkg/info/ и выводу имён всех пакетов, которые содержат заданное имя файла и отклонения (diversions).)Более быстрая альтернатива этому — программа dlocate.
dlocate -S имя_файла

zgrep foo Contents-ARCH.gzЭта команда ищет файлы, содержащие в своих полных именах путей подстроку foo. Файлы Contents-ARCH.gz (где ARCH представляет нужную архитектуру) расположены в основных каталогах пакетов (main, non-free, contrib) на FTP-сайте Debian (то есть, в /debian/dists/jessie). Файл Contents относится только к тем пакетам, что расположены в структуре подкаталогов того же каталога, где находится и он сам. Поэтому, чтобы найти пакет, содержащий файл foo, пользователю нужно искать более чем в одном файлеContents.Преимущество этого метода над dpkg —search состоит в том, что будут найдены файлы в тех пакетах, которые могут быть не установлены в вашей системе.

apt-file search fooЕсли вы установите пакет apt-file, то приведённая выше команда выполнит поиск файлов, содержащих в своих полных путях подстроку или регулярное выражение foo. Преимущество этой команды перед приведёнными ранее в том, что вам не нужно будет получать файлы Contents-ARCH.gz, так как это будет сделано автоматически для всех источников, описанных в /etc/apt/sources.list, при запуске (с правами суперпользователя) команды apt-file update.

-Просмотр списка установленных пакетов

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

А если нужно посмотреть и версии:

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

-Обновление списка доступных пакетов

-Определить, какие пакеты зафиксированы через aptitude

-Поиск проблемных пакетов

Следующая команда покажет пакеты установленные частично (Half-Installed), настройка которых не удалась (Failed-Config), а также все пакеты в ошибочных состояниях:

-Наличие новых версий установленных пакетов:

-Установка конкретной версии пакета:

При этом версия должна указываться именно такая, как она определяется через apt-cache showpkg php5.

-Удаление «мёртвых» пакетов:

После установки пакета, с ним тянется зависимости — другие пакеты. Но если вы удалили пакет, как избавится от этих установленных по зависимости пакетов? Нужно выполнить такие команды:

рекомендуется (использовать периодически) для очистки от пакетов .deb которые больше не используются.

удаляет неудалённые зависимости от уже удалённых пакетовТак же можно чистить папку архива пакетов /var/cache/apt/archives/

-Поиск пакета, содержащего нужный файл

-Проверить зависимости

— От каких пакетов зависит нужный пакет

Описание каждого поля

Поскольку Вы видите от первых трех строк:

Первая буква-> желаемое состояние пакета («выбор указывают»):

  • u… неизвестный
  • я… устанавливаю
  • r… удаляют/деинсталлируют
  • p… производят чистку (удалите включая файлы конфигурации),
  • h… содержат

Вторая буква-> текущее состояние пакета:

  • n… не — установленный
  • я… установил
  • c… файлы конфигурации (только файлы конфигурации установлены),
  • U… распакованный
  • F… полунастроенный (конфигурация перестала работать по некоторым причинам),
  • h… полуустановленный (установка перестала работать по некоторым причинам),
  • W… ожидаемый триггерами (пакет ожидает триггера от другого пакета),
  • t… триггерное ожидание (пакет был инициирован),

Третья буква-> состояние ошибки (Вы обычно не должны видеть третью букву, но пространство, вместо этого):

R… reinst-необходимый (поврежденный пакет, требуемая переустановка)

Constraining upgrade versions

By default, reinstalling or updating a package always installs the latest version available from the package source.

In projects using the management format, however, you can specifically constrain the version range. For example, if you know that your application works only with version 1.x of a package but not 2.0 and above, perhaps due to a major change in the package API, then you’d want to constrain upgrades to 1.x versions. This prevents accidental updates that would break the application.

To set a constraint, open in a text editor, locate the dependency in question, and add the attribute with a version range. For example, to constrain updates to version 1.x, set to :

In all cases, use the notation described in .

Automatic Updates

The unattended-upgrades package can be used to automatically install updated packages and can be configured to update all packages or just install security updates. First, install the package by entering the following in a terminal:

To configure unattended-upgrades, edit and adjust the following to fit your needs:

Certain packages can also be blacklisted and therefore will not be automatically updated. To blacklist a package, add it to the list:

To enable automatic updates, edit and set the appropriate apt configuration options:

The above configuration updates the package list, downloads, and installs available upgrades every day. Those actions are triggered by timer units at a set time but with a random delay: and . These timers activate the correspondent services that run script.

However, it may happen that if the server is off at the time the timer unit elapses, the timer will be triggered immediately at the next startup. As a result, they will often run on system startup
and thereby cause immediate activity and hold the apt-lock.

In many cases that is beneficial, but in some cases it might be counter-productive. Examples are administrators with many shut down machines or VM images that are only started for some quick action that then is delayed or even blocked by the unattended upgrades. To adapt this behaviour, we can change/override the configuration of both apt’s timer units []. To do so use and override the Persistent attribute like (example of such an override):

The local download archive is cleaned every week. On servers upgraded to newer versions of Ubuntu, depending on your responses, the file listed above may not be there. In this case, creating a new file of this name should also work.

The results of unattended-upgrades will be logged to .

Using Update-Package

Being mindful of the described below, you can easily reinstall any package using the Update-Package command in the Visual Studio Package Manager Console (Tools > NuGet Package Manager > Package Manager Console).

Using this command is much easier than removing a package and then trying to locate the same package in the NuGet gallery with the same version. Note that the switch is optional.

The same command without updates a package to a newer version, if applicable. The command gives an error if the package in question is not already installed in a project; that is, does not install packages directly.

By default, affects all projects in a solution. To limit the action to a specific project, use the switch, using the name of the project as it appears in Solution Explorer:

To update all packages in a project (or reinstall using ), use without specifying any particular package:

To update all packages in a solution, just use by itself with no other arguments or switches. Use this form carefully, because it can take considerable time to perform all the updates:

Updating packages in a project or solution using PackageReference always updates to the latest version of the package (excluding pre-release packages). Projects that use can, if desired, limit update versions as described below in .

For full details on the command, see the Update-Package reference.

Environment Variables

DPKG_NO_TSTP
Define this to something if you prefer dpkg starting a new shell rather than suspending itself, while doing a shell escape.
SHELL
The program dpkg will execute when starting a new shell.
COLUMNS
Sets the number of columns dpkg should use when displaying formatted text. Currently only used by -l.
DPKG_RUNNING_VERSION
Defined by dpkg on the maintainer script environment to the version of the currently running dpkg instance.
DPKG_MAINTSCRIPT_PACKAGE
Defined by dpkg on the maintainer script environment to the package name being handled.
DPKG_MAINTSCRIPT_ARCH
Defined by dpkg on the maintainer script environment to the architecture the package got built for.

APT Configuration

Configuration of the Advanced Packaging Tool (APT) system repositories is stored in the file and the directory. An example of this file is referenced here, along with information on adding or removing repository references from the file.

You may edit the file to enable repositories or disable them. For example, to disable the requirement of inserting the Ubuntu CD-ROM whenever package operations occur, simply comment out the appropriate line for the CD-ROM, which appears at the top of the file:

Extra Repositories

In addition to the officially supported package repositories available for Ubuntu, there exist additional community-maintained repositories which add thousands more packages for potential installation. Two of the most popular are the universe and multiverse repositories. These repositories are not officially supported by Ubuntu, but because they are maintained by the community they generally provide packages which are safe for use with your Ubuntu computer.

Many other package sources are available, sometimes even offering only one package, as in the case of package sources provided by the developer of a single application. You should always be very careful and cautious when using non-standard package sources, however. Research the source and packages carefully before performing any installation, as some package sources and their packages could render your system unstable or non-functional in some respects.

By default, the universe and multiverse repositories are enabled but if you would like to disable them edit and comment the following lines:

Why it didn’t work

How remove works

If we look at ‘s man page a little closer we can see why the configuration files are still there.

As the manpage clearly says, remove will remove the package but leaves configuration files in place. This explains why the directory was lingering after removing the package; but it doesn’t explain why a subsequent installation doesn’t re-deploy the configuration files.

Package States

If we use to look at the package, we will start to see the issue.

With the package manager a package can have more states than just being installed or not-installed. In fact there are several package states with .

  • not-installed — The package is not installed on this system
  • config-files — Only the configuration files are deployed to this system
  • half-installed — The installation of the package has been started, but not completed
  • unpacked — The package is unpacked, but not configured
  • half-configured — The package is unpacked and configuration has started but not completed
  • triggers-awaited — The package awaits trigger processing by another package
  • triggers-pending — The package has been triggered
  • installed — The packaged is unpacked and configured OK

If you look at the first column of the it shows . The in this column means the package is , which as we saw above means the configuration files are left on the system. The in this column shows that the package is in the state of . Meaning, only the configuration files are deployed on this system.

When running the package manager will lookup the current state of the package, when it sees that the package is already in the state it simply skips the configuration file portion of the package installation. Since I manually removed the configuration files outside of the or process the configuration files are gone and will not be deployed with a simple .

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

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