Make

如果 make 不應該以 root 身份執行,那麼我該如何安裝策略文件?

  • January 5, 2022

我知道 Makefile 不應該要求使用者是 root。所以我這樣使用/usr/local

PREFIX=/usr/local

install:
   install -D example $(PREFIX)/bin/example

這很好用。但我還需要為 polkit 安裝一個策略文件。唯一有效的路徑是/usr/share/polkit-1/actions/. 如果我嘗試使用install,我會收到以下錯誤:

install: cannot create regular file '/usr/share/polkit-1/actions/com.example.policy': Permission denied

如果我不能要求使用者以makeroot 身份執行,我應該如何安裝我的策略文件?

按照慣例,建構程序不需要 root 訪問權限,但安裝它通常需要。所以跑起來很正常

make
sudo make install

或者,在建構要包含到包中的軟體時,例如:

make
mkdir install-root
fakeroot -- sh -c 'make PREFIX="$PWD/install-root/usr/local" install && cd install-root && tar -czf ../package.tgz .'

引用自:https://unix.stackexchange.com/questions/685189