Я обновлял немного устаревший сервер с помощью yum update
и столкнулся с проблемами с памятью. Похоже, что yum требует достаточно свободной оперативной памяти для загрузки каждого пакета.
Обновление отдельных пакетов не было проблемой, так как большинство отдельных пакетов помещаются в память сами по себе. Однако обновление всех пакетов за одну операцию оказалось невозможным, поскольку yum, по-видимому, загружает все пакеты в ОЗУ первыми одновременно. Это означало, что первые несколько десятков пакетов будут загружены, но в какой-то момент они прекратят загрузку, и каждый последующий пакет выдаст ошибки памяти, даже если отдельные пакеты были очень маленькими. Общий размер загрузки был больше, чем объем свободной оперативной памяти даже после остановки всех служб.
Мое решение состояло в том, чтобы пройти вручную и выбрать самые большие пакеты и обновить их сначала. Это позволило мне получить оставшиеся пакеты на общую сумму меньше, чем объем свободной оперативной памяти. Но должен быть лучший путь.
Почему я не могу скачать каждый файл по отдельности и сохранить их на диск? При обновлении большого числа пакетов, требование , чтобы все загрузки должны помещаться в оперативной памяти , в то же время это своего рода глупо. Сначала он может загрузить их на диск, а затем оперативной памяти будет более чем достаточно для установки отдельных пакетов. Обновление всего, если все сделано правильно, должно занимать не больше памяти, чем обновление самого большого отдельного пакета. Другими словами, если трем не зависимым пакетам требуется объем оперативной памяти A, B и C для обновления, использование памяти yum должно быть max(A, B, C), а НЕ A+B+C.
Есть ли способ сделать это, или это просто недостаток ням?
Другие говорили мне, что yum
не загружается в RAM. Я не совсем уверен, почему он загружает пакеты только до тех пор, пока ОЗУ не заполнится, а затем останавливается. Место загрузки yum не находится на диске RAM, и на нем достаточно свободного места. Вопрос все еще остается.