Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux dpkg:不可恢复的致命错误(包';java common';的文件列表文件缺少最终换行符)_Linux_Ubuntu_Apt Get_Dpkg - Fatal编程技术网

Linux dpkg:不可恢复的致命错误(包';java common';的文件列表文件缺少最终换行符)

Linux dpkg:不可恢复的致命错误(包';java common';的文件列表文件缺少最终换行符),linux,ubuntu,apt-get,dpkg,Linux,Ubuntu,Apt Get,Dpkg,我正在尝试使用命令apt get install…在我的linux操作系统上安装软件包。 问题是我遇到了以下错误: 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/dp

我正在尝试使用命令
apt get install…
在我的linux操作系统上安装软件包。 问题是我遇到了以下错误:

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)

谷歌搜索错误(甚至逐行搜索),解决方案似乎是“下载并安装缺失的软件包以解决依赖关系”,正如它指出的那样。问题是,当我尝试执行
sudoapt get-f install
时,仍然会一次又一次地出现相同的错误。有什么建议吗?如果无法使用apt get,如何更改包?

我已使用python脚本解决了此问题:

#/usr/bin/python
#2009年11月8日
#更新管理器失败,出现错误:
#“文件列表”包“xxx”的文件缺少每个包的“最终换行符”。
#一些谷歌搜索显示,这个问题是由于/var/lib/dpkg/info中的文件损坏造成的/
#循环浏览这些文件,发现有些文件没有最后的新行
#此脚本将通过向所有缺少新行的文件追加新行来解决该问题
#注意:您需要以root用户身份运行此脚本,例如sudo python newline_fixer.py
导入操作系统
dpkg_path='/var/lib/dpkg/info/'
path=os.listdir(dpkg\u路径)
对于路径中的路径:
路径=dpkg\u路径+路径
f=打开(路径“a+”)
data=f.read()
如果len(data)>1且data[-1:]!='\n':
f、 写入('\n')
打印“将换行符添加到:”,路径
f、 关闭()

在使用命令
sudo python name_script.py
运行脚本后,问题得到了解决:一些文件似乎已损坏。解决方案已经提出

您必须删除丢失的文件

sudo rm /var/lib/dpkg/info/java-common.list sudorm/var/lib/dpkg/info/java-common.list 现在你可以重新安装这个了

sudo apt-get install java-common --reinstall
sudo apt get install java common——如果出现以下错误,请重新安装

dpkg:无法恢复的致命错误,正在中止: 包“java common”的文件列表文件缺少最终换行符 E:子进程/usr/bin/dpkg返回错误代码(2)

注意:java common是列表名

使用以下命令解决此问题(使用列表名修改java common)

sudorm/var/lib/dpkg/info/java-common.list

sudo apt get install java common——重新安装

sudo dpkg—配置-a sudoapt更新
sudo apt升级

适用于那些通过aol关键字来到这里的人
apt get newline
缩进,如果你的示例不存在,上次我在python中检查时,它是有效的。非常感谢。没有其他解决方案对我有效。只有这个!!不。问题是不可能使用
apt-get
。请参阅问题以了解更多详细信息。是的,我知道,您必须删除此文件,然后自动将其删除。如果不删除,则应同时运行此命令“sudo-apt-autoremove”和“sudo-apt-clean”这对我很有效-只是有点难以找到正确的
列表
文件。删除文件后,我刚刚执行了
apt升级
,并收到消息
dpkg:warning:files list file for package'xxx'缺失;假设软件包当前没有安装任何文件
nope;无法使用
apt
。如果不解决此问题,则无法使用
sudo apt get install…