无法从源代码安装 GNU GSL 库

无法从源代码安装 GNU GSL 库

我正在尝试在 Ubuntu Server 14 下从源代码安装 GNU GSL Scientific 库 1.16。我已经在 OS X 下多次这样做了,没有任何问题,但在 Ubuntu 机器上我不断收到相同的错误。我已经采取了 GNU GSL 安装说明中建议的步骤,以防出现问题,即

如果构建库时遇到问题,请尝试使用

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

因此安装应该是这样的:

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

但编译步骤失败并出现以下错误:

file.c:102:0:致命错误:写入 /tmp/ccF9p6T9.s 时出错:设备上没有剩余空间

#undef BASE_CHAR

^ 编译终止。

有什么想法吗?我使用相同的源代码在 OS X 下编译库,没有任何错误。我不明白“设备上没有剩余空间”错误从何而来,因为我有大量可用空间。

编辑

添加输出df -h /tmp

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

附言

我知道apt-get存储库中的 GSL 包,但我确实需要从源代码安装它。

答案1

您的错误消息给出了问题的确切原因,我在下面用三个星号将其括起来:

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

这意味着您的/tmp目录(用于保存临时文件等)已满。您说过您从不重新启动计算机,因为它总是在计算一些东西。我猜它用来将/tmp计算数据存储在临时位置。该目录通常在重新启动时和其他情况下被清除。

问题是,当/tmp磁盘满了的时候,你会遇到很多问题。从df -h上面的输出来看,你的/tmp磁盘被挂载为“溢出”。很可能是你的根文件系统被填满了,并且/tmp没有被定义为自己的分区,系统重新挂载/tmp为“溢出”磁盘,该磁盘的大小是有限的。

因此,您需要做两件事:

  1. 确定您的/分区是否空间不足。 df -h它本身会为您提供所有内容的概要。
  2. 从磁盘中删除旧数据(删除或将其移出系统的其他位置)和目录/tmp。某些东西正在占用您的空间,这是一件坏事。
  3. 考虑在定期维护期间或类似情况下不时重启。这样,您的/tmp目录就会时常被清除,您可以应用内核更新等。

相关内容