Ускорение установки apt-get для многих пакетов

322
user1330734

Я заметил, что большая часть времени, затрачиваемого на apt-get installустановку множества пакетов / зависимостей, связана со многими индивидуальными запросами пакетов / зависимостей, даже если общая загрузка может быть небольшой.

Это единственный способ работы apt-get installили есть способ отправить один и тот же запрос для многих пакетов, чтобы получить одну загрузку tar-blob?

Редактировать
Чтобы уточнить, мне известны флаги -y, которые делают установку неинтерактивной.
Чтобы быть более конкретным, я исхожу из контекста создания изображений с помощью Docker, где изменение / кеширование Dockerfile приводит к повторной загрузке пакетов.

Пример приведен в выходных данных ниже, где запрашивается много пакетов <100 КБ.

RUN apt-get update && apt-get install -y arachni beef-xss ...  ... Get:76 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libxcb-present0 amd64 1.12-1 [95.8 kB] Get:77 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libxcb-sync1 amd64 1.12-1 [99.2 kB] Get:78 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libxcb-xfixes0 amd64 1.12-1 [99.6 kB] Get:79 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libxshmfence1 amd64 1.2-1+b2 [7922 B] Get:80 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libegl-mesa0 amd64 17.2.5-1 [120 kB] Get:81 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libegl1 amd64 1.0.0-1 [33.0 kB] Get:82 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libglapi-mesa amd64 17.2.5-1 [60.4 kB] Get:83 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libxcb-glx0 amd64 1.12-1 [113 kB] Get:84 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libxfixes3 amd64 1:5.0.3-1 [21.9 kB] Get:85 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libxdamage1 amd64 1:1.1.4-3 [14.4 kB] Get:86 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libxxf86vm1 amd64 1:1.1.4-1+b2 [20.8 kB] Get:87 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libdrm-amdgpu1 amd64 2.4.89-1 [28.2 kB] Get:88 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libpciaccess0 amd64 0.13.4-1+b2 [50.0 kB] Get:89 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libdrm-intel1 amd64 2.4.89-1 [69.3 kB] Get:90 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libdrm-nouveau2 amd64 2.4.89-1 [25.9 kB] Get:91 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libdrm-radeon1 amd64 2.4.89-1 [31.0 kB] Get:92 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libelf1 amd64 0.170-0.2 [162 kB] Get:93 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libedit2 amd64 3.1-20170329-1 [85.2 kB] Get:94 http://mirror.aarnet.edu.au/pub/kali/kali kali-rolling/main amd64 libllvm5.0 amd64 1:5.0.1-2 [13.7 MB] ... 
3
* Это единственный способ, с помощью которого работает apt-get install, или есть способ отправить один и тот же запрос для многих пакетов для получения одной загрузки tar-блоба? * ** Нет, ** нет. 6 лет назад 0

3 ответа на вопрос

0
Alex_Krug

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

Чтобы не отвечать каждый раз на эти запросы, вы можете сразу указать свой ответ по умолчанию, указав -yфлаг:

sudo apt-get install -y package 

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

sudo apt-get dist-upgrade -y 

http://manpages.ubuntu.com/manpages/zesty/man8/apt-get.8.html

0
Jochen Lutz

Вы можете ускорить ваши apt-операции, настроив либо отдельное зеркало репозитория, либо HTTP-прокси. Таким образом, вы сокращаете время прохождения по TCP-протоколу, что ускоряет выполнение всех операций.

0
unixbhaskar

Используйте «apt-fast» ..it будет загружать несколько пакетов одновременно .. так что это ускоряет процесс. Иди и найди это .. Я не думаю, что это будет трудно найти.