LINUX.ORG.RU

У меня 2000 пакетов и portage проверяет зависимости перед установкой каждого пакета около 5 минут

 , ,


2

3

portage версии 2.1.11.52
И ещё появляются (перед вопросом об установке) куча сообщений QA Notice: 'grep' called in global scope: категория/ебилд-версия

В чём суть: хочу я установить какой-нибудь ебилд. Скажем hostapd. И жду пять минут (на ноутбуке, на компе - 1), пока меня спросят, действительно ли я хочу установить данный ебилд. Причём некоторые пакеты (редко) почти моментально разрешают зависимости.

Эта проблема у меня давно, на основном компе можно и потерпеть. А вот сейчас на ноуте был просто ужас. Сразу могу сказать, что проблема не в дисковой подсистеме, emerge сжирает весь проц (одно ядро).

☆☆☆

Последнее исправление: cetjs2 (всего исправлений: 1)

Ответ на: комментарий от ZuBB

sqlite действительно сильно ускоряет процесс (20%). Но всё-таки он - припарки для мертвого, а не решение моей проблемы.

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

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

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

Я же сказал, что с ней никаких проблем, у меня ssd, и я вижу LED. Мало того, после первого замера всё лежит в оперативке.

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

с кем?
весь кэш репа при скулах лежит в 1 файле
для основного дерева в /var/cache/edb/dep/usr/portage.sqlite (при дефолтной порт-дире)

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

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

ktulhu666 ☆☆☆
() автор топика
Ответ на: комментарий от megabaks
> time emerge -p hostapd

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

Calculating dependencies... done!
[ebuild   R    ] net-wireless/hostapd-1.0-r5 
emerge -p hostapd  82,51s user 19,55s system 97% cpu 1:44,38 total

