Não é possível instalar a biblioteca GNU GSL a partir da origem

0

Estou tentando instalar a biblioteca GNU GSL Scientific 1.16 a partir do código-fonte no Ubuntu Server 14. Eu já fiz isso várias vezes no OS X sem problemas, mas continuo recebendo o mesmo erro na máquina Ubuntu. Já tomei as medidas propostas pela instrução de instalação da GNU GSL para o caso de algo dar errado, ou seja,

If there are problems building the library try using

    ./configure --disable-shared --disable-dependency-tracking

Assim, a instalação deve ser como:

./configure --disable-shared --disable-dependency-tracking
sudo make
sudo make install

Mas a etapa de compilação falha com o seguinte erro:

file.c:102:0: fatal error: error writing to /tmp/ccF9p6T9.s: No space left on device

#undef BASE_CHAR

^ compilation terminated.

Alguma ideia? Eu usei a mesma fonte para compilar a biblioteca no OS X sem nenhum erro. Eu não entendo de onde vem o erro "Nenhum espaço restante no dispositivo", já que tenho uma tonelada de espaço livre.

EDITAR

Adicionando a saída de df -h /tmp

File.system   Size Used  Available Used% Mounted at
overflow         1,0M         468K  556K           46% /tmp

P.S.

Estou ciente do pacote GSL em apt-get repositories, mas realmente preciso instalá-lo a partir do código-fonte.

    
por Eli Korvigo 01.07.2015 / 00:00

1 resposta

1

Sua mensagem de erro fornece a causa exata do problema e o envolvemos em três asteriscos abaixo:

file.c:102:0: fatal error: ***error writing to /tmp/ccF9p6T9.s: No space left on device***

Isso significa que o diretório /tmp , que contém arquivos temporários e tal, está cheio. Você disse que nunca reinicia a caixa, porque está sempre computando algumas coisas. Meu palpite é usar /tmp para armazenar dados computacionais em um local temporário. Esse diretório geralmente é limpo na reinicialização e em outros casos.

O problema é que, quando /tmp fica cheio, você pode ter muitos problemas. Da sua saída df -h acima, seu /tmp foi montado como "estouro". Provavelmente o que aconteceu é que seu sistema de arquivos raiz foi preenchido, e /tmp não foi definido como sua própria partição, e o sistema remontou /tmp como um disco "overflow", que é limitado em tamanho.

Você tem duas coisas que precisa fazer:

  1. Descubra se a partição / está sem espaço. df -h por si só lhe dará um resumo de tudo.
  2. Remova os dados antigos do disco (exclua-os ou mova-os para outro local fora do sistema) e o diretório /tmp . Algo está comendo o seu espaço e isso é uma coisa ruim.
  3. Considere uma reinicialização de tempos em tempos, durante um período de manutenção regular ou algo assim. Dessa forma, seu diretório /tmp será limpo de vez em quando e você poderá aplicar atualizações do kernel e assim por diante.
por Thomas Ward 01.07.2015 / 14:00