Назад | Перейти на главную страницу

Невозможно обновить opensuse с 11.4 до 12.1 из-за нехватки места в / var

Пытаюсь обновить opensuse с версии 11.4 до 12.1. Требуемый размер загрузки более 1,0 ГБ, но моя файловая система /var составляет ровно 1,0 ГБ, поэтому zypper останавливается при загрузке пакетов .rpm из-за нехватки места в /var.

Какие есть решения этой проблемы?

Увеличьте пространство в /var путем изменения размеров вещей.

Выясните, куда идет загрузка /var/tmp,/var/cache/, или где-нибудь еще. Смонтируйте-привяжите или создайте символическую ссылку на другое место, где достаточно места, пока вы выполняете обновление (возможно, вам придется скопировать некоторые файлы.

Если бы у вас было много места в /srv и нет места в /var, а загрузки идут на /var/cache, тогда вы можете сделать что-то вроде этого.

lsof -n | grep '/var/cache'
# stop anything using that folder
rsync -va /var/cache /srv/tmp_var_cache/
mount -o bind /srv/tmp_var_cache /var/cache/
# restart anything you stopped.

Извините, но идея правильная (используйте пробел в / srv вместо / var), предлагаемое решение в основном неверно.

mount  --bind 

делает каталог альтернативно доступным в новом месте. По сути, это жесткая ссылка для каталога (которая также не должна оставаться в той же файловой системе, как жесткие ссылки). Вы по-прежнему не получаете больше места ни в / var / cache, ни в / srv / tmp_var_cache с этим, поскольку они остаются такими же после mount --bind.

Вы хотите использовать / srv / tmp_var_cache вместо / var / cache. И вам нужно сделать это только для управления пакетами, то есть / var / cache / zypp, а не для всего / var / cache, и вы можете просто использовать символическую ссылку, а не mount --bind. Поэтому решение такое:

# move content (will take a while)
mv /var/cache/zypp /srv/tmp_var_cache_zypp
# Create pointer
ln -s /srv/tmp_var_cache_zypp /var/cache/zypp

Если вы хотите использовать mount --bind, вам нужно

# move content (as above)
# create mount point
mkdir /var/cache/zypp
# mirror directory
mount --bind /srv/tmp_var_cache_zypp /var/cache/zypp

Вам нужно запускать mount --bind после каждой перезагрузки и до начала автоматической проверки обновлений, иначе будут адские колокола. Я бы сначала попробовал символическую ссылку ...

Конечно, стоит еще посмотреть, нужно ли просто изменить расположение кеша пакетов в /etc/zypp/zypp.conf ...