在安装软件包或添加用户时自动触发操作

在Debian Wheezy上安装mysql-server的时候,用户“mysql”是在没有主目录的情况下创build的。 在我的设置中,直接在安装MySQL之后,会执行一个新的任务,依赖于具有/ var / lib / mysql作为主目录的mysql用户。

目前,这个任务失败了。 我必须调整mysql用户并重新运行我的任务。 所以我在找的是Debian中的一个内置方法,它允许我“预置”mysql用户的主目录(由mysql之一创build)或者创build一个触发器来对mysql的事件作出反应正在安装的服务器软件包(或正在创build的MySQL用户,我不在乎)。

我知道我可以修改mysql包或者在某种脚本或木偶清单中包装mysql安装。 不过,像这样的东西不适合我的设置。 我需要一个干净的Debian方法来做到这一点。

有什么可以触发包安装或用户创build? 我想通过inotify作为一种解决方法来观看mysql文件; 不过,我认为在这里我的小问题会导致太多的伤害。

我目前正在查看dpkg触发器,但我不知道这是否是正确的解决scheme..

您可以在安装包之前创build用户mysql。 如果你看一下包的preinst脚本,这不会破坏任何东西:

# creating mysql user if he isn't already there if ! getent passwd mysql >/dev/null; then # Adding system user: mysql. adduser \ --system \ --disabled-login \ --ingroup mysql \ --no-create-home \ --home /nonexistent \ --gecos "MySQL Server" \ --shell /bin/false \ mysql >/dev/null fi 

http://sources.debian.net/src/mysql-5.5/5.5.35%2Bdfsg-2/debian/mysql-server-5.5.preinst