星期六, 一月 20, 2007

*** 关于 upm 的用户的问题 ***

主要是操作包的用户还是应该和操作数据的用户分开!比如安装 mysql,如果使用了如下的方式:
pkgname = "mysql";
version = "4.1.22";
user = "mysql";
groups = "";
group = "mysql";
archive = "mysql-4.1.22.tar.gz";
command = "tar xfz mysql-4.1.22.tar.gz";
command = "cd mysql-4.1.22";
command = "./configure --without-debug --with-extra-charsets=gb2312 --enable-assembler --without-isam --without-innodb --with-pthread --enable-thread-safe-client --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --localstatedir=/data/mysql";
command = "make";
command = "make install";
command = "scripts/mysql_install_db --user=mysql";
command = "cp support-files/mysql.server /etc/rc.d/init.d/mysqld";
command = "chmod 0700 /etc/rc.d/init.d/mysqld";
command = "cd ..";
command = "rm -rf mysql-4.1.22";
command = "cd /usr/local/libexec";
command = "cp mysqld mysqld.backup";
command = "strip mysqld";
time = "20070107 21:22:55 Sun";
那么 /data/mysql 的属主和这个包本身的属主就都是 mysql 这个用户了。这在安装的时候固然是方便了,但在删除的时候就会有问题,因为你基本上只会希望删除包的的程序,而不是它产生的其他数据。

所以类似于 /var 这样的目录不应该出现在初试化目录中;我在 userpack 中也设定了给用户名增加前缀的功能,比如增加"_"前缀(不过没有经过完善的测试,对于测试,我也需要花很多时间好好学习学习──想做的事情很多,能做的事情很少,唉),当然如果分类的问题解决了,那么每个用户名可以自然的增加一个分类名,如 db.mysql,就不会有这个问题了;而对于运行象 mysql_install_db 这样的命令,还是在完善了 sudo 命令的基础上,由 root 身份来执行并指定不同的用户比较好。

没有评论: