2013-12-10 109 views
0

我需要在Makefile中mymake.mk, 使用mkfs.vfat但这个命令是定位/ sbin目录/如何在Makefile中使用sbin命令?

$ which mkfs.vfat 
/sbin/mkfs.vfat 

当前用户不是根,我建我的,然后项目出现错误“命令未找到”。

如何在Makefile中使用sbin命令?

回答

2

你的问题可能是这两点:

  1. 当前用户没有/sbin/$PATH
  2. 当前用户不允许写入块设备以在其上创建文件系统。

的第一个问题是很容易只是写的完整路径,而不是只在Makefile中的命令修改为:

target: sources … 
     /sbin/mkfs.vfat …… 

,如果你真的想要写一个块设备,你的第二个问题只发生没有写入权限。在这种情况下,考虑你在做什么。它真的有道理吗?通常情况下,这只会在make install的情况下有意义,并且这应该仅由用户root执行,因此您将具有写入权限。实际上,通常只有sudo make install才能获得该安装步骤的根访问权限。

但是,如果这是一个特殊的情况,那么你可以说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

某处有看起来这可能只是解决方案某些情况下,您可能需要详细说明 –