今天,在我的台式机 Ubuntu 10.04 上,更新管理器自动更新了一些软件包(ca-certificates、postgres、samba 等),但出现了问题。更新完成并显示错误消息。
现在无法再安装或卸载任何东西。我尝试升级到 Ubuntu 12.04,但仍然出现同样的错误。
这些是现在阻止任何更改的错误消息(德语):
$ sudo apt-get upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Status-Informationen einlesen... Fertig
Die folgenden Pakete sind zurückgehalten worden:
google-chrome-stable
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 1 nicht aktualisiert.
8 nicht vollständig installiert oder entfernt.
Nach dieser Operation werden 0B Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]? j
Richte install-info ein (4.13a.dfsg.1-5ubuntu1) ...
/var/lib/dpkg/info/install-info.postinst: 36: update-info-dir: Permission denied
dpkg: Fehler beim Bearbeiten von install-info (--configure):
Unterprozess installiertes post-installation-Skript gab den Fehlerwert 126 zurück
Richte ca-certificates-java ein (20110426ubuntu0.10.04.2) ...
dpkg (Unterprozess): kann installiertes post-installation-Skript nicht ausführen: Keine Berechtigung
dpkg: Fehler beim Bearbeiten von ca-certificates-java (--configure):
Unterprozess installiertes post-installation-Skript gab den Fehlerwert 2 zurück
Richte samba-common ein (2:3.4.7~dfsg-1ubuntu3.14) ...
/var/lib/dpkg/info/samba-common.postinst: 122: ucf: Permission denied
dpkg: Fehler beim Bearbeiten von samba-common (--configure):
Unterprozess installiertes post-installation-Skript gab den Fehlerwert 126 zurück
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von samba-common-bin:
samba-common-bin hängt ab von samba-common (>= 2:3.4.0~pre1-2); aber:
Paket samba-common ist noch nicht konfiguriert.
dpkg: Fehler beim Bearbeiten von samba-common-bin (--configure):
Abhängigkeitsprobleme - lasse es unkonfiguriert
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von samba:
samba hängt ab von samba-common (= 2:3.4.7~dfsg-1ubuntu3.14); aber:
Paket samba-common ist noch nicht konfiguriert.
samba hängt ab von samba-common-bin; aber:
Paket samba-common-bin ist noch nicht konfiguriert.
dpkg: Fehler beim Bearbeiten von samba (--configure):
Abhängigkeitsprobleme - lasse es unkonfiguriert
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von smbclient:
smbclient hängt ab von samba-common (= 2:3.4.7~dfsg-1ubuntu3.14); aber:
Paket samba-common ist noch nicht konfiguriert.
dpkg: Fehler beim Bearbeiten von smbclient (--configure):
Abhängigkeitsprobleme - lasse es unkonfiguriert
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von smbfs:
smbfs hängt ab von samba-common (= 2:3.4.7~dfsg-1ubuntu3.14); aber:
Paket samba-common ist noch nicht konfiguriert.
dpkg: Fehler beim Bearbeiten von smbfs (--configure):
Abhängigkeitsprobleme - lasse es unkonfiguriert
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von winbind:
winbind hängt ab von samba-common (= 2:3.4.7~dfsg-1ubuntu3.14); aber:
Paket samba-common ist noch nicht konfiguriert.
dpkg: Fehler beim Bearbeiten von winbind (--configure):
Abhängigkeitsprobleme - lasse es unkonfiguriert
Fehler traten auf beim Bearbeiten von:
install-info
ca-certificates-java
samba-common
samba-common-bin
samba
smbclient
smbfs
winbind
E: Sub-process /usr/bin/dpkg returned an error code (1)
我尝试找到导致“权限被拒绝”(=“Keine Berechtigung”)错误的文件,但就是找不到。例如,执行某个无法手动执行的安装后脚本时,会出现“权限被拒绝”
$ sudo /var/lib/dpkg/info/ca-certificates-java.postinst --configure
sudo: unable to execute /var/lib/dpkg/info/ca-certificates-java.postinst: Keine Berechtigung
但我不明白为什么,权限对我来说似乎没问题:
$ ls -l /var/lib/dpkg/info/ca-certificates-java.postinst
-rwxr-xr-x 1 root root 1759 2014-03-05 17:07 /var/lib/dpkg/info/ca-certificates-java.postinst
有人能提示我该怎么做才能消除这些错误并恢复我的工作系统吗?
答案1
我可以对一些调试提出建议。
所有postinst
脚本都是shell 脚本,这样您就可以用文本编辑器查看它们并了解它们的作用。
例如,less /var/lib/dpkg/info/install-info.postinst
显示脚本正在运行update-info-dir
查看的命令/usr/share/info/
。请在那里检查您的文件权限。
/var/lib/dpkg/info/ca-certificates-java.postinst
反过来尝试更新位于 的 Java 密钥库/etc/ssl/certs/java/cacerts
。请运行以下命令测试是否可以列出密钥库中的证书:
keytool -list -v -keystore /etc/ssl/certs/java/cacerts
默认密码是“changeit”。
答案2
谢谢你的提示。
通过检查返回“权限被拒绝”错误的脚本,我发现它们都有一个bash
shebang。
瞧瞧:由于某种奇怪的原因,/bin/bash
没有设置执行权限。
sudo chmod 755 /bin/bash
执行完所有脚本后,一切又恢复正常。