2013-12-10 108 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

某處有看起來這可能只是解決方案某些情況下,您可能需要詳細說明 –