Мне было интересно, почему центр программного обеспечения не загружает все запрошенные приложения и устанавливает по одному, когда они заканчивают загрузку. Или вместо этого, почему центр программного обеспечения не загружает приложение, в то время как другой устанавливает
apt
software-center
package-management
JesusLives ii
источник
источник
sudo apt-get install
может установить столько пакетов, сколько вы хотите. Вам нужно знать имя пакета.Ответы:
Это хороший вопрос. Это потому, что он основан на тех же пакетных инструментах, которые используют apt-get и другие. Они разработаны таким образом, что от вас требуется предоставить все устанавливаемые пакеты, а затем все остальное происходит автоматически. В большинстве случаев это очень хорошо, но для Центра программного обеспечения это вызывает некоторые проблемы. Вам сначала нужно будет выбрать пакеты, которые вы хотите установить, а затем нажать кнопку, чтобы фактически загрузить и установить их, либо вы должны поставить приложения в очередь, а затем загрузить и установить один за другим. Это обеспечивает гораздо лучший пользовательский опыт, если вы устанавливаете одно приложение, чем необходимость использовать эти дополнительные клики, но это также раздражает, когда вы «совершаете покупки».
Это можно исправить, поэтому я ожидаю, что в будущем это будет исправлено, но это действительно означает воссоздание или переписывание существующих инструментов, поэтому я не думаю, что это будет иметь очень высокий приоритет.
Позвольте мне уточнить:
Пакет может зависеть от других пакетов. Если эти пакеты недоступны, пакет не может быть установлен. Поэтому такие инструменты, как apt-get, сначала загрузят все запрошенные вами пакеты и все пакеты, от которых они зависят, и т. Д., А затем установят все из них. Таким образом, вы обычно предоставляете все нужные вам пакеты за один раз, и они сначала загружаются, а затем устанавливаются.
Когда вы решаете установить приложение в центре программного обеспечения, вы обычно хотите, чтобы оно сразу начало загружаться и устанавливаться. Но чтобы убедиться, что все в порядке, можно выполнить только одну установку за один раз. Поэтому, когда вы устанавливаете приложение, вам нужно подождать, пока это приложение будет полностью загружено и установлено, прежде чем начнется следующая загрузка и установка.
Это можно исправить, не используя apt-get для установки пакетов, а вместо этого загружая пакеты вручную, а затем используя dpkg для их установки, когда они будут готовы. Вы по-прежнему не сможете установить два пакета одновременно, но вы сможете начать загрузку новых пакетов, когда завершались ранее запущенные установки. В некоторых случаях это сэкономит довольно много времени, поэтому это хорошая идея. Но в большинстве случаев это не имеет большого значения, поэтому усилия лучше сосредоточить в другом месте.
источник
вы можете установить только один пакет одновременно
sudo apt-get install
, но вы можете установить несколько пакетов одной командой. Так:sudo apt-get install ubuntu-desktop lubuntu-desktop
Это установит
ubuntu-desktop
иlubuntu-desktop
и все зависимости, которые им требуются, в правильной последовательности.Кроме того, когда вы обновляете свою систему
sudo apt-get upgrade
, сначала загружаете все программное обеспечение, а затем устанавливаете один пакет за раз.Причина, по которой
вы не можете установить несколько пакетов одновременно, заключается в том, что только один экземпляр может использовать
apt-get
привилегии одновременно. Это потому, чтоapt-get
блокируетsoftware sources
и блокирует любую другую команду от их использования.Пример
Предположим, что вы как-то запускаете 2 отдельных apt-get, как говорит @Rinzwind, и теоретически вы можете, по крайней мере, редактировать список источников одновременно с его использованием для поиска и установки нового программного обеспечения. Это может привести к тому, что установленная вами программа отредактирует список источников и добавит небезопасный репозиторий одновременно с обновлением системы. Это может быть проблемой безопасности.
Другой пример
Кроме того, если вы редактируете список источников с помощью двух отдельных команд, то при сохранении вы заменяете самую новую версию, которая будет последней. Это означает, что команда в середине не будет иметь никакого эффекта, так как вы сохраните поверх старой версии.
Windows ведет себя аналогично, используя «официальный» (MSI) установщик
Пакеты, в которых используется официальный установщик Windows (MSI), БУДУТ ОТКАЗАНЫ для запуска более одного экземпляра одновременно. Это связано с тем, что база данных установщика MSI похожа на
sources.list
информационные файлы dpkg и т. Д. - вам не нужно, чтобы один установщик изменял / блокировал их одновременно.Но во многих пакетах Windows используются сторонние установщики, такие как Installshield, NSIS и т. Д., Которые будут работать рядом друг с другом, поскольку им не требуется доступ к базе данных MSI / ее изменение. Точно так же в Linux / Ubuntu никто не мешает вам запускать сценарии установки
apt-get
a, atar -xzf
и perl / bash все одновременно :)источник
sudo
в то же время, но когда дело доходит до управления пакетами, только одно такое приложение может установить или удалить пакеты в данный момент времени, так как работает ,apt
получает блокировку наsources.list
и , следовательно , если таковые имеются попытается запустить другое приложение управления пакетами, оно не будет заблокировано для этого файла и, следовательно, не будет запущено.Во-первых, пусть будет известно, что этот ответ основан на том, что я почерпнул из своего опыта с
dpkg
иapt
. Я не смотрел на фактический код центра программного обеспечения, чтобы определить это.Это предел дизайна базового программного обеспечения.
Часть
dpkg
системы, которую Ubuntu использует для пакетов, включает в себя функцию, которая «блокирует»/var/lib/dpkg/lock
файл, чтобы предотвратить перезапись самими множествомdpkg
(apt-get
и Ubuntu Software Center являются внешними интерфейсами) и других плохих, злых вещей.Что происходит при установке программного обеспечения? Что происходит, это начинается
sudo apt-get install chromium-browser
(использовать Chromium в качестве примера).И когда это происходит, включается блокировка. Как только вы добавляете более одного пакета для установки, что происходит дальше, он ждет, пока первый не будет выполнен, прежде чем он начнет следующую
apt
команду.источник
Некоторые действия, такие как обновление меню, индексация шрифтов и перенастройка библиотек, должны выполняться только один раз, если все пакеты установлены одновременно. Надеемся, что второе преимущество не должно происходить часто, но если вы хотите установить пакеты, исключающие друг друга, вы знаете об этом до загрузки всех из них.
Последнее преимущество особенно важно, когда вы устанавливаете или обновляете много пакетов одновременно: если нужно ответить на вопросы, они все придут друг за другом во время процесса установки. Таким образом, вы можете продолжать работать, а не глючить каждые 5 минут другим вопросом.
источник
Причина, по которой два экземпляра apt-get не могут работать одновременно, заключается в том, что приложение считывает / записывает несколько файлов, важных для работы системы. Чтение или запись файла с помощью операции apt-get, в то время как другой выполняет те же операции с ним, приведет к проблемам с неправильной конфигурацией и / или повреждением файлов. Поэтому, когда происходит операция apt-get, он «блокирует» нужные ему файлы, поэтому другая операция не может быть выполнена одновременно, иначе он поднимает флаг, который сообщает другим операциям, что файлы используются в данный момент.
Однако одновременная загрузка файлов, необходимых для apt (или, скорее, загрузка из нескольких источников), возможна с помощью команды apt-fast
https://github.com/ilikenwf/apt-fast
источник
простой способ установки нескольких файлов за один раз, выполните следующие действия
Откройте терминал и введите:
а затем введите снова
подождите до завершения установки.
источник
Вы получаете загрузку пакета, в то время как другой устанавливает, например, в терминал1
затем также загрузите другой пакет в другой терминал2
чтобы увидеть другие опции, доступные с apt-get, обратитесь к его простому типу man
источник