LINUX.ORG.RU

Зачем ядру 20Гб ( emerge -auDN debian-sources ) ?

 , ,


0

1

Здравствуйте, уважаемые форумчане, пользователи Линукс!

Portage при обновлении ядра debian-sources до 4.14.12 выдал ошибку: There is NOT at least 20 GiB disk space at «/var/tmp/portage/sys-kernel/debian-sources-4.14.12/temp».

# eix-sync
...
# emerge -auDN debian-sources

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  NS    ] sys-kernel/debian-sources-4.14.12 [4.8.15, 4.14.2] USE="binary" 

Would you like to merge these packages? [Yes/No] yes
>>> Recording sys-kernel/debian-sources:4.14.2 in "world" favorites file...

>>> Verifying ebuild manifests
>>> Running pre-merge checks for sys-kernel/debian-sources-4.14.12
 * Checking for at least 20 GiB disk space at "/var/tmp/portage/sys-kernel/debian-sources-4.14.12/temp" ...                                              [ !! ]
 * There is NOT at least 20 GiB disk space at "/var/tmp/portage/sys-kernel/debian-sources-4.14.12/temp"
 * 
 * Space constraints set in the ebuild were not met!
 * The build will most probably fail, you should enhance the space
 * as per failed tests.
 * 
 * ERROR: sys-kernel/debian-sources-4.14.12::core-kit failed (pretend phase):
 *   Build requirements not met!
 * 
 * Call stack:
 *                       ebuild.sh, line 121:  Called pkg_pretend
 *   debian-sources-4.14.12.ebuild, line  41:  Called check-reqs_pkg_setup
 *               check-reqs.eclass, line  99:  Called check-reqs_output
 *               check-reqs.eclass, line 255:  Called die
 * The specific snippet of code:
 *   		[[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && \
 *   			die "Build requirements not met!"
 * 
 * If you need support, post the output of `emerge --info '=sys-kernel/debian-sources-4.14.12::core-kit'`,
 * the complete build log and the output of `emerge -pqv '=sys-kernel/debian-sources-4.14.12::core-kit'`.
 * The complete build log is located at '/var/tmp/portage/sys-kernel/debian-sources-4.14.12/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-kernel/debian-sources-4.14.12/temp/die.env'.
 * Working directory: '/var/tmp/portage/sys-kernel/debian-sources-4.14.12/homedir'
 * S: '/var/tmp/portage/sys-kernel/debian-sources-4.14.12/work/linux-4.14.12'

 * Messages for package sys-kernel/debian-sources-4.14.12:

 * There is NOT at least 20 GiB disk space at "/var/tmp/portage/sys-kernel/debian-sources-4.14.12/temp"
 * 
 * Space constraints set in the ebuild were not met!
 * The build will most probably fail, you should enhance the space
 * as per failed tests.
 * 
 * ERROR: sys-kernel/debian-sources-4.14.12::core-kit failed (pretend phase):
 *   Build requirements not met!
 * 
 * Call stack:
 *                       ebuild.sh, line 121:  Called pkg_pretend
 *   debian-sources-4.14.12.ebuild, line  41:  Called check-reqs_pkg_setup
 *               check-reqs.eclass, line  99:  Called check-reqs_output
 *               check-reqs.eclass, line 255:  Called die
 * The specific snippet of code:
 *   		[[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && \
 *   			die "Build requirements not met!"
 * 
 * If you need support, post the output of `emerge --info '=sys-kernel/debian-sources-4.14.12::core-kit'`,
 * the complete build log and the output of `emerge -pqv '=sys-kernel/debian-sources-4.14.12::core-kit'`.
 * The complete build log is located at '/var/tmp/portage/sys-kernel/debian-sources-4.14.12/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-kernel/debian-sources-4.14.12/temp/die.env'.
 * Working directory: '/var/tmp/portage/sys-kernel/debian-sources-4.14.12/homedir'
 * S: '/var/tmp/portage/sys-kernel/debian-sources-4.14.12/work/linux-4.14.12'

Место освободил, теперь ставится.

...
Length: 1013872 (990K) [application/octet-stream]
Saving to: ‘/var/cache/portage/distfiles/linux_4.14.12-2.debian.tar.xz’

/var/cache/portage/ 100%[===================>] 990,11K   201KB/s    in 5,1s    

2018-01-08 12:59:04 (194 KB/s) - ‘/var/cache/portage/distfiles/linux_4.14.12-2.debian.tar.xz’ saved [1013872/1013872]

....
....

du /var/cache/portage/distfiles/linux_4.14.12-2.debian.tar.xz -m
1	/var/cache/portage/distfiles/linux_4.14.12-2.debian.tar.xz

Вопрос: почему архив ядра в 1Мб при сборке и компиляции требует 20Гб ?

★★

Это только патч. Ядро гораздо жирнее. Но, не настолько. Столько резервируется, видимо, для надёжности.

saahriktu ★★★★★ ()

Если в ядре включить ВСЁ, то бинарей будет ~10Гб. По-крайней мере видел истории успеха с нехваткой места на разделе в 10 Гб, на котором кроме исходников ядра ничего не было.

ass ★★★★ ()

Всё правильно. Удивление может вызвать иное требование к диско-пространству при установке.
В /boot ядру требуется место и всем драйверам, которые ставятся в /usr/lib/.

blitz ()
Ответ на: комментарий от ass

/usr/src/linux-4.14.12-gentoo # make mrproper

/usr/src/linux-4.14.12-gentoo # du -hs ./

897M ./

ass ★★★★ ()

Спроси об этом у майнтрейнеров этого ненужна в фанте.

init_6 ★★★★★ ()

все вопросы к Д. Роббинсу

Deleted ()
Ответ на: комментарий от ass

Допустим дистрибутивное ядро Ubuntu, в котором включено по максимуму дров - например ядро 4.4.0 - размер 216 Мб. Имею ввиду /lib/modules. Откуда там в 50 раз больше будет, или я не вкурил о чем тут речь?

I-Love-Microsoft ★★★★★ ()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

архив ядра в 1Мб

лолшто?
Это не архив ядра, это довесок для дебиановской сборки.
Само ядро в исходниках весит гиг в распакованномм виде и сотня мег в упаковке.
После компиляции дерево ядра распухает до десяти гигов. А теперь тебе ещё надо его установить... Потом уже там модули пожмутся и т.д.

imul ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

или я не вкурил о чем тут речь?

Да.

imul ★★★★★ ()
Ответ на: комментарий от imul

Само ядро в исходниках весит гиг в распакованномм виде и сотня мег в упаковке.

Запакованное:

 ➜ du -hs /var/distfiles/linux-4.14.tar.xz
97M     /var/distfiles/linux-4.14.tar.xz
 ➜ du -hs /var/distfiles/patch-4.14.12.xz
380K    /var/distfiles/patch-4.14.12.xz

Распакованное:

 ➜ du -hs /usr/src/linux-4.14.12-bentoo/
896M    /usr/src/linux-4.14.12-bentoo/

Мусор от сборки:

 ➜ du -hs /var/kernel/kernel-4.14.12-bentoo/
775M    /var/kernel/kernel-4.14.12-bentoo/

Ядро с модулями в бинарном виде:

 ➜ du -hs /var/packages/sys-kernel/bentoo-kernel-4.14.12.tbz2
16M     /var/packages/sys-kernel/bentoo-kernel-4.14.12.tbz2

Ядро с модулями в распакованном виде:

 ➜ dep -z sys-kernel/bentoo-kernel
sys-kernel/bentoo-kernel-4.14.12:
1273 files: 53.4 MiB

А 20Гб… Ну это скажем так - кто то слишком много пьёт.

init_6 ★★★★★ ()
Ответ на: комментарий от post-factum

Вангую, что потому что дебаг-символы.

Ага… И под все архитектуры… И с парой десятков конфигов для полной уверенности.

Скорее там неках модная бинарная хня для бинарного патченья ведра без перезагрузок.

init_6 ★★★★★ ()
Ответ на: комментарий от init_6

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

imul ★★★★★ ()
Ответ на: комментарий от init_6

file /usr/src/linux-4.14.0/vmlinux
/usr/src/linux-4.14.0/vmlinux: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=6ee2b711b862c18736cdbe1b675a46d8f481e797, with debug_info, not stripped

file /usr/src/linux-4.14.0/drivers/gpu/drm/virtio/virtio-gpu.ko
/usr/src/linux-4.14.0/drivers/gpu/drm/virtio/virtio-gpu.ko: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), BuildID[sha1]=f6287420c14cc00384914670e1f1476ff35bd326, with debug_info, not stripped

imul ★★★★★ ()
Ответ на: комментарий от imul

Размер зависит от конфига ядра.

Да зависит. И от количества архитектур под которые ядро собирается… И постой от погоды на марсе тоже зависит. Поэтому моя левая пятка подсказывает что 20Гб будет мало надо гораздо больше в разы просто. Пусть будет хотя бы 200Гб - так будет нормальненько.

Ну тогда попробуй пить поменьше.

Тебя забыл спросить.

init_6 ★★★★★ ()

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

Так что при его сборке будет требоваться много места.

kostik87 ★★★★★ ()
Ответ на: комментарий от Chaser_Andrey

а, ну-ка, скажи-ка как на самом деле.

Deleted ()
Ответ на: комментарий от Deleted

Пусть будет. Но 20 мало надо минимум 200 так будет в самый раз.

init_6 ★★★★★ ()
Ответ на: комментарий от init_6

Ядро не умеет собираться одновременно под несколько архитектур - fatelf у нас как-то не прижился. Но обычная дебажная сборка может запросто потребовать на порядок болше места, чем релизная, такие дела

annulen ★★★★★ ()

Найди egrep -r 'at least 20 GiB' и поменяй условие.

u0atgKIRznY5 ()
Ответ на: комментарий от init_6

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

imul ★★★★★ ()

Предположу, у Торвальдса всё ещё есть место на SSD. И некому подсказать, что, мол, урежь аппетиты - пошлёт.

iZEN ★★★★★ ()
Ответ на: комментарий от znavko

make-the-486-great-again

О, это действительно помогает от багов Spectre и Meltdown!

Deleted ()
Ответ на: комментарий от saahriktu

Собрал сейчас себе ядро 4.14.12 со своим кастомным конфигом. Вся директория с исходниками и бинарниками в итоге - 1,5 гига. Ядро себе собираю монолитно, без отдельных модулей. Всё итоговое ядро - 7139280 байт.

saahriktu ★★★★★ ()

Chromium тоже много требует

3 Гб ОЗУ, 5 Гб диска.

# emerge chromium
...

# emerge --resume

>>> Running pre-merge checks for www-client/chromium-63.0.3239.132
 * Checking for at least 3 GiB RAM ...                                   [ ok ]
 * Checking for at least 5 GiB disk space at "/var/tmp/portage/www-client/chromium-63.0.3239.132/temp" ...                                               [ ok ]

>>> Emerging (1 of 1) www-client/chromium-63.0.3239.132::net-kit
 * chromium-63.0.3239.132.tar.xz BLAKE2B SHA512 size ;-) ...             [ ok ]
 * Checking for at least 3 GiB RAM ...                                   [ ok ]
 * Checking for at least 5 GiB disk space at "/var/tmp/portage/www-client/chromium-63.0.3239.132/temp" ...                                               [ ok ]
 * Determining the location of the kernel source code
 * Found kernel source directory:
 *     /usr/src/linux
 * Found kernel object directory:
 *     /lib/modules/4.14.12-2/build
 * Found sources for kernel version:
 *     4.14.12-2
znavko ★★ ()
Последнее исправление: znavko (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.