如何在centos7中安装libnss-mdns

如何在centos7中安装libnss-mdns

我有一个需求,需要将一个服务从 Ubuntu 镜像迁移到 centos 镜像。我在安装服务时遇到了问题yum install avahi-daemon libnss-mdns。我通过以下方式找到了 avahi-daemon 在 centos 上的安装包名称命令未找到网站,但我没找到 的名字libnss-mdns

有没有其他方便的方法来查找不同服务器中各个服务的安装包名,至少是包libnss-mdns名?

我非常感谢任何对此提供的帮助。

需要迁移的部分Dockerfile内容:

...
# ubtuntu Dockerfile
RUN set -ex \
 && DEPS="avahi-daemon libnss-mdns" \
 && apt-get update && apt-get install -y --no-install-recommends $DEPS \
 # Disable nss-mdns's two-label limit heuristic so that host names
 # with multiple labels can be resolved.
 # E.g. redis-12000.rediscluster.local, which has 3 labels.
 # (https://github.com/lathiat/nss-mdns#etcmdnsallow)
 && echo '*' > /etc/mdns.allow \
 # Configure NSSwitch to use the mdns4 plugin so mdns.allow is respected
 && sed -i "s/hosts:.*/hosts:          files mdns4 dns/g" /etc/nsswitch.conf \
 # We run a `avahi-daemon` without `dbus` so that we can start it as a
 # non-root user. `dbus` requires root permissions to start. And
 # anyway, there's a way to run `avahi-daemon` without `dbus` so why
 # shouldn't we use it.  https://linux.die.net/man/5/avahi-daemon.conf
 && printf "[server]\nenable-dbus=no\n" >> /etc/avahi/avahi-daemon.conf \
 && chmod 777 /etc/avahi/avahi-daemon.conf \
 # We create the directory because when the first time `avahi-daemon`
 # is run, the directory doesn't exist and the `avahi-daemon` must have
 # permissions to create the directory under `/var`.
 && mkdir -p /var/run/avahi-daemon \
 # Change the permissions of the directories avahi will use.
 && chown avahi:avahi /var/run/avahi-daemon \
 && chmod 777 /var/run/avahi-daemon
...

答案1

有没有其他方便的方法来找到不同服务器中各个服务的安装包名,至少有libnss-mdns包?

  1. 在旧系统上,列出包中包含的文件(使用dpkg -Lrpm -ql)并尝试找出重要的文件。对于 libnss-mdns,它将是libnss_mdns.so.2,由 glibc 加载的“名称服务”模块。

  2. 在新系统上,使用包管理器的“提供什么”或“按文件搜索”功能(例如yum whatprovidesapt-file search)来确定哪个包提供该文件。(我没有 CentOS 机器来检查结果。)

相关内容