系统故障后 Debconf 崩溃

系统故障后 Debconf 崩溃

我的一台运行 debian wheezy 的 Web 服务器出现了严重问题。上周服务器中心似乎出现了错误,导致机器突然关闭。

从那时起,一些文件似乎已经损坏。

sudo apt-get install -f
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 26 nicht aktualisiert.
2 nicht vollständig installiert oder entfernt.
Es müssen noch 0 B von 1.518 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
debconf: Perl may be unconfigured (Can't locate Debconf/Log.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at (eval 1) line 4.
BEGIN failed--compilation aborted at (eval 1) line 4.
) -- aborting
dpkg: Fehler beim Bearbeiten von perl-base (--configure):
 Paket perl-base ist nicht bereit zur Konfiguration
 kann nicht konfiguriert werden (momentaner Status »half-installed«)
man-db (2.6.2-1) wird eingerichtet ...
/var/lib/dpkg/info/man-db.postinst: 3: .: Can't open /usr/share/debconf/confmodule
dpkg: Fehler beim Bearbeiten von man-db (--configure):
 Unterprozess installiertes post-installation-Skript gab den Fehlerwert 2 zurück
Fehler traten auf beim Bearbeiten von:
 perl-base
 man-db
E: Sub-process /usr/bin/dpkg returned an error code (1)

这里似乎没有配置 perl,并且 man-db 存在一些问题。我无法安装任何系统或软件更新。

我首先遇到了 glibc6 的问题,并从 dpkg 存档文件夹重新安装了它。

但主要原因似乎是/usr/share/debconf目录是完全消失了

有人能给我一些建议吗?如何才能“拯救”那台服务器,修复系统,而无需进行全新安装?任何帮助我都会感激不尽!

系统信息

uname -a
Linux wn-main-debian 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux

答案1

好的,我找到了一个可行的“解决方案”,这意味着上面的错误已经消失。我不知道是否还会出现其他错误。但目前这个方法有效,并帮助我备份了所有内容。

基本上,我是从档案文件夹perl-base安装的。debconf

/var/cache/apt/archives$ ls -als | grep perl
1484 -rw-r--r-- 1 root root 1517844 Sep 30 06:11 perl-base_5.14.2-21+deb7u1_amd64.deb

/var/cache/apt/archives$ sudo dpkg -i perl-base_5.14.2-21+deb7u1_amd64.deb 
(Lese Datenbank ... 44661 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Ersetzen von perl-base 5.14.2-21+deb7u1 (durch perl-base_5.14.2-21+deb7u1_amd64.deb) ...
Ersatz für perl-base wird entpackt ...
perl-base (5.14.2-21+deb7u1) wird eingerichtet ...

/var/cache/apt/archives$ ls -als | grep debconf
 168 -rw-r--r-- 1 root root  171018 Dez 26  2012 debconf_1.5.49_all.deb

/var/cache/apt/archives$ sudo dpkg -i debconf_1.5.49_all.deb 
(Lese Datenbank ... 44661 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Ersetzen von debconf 1.5.49 (durch debconf_1.5.49_all.deb) ...
Ersatz für debconf wird entpackt ...
debconf (1.5.49) wird eingerichtet ...

答案2

我将 linuxmint 19.2 升级到 19.3 时遇到了同样的问题。我只是从 debconf 包中提取了 Debconf/ 目录(与已安装的版本相同),然后复制到错误中提到的位置。它对我有用。

答案3

您可以在另一个(虚拟)系统上安装相同的操作系统版本。然后,您应该能够将 rsync/usr/share/debconf或任何其他丢失的文件传输到损坏的系统。如果只有静态文件丢失,那么应该可以。但是,如果 dpkg/debconf db 损坏,这将无济于事。不确定这是否比备份数据并重新安装更快。

相关内容