dpkg:unrecoverable 致命错误(包 'java-common' 的文件列表文件缺少最后的换行符)
dpkg:unrecoverable fatal error (files list file for package 'java-common' is missing final newline)
我正在尝试使用命令 apt-get install ...
在我的 linux OS 上安装软件包。
问题是我得到这个错误:
Selecting previously unselected package liberror-perl.
dpkg: unrecoverable fatal error, aborting:
files list file for package 'java-common' is missing final newline
E: Sub-process /usr/bin/dpkg returned an error code (2)
谷歌搜索错误(甚至逐行搜索),解决方案似乎是 "to download and install missing packages to resolve dependencies",因为它被指出 here。问题是,当我尝试执行 sudo apt-get -f install
时,我会一次又一次地遇到同样的错误。有什么建议吗?如果无法使用 apt-get,如何更改软件包?
我已经使用 python 脚本解决了问题:
#!/usr/bin/python
# 8th November, 2009
# update manager failed, giving me the error:
# 'files list file for package 'xxx' is missing final newline' for every package.
# some Googling revealed that this problem was due to corrupt files(s) in /var/lib/dpkg/info/
# looping though those files revealed that some did not have a final new line
# this script will resolve that problem by appending a newline to all files that are missing it
# NOTE: you will need to run this script as root, e.g. sudo python newline_fixer.py
import os
dpkg_path = '/var/lib/dpkg/info/'
paths = os.listdir(dpkg_path)
for path in paths:
path = dpkg_path + path
f = open(path, 'a+')
data = f.read()
if len(data) > 1 and data[-1:] != '\n':
f.write('\n')
print 'added newline character to:', path
f.close()
在运行命令脚本sudo python name_script.py
之后,问题解决了:似乎有些文件被破坏了。提出了解决方案 here
您必须删除丢失的文件
sudo rm /var/lib/dpkg/info/java-common.list
现在您可以重新安装这个
sudo apt-get install java-common --reinstall
如果出现以下错误
dpkg:无法恢复的致命错误,正在中止:
包 'java-common' 的文件列表文件缺少最后的换行符
E: 子进程 /usr/bin/dpkg 返回错误代码 (2)
注意:java-common是列表名
使用以下命令解决此问题(修改 java-common 与您的列表名称)
sudo rm /var/lib/dpkg/info/java-common.list
sudo apt-get install java-common --reinstall
sudo dpkg --configure -a
须藤更新
sudo apt 升级
- sudo dpkg --configure -a
- sudo apt-get -f 安装 sudo apt-get clean
- sudo apt-get update && sudo apt-get upgrade
它解决了我的问题。
我正在尝试使用命令 apt-get install ...
在我的 linux OS 上安装软件包。
问题是我得到这个错误:
Selecting previously unselected package liberror-perl.
dpkg: unrecoverable fatal error, aborting:
files list file for package 'java-common' is missing final newline
E: Sub-process /usr/bin/dpkg returned an error code (2)
谷歌搜索错误(甚至逐行搜索),解决方案似乎是 "to download and install missing packages to resolve dependencies",因为它被指出 here。问题是,当我尝试执行 sudo apt-get -f install
时,我会一次又一次地遇到同样的错误。有什么建议吗?如果无法使用 apt-get,如何更改软件包?
我已经使用 python 脚本解决了问题:
#!/usr/bin/python
# 8th November, 2009
# update manager failed, giving me the error:
# 'files list file for package 'xxx' is missing final newline' for every package.
# some Googling revealed that this problem was due to corrupt files(s) in /var/lib/dpkg/info/
# looping though those files revealed that some did not have a final new line
# this script will resolve that problem by appending a newline to all files that are missing it
# NOTE: you will need to run this script as root, e.g. sudo python newline_fixer.py
import os
dpkg_path = '/var/lib/dpkg/info/'
paths = os.listdir(dpkg_path)
for path in paths:
path = dpkg_path + path
f = open(path, 'a+')
data = f.read()
if len(data) > 1 and data[-1:] != '\n':
f.write('\n')
print 'added newline character to:', path
f.close()
在运行命令脚本sudo python name_script.py
之后,问题解决了:似乎有些文件被破坏了。提出了解决方案 here
您必须删除丢失的文件
sudo rm /var/lib/dpkg/info/java-common.list
现在您可以重新安装这个
sudo apt-get install java-common --reinstall
如果出现以下错误
dpkg:无法恢复的致命错误,正在中止: 包 'java-common' 的文件列表文件缺少最后的换行符 E: 子进程 /usr/bin/dpkg 返回错误代码 (2)
注意:java-common是列表名
使用以下命令解决此问题(修改 java-common 与您的列表名称)
sudo rm /var/lib/dpkg/info/java-common.list
sudo apt-get install java-common --reinstall
sudo dpkg --configure -a 须藤更新 sudo apt 升级
- sudo dpkg --configure -a
- sudo apt-get -f 安装 sudo apt-get clean
- sudo apt-get update && sudo apt-get upgrade
它解决了我的问题。