LINUX.ORG.RU

даже не все сборочные системы поддерживают прогресс. а ты просишь общий индикатор

eternal_sorrow ★★★★★
()

Есть парсер логов emerge, ищите в интернетах. У меня он часто зависал правда, когда сборка закончилась нормально а он всё ещё показывал зависшую картинку. Мне кажется заранее знать сколько займёт сборка нельзя, но cmake например пишет прогресс и степень завершения в выводе.

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

Хотя бы видеть список собираемых пакетов и сколько из них собрано в удобной форме на одной страничке.

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

Можно увидеть статистику (в том числе историческое сравнение) в qlop (portage-utils).

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

Запускай сборку с флагом -avq - сначала покажет полный список, спросит продолжить, а замнт будет показывать текущий пакет

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

тогда на экране не будет видно процесса сборки? в принципе неплохой вариант, потом логи можно посмотреть

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

Логи можно посмотреть если упадёт. Если соберётся, то они удаляются. А вообще вывод логов чуть замедляет процесс.

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

Может быть, есть опция, чтобы логи не удалялись?

Хотя если собралось без ошибок, то они и ненужны по идее.

Навряд ли заметно замедлится сборка на PCI SSD из-за логов.

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

Если нужны сообщения по окончанию установки, то из смотрят в заранее настроенном elog,так как иногда всякая полезная информация бывает или предупреждения.

Логи всё равно пишутся, просто не выводятся на экран в процессе сборки.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
EMERGE_DEFAULT_OPTS="--jobs 2"

тебе же ткнули уже.

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

Навряд ли заметно замедлится сборка на PCI SSD из-за логов.

Если у тебя >16Гб оперативной памяти, то собирай в zRAM.

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

Хм, AMD Phenom X6, сборка в tmpfs, всё нормально распараллеливается при "-j 6", если поставить выше - время сборки увеличивается.

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

т.е. при "-j 20" полная загрузка всех ядер по htop с моей точки зрения происходила чаще, чем при при "-j 10".

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

cat /etc/portage/make.conf
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.

#ABI_X86="-32 -64 -x32"

#ABI_X86=" -64 -32 -x32 "
#USE=" -abi_x86_64 -abi_x86_32 -abi_x86_x32 "

COMMON_FLAGS="-O2  -pipe -march=i586"

# -abi_x86_64 -abi_x86_32 -abi_x86_x32"

CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable before changing.
CHOST="i486-pc-linux-gnu"

# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/usr/portage"
DISTDIR="/usr/portage/distfiles"
PKGDIR="/usr/portage/packages"

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C
MAKEOPTS="-j20"

FEATURES="ccache"
CCACHE_DIR="/var/tmp/ccache/"
CCACHE_SIZE="20G"

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

Хотя бы видеть список собираемых пакетов

ls /usr/tmp/portage/*
neocrust ★★★★★
()
tail -f /var/log/emerge.log
Kroz ★★★★★
()
Ответ на: комментарий от simoshina

Наверно, я что-нибудь делаю нетак, однако при "-j 10" грузило не полностью.


Note:
When MAKEOPTS="-jN" is used with EMERGE_DEFAULT_OPTS="--jobs K --load-average X.Y" the number of possible tasks created would be up to N*K. Therefore, both variables need to be set with each other in mind as they create up to K jobs each with up to N tasks.

https://wiki.gentoo.org/wiki/EMERGE_DEFAULT_OPTS

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

Сразу после emerge пакета запусти uptime и посмотри последнюю цифру (15-минутный load average): она должна быть меньше или близкой к количеству ядер. Если значительно выше, у тебя процессор перегружен и используется неоптимально.

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 3)

Посмотри на genlop и qlop. Текущий прогресс:

$ genlop -c

 Currently merging 1 out of 1

 * app-office/libreoffice-6.2.5.2 

       current merge time: 2 minutes and 7 seconds.
       ETA: 2 hours, 33 minutes and 31 seconds.
История сборок пакета:
$ qlop -gtH libreoffice
[ ... обрезан большой список ... ]
libreoffice: Fri Jul  7 11:35:38 2017: 1 hour, 59 minutes, 50 seconds
libreoffice: Mon Dec  3 16:06:10 2018: 2 hours, 17 minutes, 20 seconds
libreoffice: Mon Feb 18 00:17:36 2019: 2 hours, 6 seconds
libreoffice: Tue May 14 16:09:35 2019: 2 hours, 40 minutes, 28 seconds
libreoffice: Fri Jun  7 22:08:16 2019: 2 hours, 48 minutes, 24 seconds
libreoffice: Thu Jun 20 16:59:34 2019: 1 hour, 38 minutes, 9 seconds

Показать текущую очередь пакетов, которые ещё не собраны, можно с помощью самого emegre и опцией --resume. Можно запускать без прав root. К сожалению, команда будет пересчитывать зависимости, поэтому скорость работы неудовлетворительна.

$ emerge --resume -pv

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

$ emerge --resume -pv
К сожалению, команда будет пересчитывать зависимости, поэтому скорость работы неудовлетворительна.

Поэтому для таких целей нужно пользоваться не emerge -pv, а однострочниками ниже, которые использую API portage для того, чтобы достать merge_list.

Кстати, у emerge два merge_list'а: основной и бекапный.

# Main
$ python2 -c 'exec("import portage;lst = portage.mtimedb.get(\"resume\", {}).get(\"mergelist\");\nif lst:\n\tfor a in lst: print a[2]\nelse: print \"None\"")'

# Backup
$ python2 -c 'exec("import portage;lst = portage.mtimedb.get(\"resume\", {}).get(\"mergelist_backup\");\nif lst:\n\tfor a in lst: print a[2]\nelse: print \"None\"")'

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

Ещё можно для истории сборки использовать

genlop -t имя-пакета

ещё ограничивать датой можно

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

вообще меняю вручную -march=i486/i586 для всего make.conf в зависимости от собираемого пакета

например, mono требует i586

пока не научился делать конфиги -march=586 вместо -march=i486 только для некоторых пакетов, чтобы автоматически настройка применялась, хотя можно ,наверно, просто в командной строке emerge указать:

COMMON_FLAGS="-O2 -pipe -march=i586" emerge mono

?

simoshina
() автор топика
Ответ на: комментарий от AbbaT

я еще не знал про него тогда, да и сейчас пока не умею им пользоваться, кроме как crossdev -t

надо маны читать ...

для BBB и AllWinner A20

правильно ли использовать:

crossdev -t arm-linux-gnueabihf

?

simoshina
() автор топика
Ответ на: комментарий от Kroz

Где ж ты был 3 недели назад? Писать самому лень было, поэтому лазил так смотрел :)

P.s. Жаль на сайте gentoo.ru восстановление пароля страница не открывается. Чего-то там полазить захотелось залогиненным.

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

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

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

А что думаете, про Gentoo vs GUIX?

Для меня Gentoo выглядит станком для сборки чего угодно и с максимальным количеством сорцовых пакетов.

GUIX - научная разработка для reproducible конфигов в первую очередь? можно установить разные версии пакетов без каких-либо особых ограничений, слоты в Gentoo вроде не такие гибкие?

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

еще такие мысли:

Devuan - это то, что можно использовать уже сейчас легко и непринужденно

Gentoo - это то, что пока еще изучаю и позволит повысить безопасность моих хостов за счет сборки под более безопасные архитектуры типа armv7 и i486, на выделенных под каждую задачу отдельных аппаратных компьютерах.

GUIX - это будущее удобно переносимых конфигов, но пока еще слишком заумно для меня. Кстати в Gentoo возможно использование Ansible со стандартными рецептами?

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

Еще интересует OpenBSD - в теории супер секурно, но нет времени разобраться, как ее установить с перестроением base из сорцов и чтобы она не отжирала в неизвестность 50 метров на одноплатнике BBB.

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

за счет сборки под более безопасные архитектуры типа armv7

Ну я несколько лет держал генточку на тв-боксе с rk3188 и она себя там отлично собирала по ночам.

Главное - первоначальная настройка, потом можно её чуть ли не на автопилоте гонять.

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

Так ведь можно использовать cross distcc, теперь мои одноплатники и socket7 заживут новой жизнью!

Btw, они еще старой не начали :)))

simoshina
() автор топика
Ответ на: комментарий от linuxnewb13

парсер логов

То будущее, которое мы заслужили.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.