今天,当我发出命令时apt-get upgrade
,我注意到列表中有 Skype 更新。我对旧版本非常满意Skype 2.2.0.35 Beta
,绝对不希望发生任何变化。
我想要的不仅是禁止软件包更新,而且还要保存它以供将来安装。我该如何实现呢?
答案1
您希望skype
在可预见的将来保留该软件包的特定版本,即使有更新的版本可用,即使您从头开始再次安装 Ubuntu。
首先,假设这个测试版本的打包方式与当前版本相同,其实两个包裹- skype
, 和skype-bin
。
对于每个包,你必须做两件事:
将它们固定在当前版本,这样在更新软件时它们就不会受到影响。这个问题已经涵盖了这一点:
保留
.deb
用于安装它们的软件包文件的副本。您可能会在 中找到它们/var/cache/apt/archives
。它们的名称应以skype_2.2.0.35-
和开头skype-bin_2.2.0.35-
(并且都以 结尾.deb
)。备份它们,如果你必须从头开始重新安装 Ubuntu,或者你想在另一台机器上安装此版本的 Skype,只需安装这些软件包即可。安装它们的一种方法是
cd
进入包含.deb
文件的文件夹后运行此命令:sudo dpkg -i skype_2.2.0.35-*.deb skype-bin_2.2.0.35-*.deb
如果系统提示您由于没有安装必要的依赖项而无法完全配置其中一个或两个软件包,请确保您已连接到 Internet 并运行以下命令:
sudo apt-get -f install sudo dpkg --configure -a
最后,请注意,如果你继续使用不再支持的旧版 Skype上游:
- 随着时间的推移,它可能会停止工作,或者无法正常工作。
- 它可能包含在后续版本中修复的安全漏洞。
答案2
为了禁止更新它,你可以固定该包。
首先找出它的安装优先级。这是一个例子
$ sudo apt-cache policy skype
skype:
Installed: 4.0.0.8-1~precise
Candidate: 4.0.0.8-1~precise
Version table:
*** 4.0.0.8-1~precise 0
500 http://ppa.launchpad.net/upubuntu-com/chat/ubuntu/ precise/main amd64 Packages
100 /var/lib/dpkg/status
4.0.0.8-0oneiric1 0
500 http://archive.canonical.com/ubuntu/ precise/partner amd64 Packages
$
然后您可以创建一个文件。本例中的最低优先级是 100,因此低于该优先级的任何值都会导致软件包无法升级,尽管有较新的版本可用。
Ubuntu 在 /etc/apt/preferences.d/ 中查找固定指令。例如,如果您使用的是 Ubuntu Precise (12.04),则可以创建此文件,告诉它将所有名为 skype 的软件包设置为优先级为 90 的精确软件包,这将使其优先选择当前安装的软件包(优先级至少为 100)。
$ cat /etc/apt/preferences.d/skype
Package: skype
Pin: release n=precise
Pin-Priority: 90
我听说你可以这样做突触也一样。
至于下载软件包,一旦你确定了你想要的版本:
$ apt-get download skype