Fre*_*idt 14 debian samba package-management ubuntu config-files
我最近安装了 Samba,但我弄乱了/etc/samba/smb.conf文件。如何恢复原始配置?
简短回答:/usr/share/samba/smb.conf是 smb.conf 文件的原始版本。
当遇到任何包的这种情况时,我所做的是以下之一:
从您的编辑器检查原始版本的备份文件。我使用 Emacs,它通常会保留foo~文件,并且我设置了数字版本控制选项,因此原始版本始终为foo.~1~. 但也许您是通过其他方式完成的,或者使用了其他编辑器。如果您还没有打开此功能,请考虑检查您的编辑器的配置;进入是一个好习惯。
重新配置包用dpkg-reconfigure PACKAGENAME。有时这可以解决问题。根据我的经验,它很少奏效。这取决于包如何创建其配置文件。
清除并重新安装软件包(apt-get purge packagename后跟apt-get install packagename)。这应该始终有效。
在极端情况下,您必须在清除后手动查找并删除配置文件,然后再重新安装软件包,但这种情况很少见。但是,这将消除包的任何其他数据和/或配置文件,这并不总是可以接受的。
下载包( apt-get source foo)的源代码并查看原始配置文件是否作为文件存在。但是,可能配置文件事先不存在,而是在安装时由包的安装后脚本创建。
检查包( /var/lib/dpkg/info/foo.postinst)的 postinst 脚本以找出它在哪里创建配置文件以及它是如何创建的。然后尝试手动重复该过程。这是一项工作,并不总是那么容易。
编辑:
在服务器故障问题上发现了这一点。如果dpkg-reconfigure foo不起作用,请使用以下命令:
删除或重命名损坏的配置文件。
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
Run Code Online (Sandbox Code Playgroud)从 请求更换dpkg。
sudo dpkg -i --force-confmiss /path/to/samba-common.deb
Run Code Online (Sandbox Code Playgroud)这告诉dpkg用 .deb 中的配置文件替换丢失的配置文件。您可能会在 .deb 中找到原始包 .deb /var/cache/apt/archives,或者您可以使用发行版存储库中相同版本的全新副本。
dpkg -i --force-confnew foo.deb
Run Code Online (Sandbox Code Playgroud)
这告诉dpkg用 .deb 中的配置文件覆盖现有配置文件。您可能会在 .deb 中找到原始包 .deb /var/cache/apt/archives,或者您可以使用发行版存储库中相同版本的全新副本。
最好的方法(来自#ubuntu)是这样做:
dpkg-reconfigure <package>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,这意味着
dpkg-reconfigure samba-common
Run Code Online (Sandbox Code Playgroud)