BASH Programming - Введение

       

Не могу скомпилировать некоторые вещи после обновления ядра


Исходные тексты ядра linux включают некоторое количество заголовочных файлов (файлов, чьи имена заканчиваются на .h), на которые ссылаются стандартные заголовочные файлы в /usr/include. На них обычно ссылаются примерно так (где xyzzy.h должен быть чем-то в /usr/include/linux):

#include <linux/xyzzy.h>

Обычно существует ссылка, названная linux в /usr/include

на директорию include/linux в исходных текстах вашего ядра (/usr/src/linux/include/linux в обычной системе). Если эта ссылка находится не там, или указывает на неправильное место, то некоторые вещи вообще не будут компилироваться. Если вы посчитали, что исходные тексты ядра занимают слишком много места на диске и удалили их, то это скорее всего вызовет проблему. Другая проблема может возникнуть при неправильных правах доступа на файлы; если ваш администратор установил umask в такое значение, которое не позволяет другим пользователям видеть его файлы по умолчанию, и вы разархивировали исходные тексты без опции p (сохранение прав доступа), то эти пользователи не смогут пользоваться компилятором C. Хотя вы могли бы воспользоваться командой chmod для исправления этого, но вероятно более легко заново разархивировать заголовочные файлы. Вы можете сделать это также, как и со всеми исходными текстами, но только с дополнительным аргументом:

blah# tar zxvpf linux.x.y.z.tar.gz linux/include

Замечание: ``make config'' заново создаст ссылки в /usr/src/linux, если они отсутствуют.



Содержание раздела