Не могу установить библиотеку GNU GSL из источника

Я пытаюсь установить научную библиотеку GNU GSL 1.16 из исходного кода под Ubuntu Server 14. Я уже делал это несколько раз под 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

PS

Я знаю о пакете GSL в apt-getрепозитории, но мне действительно нужно установить его из исходного кода.

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 каталог будет очищаться время от времени, и вы можете применять обновления ядра и тому подобное.
Другие вопросы по тегам