Не могу установить библиотеку 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
как "переполненный" диск, размер которого ограничен.
Итак, у вас есть две вещи, которые вам нужно сделать:
- Выяснить, является ли ваш
/
раздел вне пространства.df -h
сам по себе даст вам краткое изложение всего. - Удалите старые данные с вашего диска (либо удалите их, либо переместите в другое место вне системы), и
/tmp
каталог. Что-то пожирает твое пространство, и это плохо. - Рассматривайте перезагрузку время от времени, во время регулярного периода обслуживания или чего-то еще. Таким образом, ваш
/tmp
каталог будет очищаться время от времени, и вы можете применять обновления ядра и тому подобное.