2013-12-10 2 views
0

мне нужно использовать mkfs.vfat в Makefile mymake.mk, , но эта команда найти в/SBIN/Как использовать команду sbin в Makefile?

$ which mkfs.vfat 
/sbin/mkfs.vfat 

текущий пользователь не корень, и я строю тогда мой проект получил ошибку «команда не найдена ».

Как использовать команду sbin в Makefile?

ответ

2

Проблема у вас есть, вероятно, эти две точки:

  1. Текущий пользователь не имеет /sbin/ в его $PATH.
  2. Нынешнему пользователю не разрешается писать блочное устройство для создания на нем файловой системы.

Первая проблема легко редакции просто писать полный путь, а не только команды в 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 …… 
1

где-то в заголовке

PATH:=$(PATH):/sbin 
+0

Похоже, это может быть только решение в определенные контексты. Возможно, вы захотите разработать –

Смежные вопросы