鉴于我的 Makefile 的这个简单安装目标:
install: zrm $(CONF)
install -D -m 0755 -o mysql -g mysql conf/lvm0.conf $(DESTDIR)/$(CONFDIR)/lvm0/mysql-zrm.conf
install -D -m 0755 -o mysql -g mysql conf/inc1.conf $(DESTDIR)/$(CONFDIR)/inc1/mysql-zrm.conf
install -D -m 0755 -o mysql -g mysql conf/dump0.conf $(DESTDIR)/$(CONFDIR)/dump0/mysql-zrm.conf
install -d -m 0755 -o mysql -g mysql $(DESTDIR)/$(PLUGIN)
install -m 0755 -o mysql -g mysql post-backup-st-zrm.pl $(DESTDIR)/$(PLUGIN)
install -d -m 0755 -o root -g root $(DESTDIR)/$(BINDIR)
install -m 4755 -o root -g root zrm $(DESTDIR)/$(BINDIR)
我可以简单地make install
以root身份(或使用sudo
),它会安装得很漂亮。作为 foo(非特权)用户,调用make install
会返回错误(-o 选项需要超级用户)。
我需要更改它以便我可以两者sudo make install
,make install DESTDIR=/tmp/foo
甚至将它打包到 .deb 或 .rpm 中,然后从我的 Makefile 中调用安装目标。
对我来说最好的解决方案是什么?替换对 cp 的安装调用?删除 -o 并放一个 chown/chmod ?
谢谢你。