问题:在ubuntu19.04使用sudo apt-get update 提示标题内容。
原因:Ubuntu 14以上就已经不再支持libpng12,然而有些软件又依赖于libpng12。
使用sudo apt install xxx提示下列软件包有未满足的依赖关系: openjdk-9-jre : 依赖: libpng12-0 (>= 1.2.13-4) 但是它将不会被安装。因此得知openjdk-9需要libpng12。
使用ls -alh /lib/x86_64-linux-gnu/libpng1* 得到如下并没有libpng12
lrwxrwxrwx 1 root root 19 10月 28 22:48 /lib/x86_64-linux-gnu/libpng16.so.16 -> libpng16.so.16.36.0
-rw-r--r-- 1 root root 214K 4月 8 2019 /lib/x86_64-linux-gnu/libpng16.so.16.36.0
原因显而易见:接下来安装libpng12
方法一:
sudo vim /etc/apt/source.list
我们在其中加上deb http://cz.archive.ubuntu.com/ubuntu xenial main
保存后
sudo apt-get update
sudo apt-get install libpng12-0
没有效果。
方法二:
下载libpng12-0.deb然后安装
http://kr.archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb
sudo mv libpng12.so.0 /usr/lib/x86_64-linux-gnu/
安装失败。。
方法三:
1. 下载文件
链接:
https://pan.baidu.com/s/1IAiUENyPnXD3kDJyV11gPA密码:
qw6j
2. 复制文件
sudo cp libpng12.so.0 /usr/lib/x86_64-linux-gnu/
失败。。。
方法三看到很多人都试成功了,但是在我这不行,可能和我系统有关吧。大家可以试下^_^。
依赖libpng12的包是openjdk-9,好吧,我把openjdk-9卸载了。。。索性安装sun jdk。
最后说下删除openjdk-9的坑。因为安装openjdk就提示缺少依赖libpng12。我没搭理它,好吧,怪我!
使用sudo apt-get purge openjdk*卸载openjdk时。问题来了:还是依赖问题。额!好吧,谁让我是小白呢。
最后附上我正确删除openjdk的步骤。感谢作者4528283108ee 原文链接:https://www.jianshu.com/p/c8701311a718
一、卸载旧有包
大神法一:
1、 移除所有 Java相关包 (Sun, Oracle, OpenJDK, IcedTea plugins, GIJ):
?
1
2
3
2、清除配置信息
?
1
3、清除java配置及缓存
?
1
4、手动清除JVMs
?
1
5、清除所有java实体,如果还有,则使用Alternatives命令(Remove Java entries, if there is still any, from the alternatives):
?
1
6、查找可能存在 Java的路径:
?
1
2
如果上述命令产生了任何类似于这样( /path/to/jre1.6.0_34/bin/pack200)的结果,则 删除 bin对父目录,可以这样做: sudo rm -rf /path/to/jre1.6.0_34
大神法二:
1、卸载之前,先检查Java对安装情况
To check the setup before uninstalling Java.
接下来,删除符号链接
2、(替换(version)为你的java具体版本.命令 “java -version”来得到,我的所1.7.0_15,那么你可以用命令 ****update-alternatives --remove "java" "/usr/lib/jvm/jdk1.7.0_15/bin/java"****来删除)
?
1
2
3
确认这些符号链接(symlinks)是否都删除了
后面俩命令必须要慎之又慎,不然可能毁掉你的系统.
然后,
最后,
删除JAVA_HOME 这行环境变量。
-----------------分割线---------------------------------
要删除 OpenJDK (如果已安装的话)。首先,检查是安装的哪个 OpenJDK包。
移除 openjdk包:
卸载 OpenJDK 相关包:
检查所有 OpenJDK包是否都已卸载完毕:
完毕。