安装不同版本的软件包

我正在运行清晰的服务器并安装了tomcat。 它安装的版本是6.0.24-2ubuntu1.6。

这是我绑的版本吗? 是否可以安装更新版本? 特立独行的那个是6.0.28。

也许我可以添加一个源代码来提供这个版本的清晰安装? 在包管理器用户界面中,我可以“强制版本”。 是否可以从命令行替代强制版本?

简短回答:

使用固定,您可以选择来自特立独行的软件包,并自动获取它们的依赖关系,并通过软件包管理器使它们保持最新。 https://help.ubuntu.com/community/PinningHowto

从https://askubuntu.com/a/103338/42024复制的长答案:

探索apt pinning会更好,请参阅man apt_preferences

因此,假设您使用的是Oneiric,并且您希望从Precise获得这些包。

如果您阅读该文章,您会看到我复制/粘贴了相关部分,并修改了版本名称

在/ etc / apt / preferences中

 Package: libccid Pin: release n=precise Pin-Priority: 990 Package: libpcsclite* Pin: release n=precise Pin-Priority: 990 Package: libusb* Pin: release n=precise Pin-Priority: 990 Package: opensc Pin: release n=precise Pin-Priority: 990 Package: pcscd Pin: release n=precise Pin-Priority: 990 Explanation: Uninstall or do not install any Ubuntu-originated Explanation: package versions other than those in the oneiric release Package: * Pin: release n=oneiric Pin-Priority: 900 Package: * Pin: release o=Ubuntu Pin-Priority: -10 

然后,我将/etc/apt/sources.list复制到/etc/apt/sources.list.d/precise.list并用精确替换了所有出现的oneiric。 然后运行apt-get update ,最后运行apt-get upgrade

 # apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: libpcsclite1 libusb-0.1-4 libusb-1.0-0 libusbmuxd1 4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 86.0 kB of archives. After this operation, 88.1 kB disk space will be freed. Do you want to continue [Y/n]? y Do you want to continue [Y/n]? y Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main libusb-0.1-4 amd64 2:0.1.12-20 [17.6 kB] Get:2 http://us.archive.ubuntu.com/ubuntu/ precise/main libusb-1.0-0 amd64 2:1.0.9~rc3-2 [30.9 kB] Get:3 http://us.archive.ubuntu.com/ubuntu/ precise/main libpcsclite1 amd64 1.7.4-2ubuntu1 [23.5 kB] Get:4 http://us.archive.ubuntu.com/ubuntu/ precise/main libusbmuxd1 amd64 1.0.7-2 [14.1 kB] Fetched 86.0 kB in 0s (124 kB/s) 

出于某种原因,pcscd和opensc没有安装,可能是因为它没有安装开始所以没有什么可以升级,没什么大不了的,我可以使用精确作为参考安装那个版本。

 $ apt-get install opensc pcscd -t precise 

注意使用-tpackagename/precise也可以。

并且有你想要的软件包,从最新版本开始, 只有那些软件包 ,它们也会自动更新。 如果您不再需要它们,只需删除/etc/apt/preferences的条目,下次运行apt-get upgrade它们将被删除。 如果您删除整个prefs文件,请务必删除该precise.list源文件以及我们的系统将尝试更新到最新的软件包集。 此外,如果您决定稍后进行dist-upgrade,则需要删除整个prefs文件,删除其他sources.list可能是个好主意。由于优先级较高,升级会找到,因为没有要更新的包。

Apt钉扎并不是那么难,你只需要挖掘一点并进行实验。 通过检查apt-cache policy找到n= etc的所有动词。

这就是为什么经验丰富的管理员咆哮和狂热关于apt vs yum。 您可以简洁地更新服务,并以干净,确定和可维护的方式使其保持最新状态。

不再编译包。

我强烈建议您阅读整个手册页并熟悉这个概念,并在继续提交此建议之前阅读其他有关apt pinning的指南。 祝好运并玩得开心点!

https://help.ubuntu.com/community/PinningHowto

您可以使用apt-get install somepackage = someversion强制命令行上的版本,但是您不能要求知道存储库中没有的版本,这通常意味着您所使用的版本。

您可以尝试从启动板手动下载特立独行的deb并进行安装。 有时它可以工作,但有时它取决于各种库的较新版本,因此不会安装。 另一种选择是下载最新的源代码并自行编译。

清醒只有6.0.24可用,并且不太可能改变。 将tomcat等软件移植到旧版本很少见。

但是你仍然可以使用tomcat二进制包运行最新的tomcat。 我正在使用它。