web-dev-qa-db-ja.com

/etc/nsswitch.confはどのDebianパッケージに属しますか?

Debianマシンの/etc/nsswitch.confがどのパッケージに属しているかを調べようとしましたが、dpkg --search /etc/nsswitch.confは教えてくれません。誰か知っていますか?

6
JohnnyFromBF

このファイルはbase-filesパッケージに属しています。次のapt-fileコマンドを使用して、ファイルがどのパッケージに属しているかを確認できます。

Sudo apt-get install apt-file
apt-file update
apt-file search nsswitch.conf

Base-filesパッケージ内のいくつかのファイルの説明については、debian README filesを確認してください。

cat /usr/share/doc/base-files/README

Q.最近システムをアップグレードした後、ベースファイルの一部のファイルがsqueezeの新規インストールでインストールされたファイルと一致しないことに気付きました。私はそれについて警告されるべきではありませんか?

A.これらのファイルは構成ファイルであるため、完全にシステム管理者の管理下にあります。ベースファイルによってインストールされるファイルは単なるデフォルトです。デフォルトファイルの変更は、プロンプトを最小限に抑えることもポリシーであるため、ユーザーに警告するほど重要ではありません。これは、dpkgのconffileメカニズムを介して処理されない理由でもあります。

いずれの場合も、これらのファイルを「アップグレード」する場合は、postinstでベースファイル(つまり、/ var/lib/dpkg/info/base-files.postinst)を確認するだけで、それらがどのように作成され、どこに作成されるかがわかります。それらのマスターコピーは次のとおりです。

install_from_default /usr/share/base-files/nsswitch.conf /etc/nsswitch.conf
install_from_default /usr/share/base-files/dot.profile   /root/.profile
install_from_default /usr/share/base-files/dot.bashrc    /root/.bashrc
install_from_default /usr/share/base-files/profile       /etc/profile
install_from_default /usr/share/base-files/motd          /etc/motd

したがって、システムを新しくインストールしたスクイーズシステムとできるだけ類似させたい場合は、これらのファイルを手動で同期することをお勧めします。

8
cioby23

dpkg --searchconffileとして登録されていないため、/etc/nsswitch.confは表示されません。これは、少し特殊なケースです。たとえば、dpkg -S /etc/deluser.confは、/etc/deluser.confファイルを所有するパッケージを識別するために使用できます。
パスを省略した場合dpkg --search nsswitch.confは実際に結果を表示します。

dlocate ユーティリティも気に入っています。これは、どのパッケージがファイルを所有しているかを見つけるのに非常に役立ちます。 dlocateは、dpkg -Sのより高速な代替手段です。

apt-fileは、インストールされていないパッケージ内のファイルを検索するのに最も役立ちます。

6
Onlyjob
File                                    Packages
/usr/share/base-files/nsswitch.conf     base-files

これは https://packages.debian.org/index から取得し、「コンテンツ」で検索しました

1
Tensigh

すでにここにいくつかの良い答えがありますが、コメントのために追加するのは少しだけですが、多すぎるようです:

私にとって、4つのパッケージがこのパイに指を置いているように見えます。

martind@swiftboat:~$ grep -l /etc/nsswitch.conf /var/lib/dpkg/info/*.postinst
/var/lib/dpkg/info/base-files.postinst
/var/lib/dpkg/info/libc-bin.postinst
/var/lib/dpkg/info/libnss-mdns:AMD64.postinst
/var/lib/dpkg/info/libnss-myhostname:AMD64.postinst
martind@swiftboat:~$

base-filesはlibc-bin以上のものを提供します:

martind@swiftboat:~$ diff /usr/share/{libc-bin,base-files}/nsswitch.conf
9a10
> gshadow:        files
martind@swiftboat:~$

libnss-mdnsは、ホスト行にmdnsを追加します。 libnss-myhostnameはそこにmyhostnameを追加し、ホスト名--fqdnを機能させるために 推奨される方法 でなければ、/ etc/hostsの必要性を排除する可能性があります。

0
Martin Dorey