今天,在更新管理器提示后,我将 sun-java6-jdk 软件包的安装更新为版本 6.24-1build0.10.10.1。但是,这现在导致一些编译失败,所以我想恢复到之前安装的版本。
我尝试使用 Synaptic,但“强制版本”菜单命令被禁用。
我尝试使用以下命令来安装以前的版本
sudo apt-get install sun-java6-jdk=6.22-0ubuntu1~10.10
但我不确定我是否有正确的版本:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Version ‘6.22-0ubuntu1~10.10’ for ‘sun-java6-jdk’ was not found
我从这个更新日志中获取了此版本号:https://launchpad.net/ubuntu/+source/sun-java6/+changelog
这是安装软件包先前版本的正确方法吗?我从 sun-java6 更改日志中获得了正确的版本吗?
答案1
这是降级软件包的正确方法,但是您似乎弄错了版本号......
apt-get install sun-java6-jdk=6.22-0ubuntu1~10.10 - 不起作用,因为 Package.gz 列表中没有这样的包,这就是为什么你会收到错误:未找到‘sun-java6-jdk’的版本‘6.22-0ubuntu1~10.10’。
试试这个...
dpkg -r sun-java6-jdk
--- 删除 sun-java6-jdk
下载适用于您以前的 sun-java6-jdk 版本的 .deb,您可能已经在 /var/cache/apt/archives 中拥有此文件 ---$ ls /var/cache/apt/archives/sun* -lash
在您的终端中使用:来查明您本地是否有旧版本。
apt-get install -d sun-java-jdk
/openjdk-6-jdk——-d 只会将文件下载到您的 /var/cache/apt/arhives 文件夹中。
dpkg -i --force-downgrade /var/cache/apt/archives/sun-java-jdk
(您拥有的版本号)。
锁定版本在 Synaptic 中,所以 ubuntu 不会尝试再次升级它。 软件包管理器页面也会帮助解释事情——降级在手册页上有一个很大的警告标签,所以请注意不要破坏你的依赖关系。有一篇文章这里和这里这解释了降级的原因。
答案2
我获取旧版 Java 的方式不同。我使用了命令$ sudo apt-get install default-jre
,所以您也应该使用该命令。不需要额外的存储库。如果您确实使用此命令,我建议您通过输入删除您尝试使用的上一个包sudo apt-get remove sun-java6-jdk=6.22-0ubuntu1~10.10
。现在,您应该有一个可以运行的旧版 Java。该default-jre
包使用 Java 版本 1.7.0_91。我希望这个答案对您有用。