Почему центр программного обеспечения не допускает многократную загрузку?

Мне было интересно, почему центр программного обеспечения не загружает все запрошенные приложения и устанавливает по одному, когда они заканчивают загрузку. Или вместо этого, почему центр программного обеспечения не загружает приложение, в то время как другое устанавливает

31
задан 18 June 2012 в 21:49

7 ответов

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

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

Позвольте мне уточнить:

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

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

Это можно исправить, не используя apt-get для установки пакетов, а скачивая пакеты вручную, а затем используя dpkg для их установки, как только они будут готовы. Вы все равно не сможете установить два пакета одновременно, но сможете начать загрузку новых пакетов, пока заканчиваются начатые ранее установки. В некоторых случаях это сэкономит довольно много времени, так что это хорошая идея. Но в большинстве случаев это не имеет значения, так что усилия лучше сосредоточить в другом месте.

30
ответ дан 18 June 2012 в 21:49

вы можете установить только один пакет за раз с помощью sudo apt-get install , но вы можете установить несколько пакетов с помощью одной команды. Примерно так:

  • sudo apt-get install ubuntu-desktop lubuntu-desktop

Это установит как ubuntu-desktop , и lubuntu-desktop , так и любые требуемые зависимости в правильная последовательность.

Также, когда вы обновляете свою систему с помощью sudo apt-get upgrade , вы сначала загружаете все программное обеспечение, а затем устанавливаете по одному пакету за раз.

Причина
, почему вы не можете установить несколько пакетов одновременно, заключается в том, что только один экземпляр может одновременно использовать привилегии apt-get . Это связано с тем, что apt-get блокирует источники программного обеспечения и блокирует их использование любой другой командой.

Пример
Допустим, вы каким-то образом запускаете 2 отдельных apt-get, как говорит @Rinzwind, тогда вы можете теоретически редактировать хотя бы исходный список одновременно с его использованием для поиска и установки нового программного обеспечения.Это может привести к тому, что установленная вами программа редактирует список источников и добавляет небезопасный репозиторий одновременно с обновлением системы. Это могло быть проблемой безопасности.

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


Windows ведет себя аналогичным образом при использовании "официального" установщика (MSI)

Даже в Windows можно одновременно установить несколько программ ... есть ли в этом преимущество или почему это необходимо в linux / ubuntu и т. д.

Пакеты, использующие официальный установщик Windows (MSI), БУДУТ ОТКАЗАТЬСЯ от одновременного запуска нескольких экземпляров. Это связано с тем, что база данных установщика MSI похожа на sources.list , информационные файлы dpkg и т. Д. - вам не нужно, чтобы более одного установщика изменяли / блокировали их за раз.

Но очень много. пакетов Windows используют сторонние установщики, такие как Installshield, NSIS и т. д., которые будут работать вместе друг с другом, поскольку им не нужно обращаться к базе данных MSI или изменять ее. Точно так же в Linux / Ubuntu никто не мешает вам одновременно запустить apt-get , tar -xzf и скрипт установки perl / bash :)

10
ответ дан 18 June 2012 в 21:49

Во-первых, пусть будет известно, что этот ответ получен из моего опыта работы с dpkg и apt. Я не смотрел на реальный код центра программного обеспечения, чтобы определить это.

Это предел дизайна основного программного обеспечения.

Часть системы dpkg, которую Ubuntu использует для пакетов, включает функцию, которая "блокирует" файл /var/lib/dpkg/lock, чтобы предотвратить перезапись нескольких dpkg (apt-get и Ubuntu Software Center) от перезаписывания себя и других плохих, злых вещей.

Что происходит при установке программного обеспечения? Что происходит, так это запускается sudo apt-get install chromium-browser (чтобы использовать Chromium в качестве примера).

И когда это происходит, срабатывает блокировка. После того, как вы добавите более одного пакета для установки, что произойдёт дальше, он будет ждать, пока не будет выполнена первая команда apt.

7
ответ дан 18 June 2012 в 21:49

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

  1. скопируйте всю папку установки, например: / home / user / apps
  2. Откройте терминал и введите:

    CD / home / user / apps

  3. , а затем введите еще раз

    sudo dpkg -i * .deb

дождитесь завершения установки.

0
ответ дан 18 June 2012 в 21:49

, вы загружаете пакет, пока другой устанавливается, например, в терминале1

sudo apt-get install vlc

, затем также загружайте другой пакет в другой терминал2

sudo apt-get download openssh-server

, чтобы увидеть другие доступные варианты. с помощью apt-get обратитесь к своему простому типу man

apt-get <press tab on your keyboard>
-1
ответ дан 18 June 2012 в 21:49

Причина, по которой два экземпляра apt-get не могут работать одновременно, заключается в том, что приложение читает / записывает несколько файлов, критичных для работы системы. Чтение или запись файла с помощью операции apt-get, когда другой выполняет с ним те же операции, приведет к проблемам с неправильной конфигурацией и / или повреждением файлов. Поэтому, когда происходит операция apt-get, она «блокирует» необходимые файлы, поэтому другая операция не может быть выполнена одновременно, иначе говоря, она поднимает флаг, который сообщает другим операциям, что файлы в настоящее время используются.

Однако одновременные загрузки файлов, необходимых для apt (а точнее загрузка из ряда источников) возможны с помощью команды apt-fast

https://github.com/ilikenwf/apt-fast

2
ответ дан 18 June 2012 в 21:49

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

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

4
ответ дан 18 June 2012 в 21:49

Другие вопросы по тегам:

Похожие вопросы: