Debian コンピュータでシステムアップグレード (apt-get アップグレード) を実行した後、apt-get を使用しようとするたびにエラーが発生します。例:
# apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up initscripts (2.88dsf-41+deb7u1) ...
insserv: Service killprocs has to be enabled to start service single
insserv: exiting now!
update-rc.d: error: insserv rejected the script header
dpkg: error processing initscripts (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
initscripts
E: Sub-process /usr/bin/dpkg returned an error code (1)
解決策を見つけようとしましたが、似たようなものが見つかりませんでした。まず、「完全にインストールまたは削除されていない」パッケージがありました。しかし、それを見つけるためのコマンドが見つかりません。試験を終えた:
dpkg -l | grep rc
しかし、約20個のパケットがリストされているので、このパケットを見つけるより良い方法があります。
パケットシステムを修正するために、次の一般的な手順を試しました。
apt-get clean && sudo apt-get autoremove
apt-get -f install
dpkg --configure -a
cleanコマンドは問題ありませんが、上記のようにinstallコマンドは失敗します。
必死にinsservを再インストールしてみましたが(パケットが破損しているかどうかはわかりません)、まだ同じ方法で失敗しました。
# apt-get install --reinstall insserv
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 8 not upgraded.
1 not fully installed or removed.
Need to get 63.8 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://ftp.us.debian.org/debian/ wheezy/main insserv armel 1.14.0-5 [63.8 kB]
Fetched 63.8 kB in 0s (85.5 kB/s)
Setting up initscripts (2.88dsf-41+deb7u1) ...
insserv: Service killprocs has to be enabled to start service single
insserv: exiting now!
update-rc.d: error: insserv rejected the script header
dpkg: error processing initscripts (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
initscripts
E: Sub-process /usr/bin/dpkg returned an error code (1)
答え1
/etc/rc1.d/S01killprocs -> ../init.d/killprocs
なくなった、きっと中にいたinitscripts
しかし、insserv
それは必要です。確認が必要です
たぶん手動でインストールし、.deb
別のディレクトリに解凍して正しい場所にコピーすることもできます。
dpkg -x /var/cache/apt/archives/initscripts_2.88dsf-41_i386.deb /tmp/somedir
2.88dsf-41_i386
私のバージョンです。あなたのバージョンを使用してください:-)
編集する
手動で操作した場合は、通常どおり再インストールしてください。
答え2
/var/cache/apt/archivesからキャッシュされた.debファイルをすべて削除した後、次のコマンドを実行してUbuntu 16.04でこの問題を解決できました。
apt-get clean && sudo apt-get autoremove
これが誰かの問題を解決することを願っています。
答え3
次のコマンドは、同様のアップグレードの問題を解決しました。
dpkg -i /var/cache/apt/archives/initscripts_2.88dsf-59.3ubuntu2_i386.deb
Ubuntu 14.04(!)から次のLTSにアップグレードするためにdo-release-upgradeを使用していますが、次のエラーが発生しました。
update-rc.d: error: insserv rejected the script header
dpkg: error processing package util-linux (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
util-linux
そしてdpkg-reconfigure util-linuxが私に与えた
/usr/sbin/dpkg-reconfigure: initscripts is broken or not fully installed
apt-get install --reinstall initscripts も作成されました。
E: Internal Error, No file name for initscripts:i386
ただし、dpkg(上記)は機能し、アップグレードを続行できます。これが誰かに役立つことを願っています。