Não é possível atualizar o opensuse de 11.4 para 12.1 devido à falta de espaço em / var

2

Estou tentando atualizar o opensuse da versão 11.4 para a 12.1. O tamanho de download necessário é superior a 1,0 GB, mas meu sistema de arquivos /var é precisamente 1.0 GB, é por isso que o zypper para durante o download de pacotes .rpm devido à falta de espaço em /var .

Quais soluções existem para esse problema?

    
por user1088224 22.12.2011 / 12:57

2 respostas

3

Aumente o espaço em /var redimensionando as coisas.

Descubra onde o download vai para /var/tmp , /var/cache/ ou outro lugar. Mount-bind ou symlink-lo em algum outro lugar com espaço suficiente, enquanto você faz a atualização (você pode ter que copiar alguns arquivos mais.

Se você tivesse muito espaço em /srv e nenhum espaço em /var , e os downloads fossem para /var/cache , você poderia fazer algo assim.

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.
    
por 22.12.2011 / 13:16
1

Sinto muito, enquanto a idéia é boa (use espaço em / srv em vez de em / var), a solução sugerida é extremamente errada.

mount  --bind 

torna um diretório disponível como alternativa em um novo local. É efetivamente um link rígido para um diretório (que também não precisa ficar no mesmo sistema de arquivos, como os hard links têm que fazer). Você ainda não obtém mais espaço em / var / cache ou / srv / tmp_var_cache com isso, pois eles são a mesma coisa depois da montagem --bind.

O que você quer é usar / srv / tmp_var_cache ao invés de / var / cache. E você só precisa fazer isso para o gerenciamento de pacotes, isto é, / var / cache / zypp, não para o conjunto de / var / cache, e você pode simplesmente usar um link simbólico, não um mount --bind. Portanto, a solução é assim:

# 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

Se você quiser usar o mount -bind, o que você precisa é

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

Você precisa executar a montagem --bind após cada reinicialização e antes do início da verificação automática de atualizações, ou haverá sinos do inferno. Eu tentaria o symlink primeiro ...

É claro que a outra coisa é apenas mudar o local do cache de pacotes em /etc/zypp/zypp.conf ...

    
por 04.02.2012 / 23:09