使用 Oracle® Solaris 11.2 目录和命名服务:DNS 和 NIS

退出打印视图

更新时间: 2014 年 7 月
 
 

修改 Makefile

以下过程介绍如何在 Makefile 中添加和删除数据库。

如何修改 /var/yp/Makefile 以使用特定数据库

此过程要求您已配置了一台 NIS 主服务器。

  1. 成为管理员。

    有关获取合适的权限来执行特定任务的更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的 使用所指定的管理权限

  2. 通过添加要添加的数据库的名称来修改以单词 all 开头的行:
    all: passwd group hosts ethers networks rpc services protocols \
    netgroup bootparams aliases netid netmasks \
    audit_user auth_attr exec_attr prof_attr \
    auto_direct 

    各项的顺序不相关,但连续行开头的空白处必须为制表符,而不是空格。

  3. Makefile 的末尾添加以下行:
    auto_direct: auto_direct.time
    auto_home: auto_home.time
  4. 在该文件中间添加 auto_direct.time 项。
    auto_direct.time: $(DIR)/auto_direct
    @(while read L; do echo $$L; done < $(DIR)/auto_direct
    $(CHKPIPE)) | \ (sed -e "/^#/d" -e "s/#.*$$//" -e "/^ *$$/d"
    $(CHKPIPE)) | \ $(MAKEDBM) - $(YPDBDIR)/$(DOM)/auto_direct;
    @touch auto_direct.time;
    @echo "updated auto_direct";
    @if [ ! $(NOPUSH) ]; then $(YPPUSH) auto_direct; fi
    @if [ ! $(NOPUSH) ]; then echo "pushed auto_direct"; fi

    其中

    • CHKPIPE 确保在将结果传输给后面的命令之前管道符号 (|) 左侧的运算已成功完成。如果管道符号左侧的运算未成功完成,该进程将中止,并显示 "NIS make term nated"(NIS make 中止)消息。

    • NOPUSH 阻止 makefile 调用 yppush 将新映射传送到从属服务器。如果不设置 NOPUSH,将自动完成推送。

    开头的 while 循环用于消除输入文件中的所有反斜杠扩展行。sed 脚本用于消除注释和空行。

    对所有其他自动挂载程序映射(例如 auto_home 或任何其他非缺省映射)使用相同的过程。

  5. 运行 make 命令。
    # make mapname

    其中,mapname 是要创建的映射的名称。

如何修改 Makefile 以删除数据库

如果不希望 Makefile 为特定数据库生成映射,请按如下步骤编辑 Makefile

  1. all 规则中删除数据库的名称。
  2. 为要删除的数据库删除或注释掉数据库规则。

    例如,要删除 hosts 数据库,应删除 hosts.time 项。

  3. 删除 time 规则。

    例如,要删除 hosts 数据库,应删除 hosts: hosts.time 项。

  4. 从主服务器和从属服务器中删除映射。