:(

> perf report | grep -v ^\# | head -n 10
no symbols found in /usr/lib64/libsandbox.so, maybe install a debug package?
    19.11%     emerge  libpython2.7.so.1.0  [.] 0x00000000001215cf                       
     7.70%     emerge  libpython2.7.so.1.0  [.] PyEval_EvalFrameEx                       
     7.18%  ebuild.sh  bash                 [.] 0x0000000000061956                       
     4.01%  ebuild.sh  libc-2.17.so         [.] __gconv_transform_utf8_internal          
     3.73%  ebuild.sh  libc-2.17.so         [.] __mbrtowc                                
     1.83%  ebuild.sh  [kernel.kallsyms]    [k] page_fault                               
     1.80%  ebuild.sh  libc-2.17.so         [.] _int_malloc                              
     1.45%  ebuild.sh  [kernel.kallsyms]    [k] copy_page                                
     1.17%  ebuild.sh  libc-2.17.so         [.] _int_free                                
     1.12%     emerge  libpython2.7.so.1.0  [.] _PyObject_GenericGetAttrWithDict         
vasily_pupkin ★★★★★
()
Последнее исправление: vasily_pupkin (всего исправлений: 1)
Ответ на: комментарий от vasily_pupkin

7.18% ebuild.sh bash [.] 0x0000000000061956

2 грустных смайлика

а где остальные 50-60%?

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

SQlite:

> time emerge -p hostapd         

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

Calculating dependencies... done!
[ebuild   R    ] net-wireless/hostapd-1.0-r5 
emerge -p hostapd  50,05s user 5,25s system 98% cpu 56,150 total
vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

50,05s

почти час??!

upd: ой, увидел первое сообщение

upd2: мой фейл

ZuBB ★★★★★
()
Последнее исправление: ZuBB (всего исправлений: 2)
Ответ на: комментарий от vasily_pupkin

time emerge -p hostapd

У меня за секунд 7-8 отрабатывает.
Вот только -avuDN world работает минуту-полторы, не меньше

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

Ты не понял. Смотри, если он рассчитывает не только зависимости, но и блокировки со стороны других пакетов, тогда получается, что ему нужно перелопатить все блокировки всех пакетов world, далее блокировки их зависимых пакетов, блокировки зависимых пакетов зависимых пакетов и т.д. И получается, что время экспоненциально должно возрастать (в зависимости от кол-ва пакетов).

ktulhu666 ☆☆☆
() автор топика
Последнее исправление: ktulhu666 (всего исправлений: 1)
Ответ на: комментарий от ktulhu666

нет
я всё понял и ответил

time emerge -pv `qlist -IC | grep -v xsetmode | grep -v libreoffice-bin`
......
real	0m40.392s
user	0m39.357s
sys	0m0.518s
time emerge -pv world
......
real	0m47.623s
user	0m46.683s
sys	0m0.760s
в пределах погрешности, да и pypy ща собирается
в первом случае
Total: 1140 packages (4 upgrades, 3 new, 22 in new slots, 1111 reinstalls, 1 interactive)
во втором
Total: 222 packages (1 upgrade, 1 in new slot, 220 reinstalls, 1 interactive)

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

я просто забыл удалить этот кэш - ща провер без него - это ад!

megabaks ★★★★
()

кстати

[ root@desktop ] megabaks # time  python3 /usr/bin/emerge -pv world &>/dev/null

real	0m40.396s
user	0m39.858s
sys	0m0.447s
[ root@desktop ] megabaks # time  python2 /usr/bin/emerge -pv world &>/dev/null

real	0m46.901s
user	0m46.341s
sys	0m0.446s
[ root@desktop ] megabaks #

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

А что ты хочешь от питона, который by design однопоточный из за GIL'а.

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

а вот pypy меня разочаровало

[ root@desktop ] megabaks # time pypy-c2.0 /usr/bin/emerge -pv world &>/dev/null

real	0m57.538s
user	0m56.593s
sys	0m0.812s
без jit вообще ад в 2m16.260s

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

тред не читал, у меня 1758 пакетов, система на SSD, кеш портажа в sqlite - результат практически моментальный. Без sqlite - заметно медленнее. И да, портаж на питон3.

science ★★☆
()
Последнее исправление: science (всего исправлений: 1)

Не менее 8 секунд у меня. никаких сквошей, скулов и прочего, ибо лень.

эти 10-30 секунд на фоне времени сборки пакетов — мелочь.

а питон-таки да, тормозной.

ждем, когда мегабакс перепишет портеж обратно на баш. :3

funeralismatic ★★★
()

ради интереса сделал синк всех реп (не обновлял мир уже недели три):

nona ~ # time emerge -uDNvp @world
...

Total: 106 packages (96 upgrades, 1 downgrade, 1 in new slot, 8 reinstalls), Size of downloads: 480,023 kB

WARNING: Requested packages will not be merged because they are listed in
package.provided:

  sys-boot/syslinux pulled in by 'selected'
  app-office/libreoffice pulled in by 'selected'

This problem can be solved in one of the following ways:

  A) Use emaint to clean offending packages from world (if not installed).
  B) Uninstall offending packages (cleans them from world).
  C) Remove offending entries from package.provided.

The best course of action depends on the reason that an offending
package.provided entry exists.


 * IMPORTANT: 1 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.


real    1m18.051s
user    0m51.851s
sys     0m11.040s

1 минута на обсчитывание мира - херня, я считаю, ибо само обновление мира будет идти минут сорок

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

а emerge --metadata делал?
как отключал скулы?
хотя с метадатой скулы ничего и не дают, да

megabaks ★★★★
()
Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от megabaks

cat /var/db/pkg/dev-lang/python-*/CFLAGS
-march=x86-64 -O2 -pipe -fwrapv
-march=x86-64 -O2 -pipe -fwrapv
-march=x86-64 -O2 -pipe -fwrapv
-march=x86-64 -O2 -pipe -fwrapv

на скулы перешел, +10-20% производительности, python3 - +15-20% (как правильно только портаж на него перевести, оставив 2.7 глобальным?), metadata-transfer был включен сколько себя помню, emerge --metadata делаю (+5-10%). Но проблема то в корне не решается.

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

как правильно только портаж на него перевести

python3
не путать с
python_targets_python3_2

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