LINUX.ORG.RU
решено ФорумTalks

Загрузка/установка параллельно

 ,


0

1

Я вот ставлю один оффтопик-продукт на оффтопик и вижу, как он, пока подгружает из интернетов одну часть, устанавливает в фоне другую часть. В итоге загрузка и установка завершатся с небольшой разницей во времени. Это круто!

И тут я понимаю: почему-то над временем загрузки системы весь опенсорсный мир заморочился и начал стряпать системд и апстарты, а над нормальным управлением пакетами мало кто старается.

Почему-то никто не захотел распараллелить установку пакетов. Вот почему-то никто не захотел, чтобы сотня независимых пакетов ставилась одновременно.

Нет, оно сначало проверит зависимости, потом выкачает целиком, потом проверятся чексуммы, потом оно еще почешется над проверкой конфликтов, но даже после этого оно пойдет ставить все последовательно. Двадцатый век, честное слово.

Мне кажется, железо сейчас это позволяет.

Не позволяет технология? Не позволяет голова или ее отсутствие? Об этом даже никто не задумывался? Или я не видел адекватных пакетных менеджеров, и есть такие, которые это умеют?

IPS хотя бы сначала просчитывает цепочку операций (причем иногда до бесконечности долго). pacman делает все строго последовательно: разрешение зависимостей, загрузка, проверка целостности и конфликтов, установка. apt, кажется, тоже все делает строго последовательно. И yum тоже. И zypper.

Может, есть какие-нибудь, умеющие параллелить установку?

Спасибо за ответы заранее. =)

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

что-то не видно никого, кто знает КАК.

После расчета графа зависимостей всё распараллеливается тривиально - и загрузка нескольких пакетов, и их установка (точнее, распаковка в терминах dpkg). Другое дело, что выигрыш от параллельной установки сомнителен.

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

Так здесь нам поют про надежность. Вот упадёт в процессе установки сеть, и сиди, админ, кукуй с частично обновленной системой...

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

но что-то не видно никого, кто знает КАК

Куча работы (нужна БД с зависимыми транзакциями и ченджсетами). Куча тестирования. Оно нам надо? Пусть Поттеринг пилит параллельную установку пакетов :)

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

Как всё извратил!

Любой пакет может посмотреть, какие пакеты уже установлены в системе. Например, если кто-то уже установил GTK, не нужно устанавливать GTK заново.

С другой стороны, с реюзом системных библиотек могут возникнуть проблемы, именно такие, как в линуксе :) Поэтому люди тащат всё с собой, а не потому, что не могут как-то по-другому.

Можно тащить с собой всё, можно реюзать чужое. Винда дает и так, и так. Но, как видим, почти все юзают первый вариант (настолько часто, что ты даже не знаешь о втором). Выводы какие?

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

Вот упадёт в процессе установки сеть, и сиди, админ, кукуй с частично обновленной системой...

Для протокола: я не говорил о том, что нужно ставить неполностью выкачанные пакеты.

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

Вот упадёт в процессе установки сеть

1) Транзакции. Сделал что-то страшное, оборвалась связь - роллбэк нафиг
2) Жесткие зависимости обновляются в одной транзакции
3) Можно юзать файловую систему со снапшотами (есть ли ФС со снапшотами на уровне пачки файлов или каталога? тогда можно юзать их для поддержки транзакций)

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

Так не в этом дело.

Если прервать обновление, у нас будет часть пакетов свежая, часть старая. Какие при этом возможны побочные эффекты, предсказать невозможно.

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

Вот от снапшотов самих по себе гораздо больше пользы, чем от того, ради чего ты их хочешь вводить. :}

Но при этом снапшот и вызов ПМ админ может и сам в скрипт засунуть, поддержка в ПМ нафиг не нужна.

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

Если прервать обновление, у нас будет часть пакетов свежая, часть старая.

Это если подойти к обновлению совсем уж тупо. А если не совсем (например, начинать ставить только после скачивания изолированного подграфа) - всё будет нормально.

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

и вызов ПМ админ может

какой админ? Пользователь сказал «обновить кеды», они обновляются. Прикажешь шлюшку Дуню, серфящую инет в промежутке между выездами, учить админить?

stevejobs ★★★★☆
()

Даёшь p2p в пакетный манагер.

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

Оно и видно как у лоровцев был батхерт в недавней теме про репозитории и пакеты.

bhfq ★★★★★
()

эм те кто хотел запилили, остальные сказали ненужно и безопасность превыше всего, потом те тоже вернулись потомучто безопасность превыше всего.

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

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

в линуксах такие проблемы могут изредка возникать разве что в тестовых ветках и всяких роллинг-релизах. В форточках же с текущим бардаком при использовании общих либ будет один сплошной геморрой

nu11 ★★★★★
()

Эмм, portage умеет все вышеописанное.

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

Но, как видим, почти все юзают первый вариант

так вот и задумайся о причинах. Думаешь. все разработчики поголовно упоротые или все-таки второй вариант на практике не жизнеспособен?

настолько часто, что ты даже не знаешь о втором

обнови libastral

nu11 ★★★★★
()

думаю проблема не в осях, а в HDD

ну и в нынешних SSD (которые должны были решить эту проблему) - они убогие и дорогие.

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

дальше либо догружать если сеть появилась, либо отменять обновление. Система гарантированно останется в рабочем состоянии

nu11 ★★★★★
()

emerge так умеет - при сборке пакета в фоне докачивает исходники для следующего.

Думаю, можно запостить feature request в трекер Arch.

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

скорость загрузки W8

А там что-то особенное? Быстрее, чем Arch с systemd (на атоме порядка 10 секунд)?

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

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

Ну зачем мне дома включенный и жрущий энергию комп, если я дома бываю 2 часа в день? А иногда и 2 часа за 2-3 дня. Зачем мне ночью включенный комп, если я сплю?(торренты по 100гб я не качаю)

И мне оч. удобно, чтобы с утра комп включить за минимум времени, перед выходом глянуть как там с пробками\погодой\расписанием транспорта и выключить обратно на 12 часов.

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

man suspend

Очень неприятно, когда из S2ram не загружается система или когда перепад напряжения был(бывает раз в 2 дня стабильно, часы сбрасываются) пока оно в саспенде

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

продолжим просвещение пролетариата: man s2disk

перепад напряжения был(бывает раз в 2 дня стабильно

и ты еще не поставил бесперебойник? ССЗБ

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

Пофайловые чексуммы не знаю, реализованы ли где либо. Никогда не интересовался.

в dpkg есть.

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

Зачем? Я еще понимаю, зачем нужно параллельное скачивание, но какой смысл распараллеливать сам процесс инсталляции? Он всё равно занимает секунды и является IO-bound по определению.

Я имел в виду случай пофайловых репозиториев.

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

Где отдается не архивами, а файлами. Или же, как промежуточный вариант, для одного пакета несколько архивов с файлами.

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

Что такое «пофайловый репозиторий»?

Где отдается не архивами, а файлами

Т.е. каждый пакет отдается набором готовых файлов? Это ортогонально моему вопросу.

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