Проблема у вас есть, вероятно, эти две точки:
- Текущий пользователь не имеет
/sbin/
в его $PATH
.
- Нынешнему пользователю не разрешается писать блочное устройство для создания на нем файловой системы.
Первая проблема легко редакции просто писать полный путь, а не только команды в Makefile:
target: sources …
/sbin/mkfs.vfat ……
Вторая проблема возникает только тогда, когда вы действительно хотите, чтобы написать на блочное устройство вас не имеют прав на запись. В этом случае рассмотрите, что вы делаете. Это действительно имеет смысл? Обычно это имеет смысл только в ситуации make install
, и это должно выполняться только пользователем root
, поэтому у вас должно быть : права на запись. На практике обычно типизируется sudo make install
, чтобы получить доступ root только для этого этапа установки.
Если, однако, это особый случай, то вы можете добавить, что sudo
в свой Makefile, а также:
target: sources …
sudo /sbin/mkfs.vfat ……
(Это приведет к тому, запрос пароля при запуске Makefile.)
И, наконец, вы можете использовать это mkfs
для создания файла, содержащего только что созданную файловую систему. В этом случае вам не нужно каких-либо специальных разрешений (помимо права на запись в этот файл вы хотите создать:
target: sources …
/sbin/mkfs.vfat -C /path/to/my/filesystem ……
Похоже, это может быть только решение в определенные контексты. Возможно, вы захотите разработать –