apt-get 安装旧版本的包(Ubuntu)

4 投票
2 回答
5519 浏览
提问于 2025-04-18 05:33

我正在尝试在一台我有权限的服务器上安装 pipvirtualenv(这台服务器运行的是 Ubuntu 12.04.4 LTS),但我只能通过 sudo apt-get install 来安装(这是学校的规定)。问题是,虽然我已经运行了 sudo apt-get update 命令来更新软件包列表,但我觉得它还是在安装旧版本的东西。在我执行了 sudo apt-get install python-pip python-virtualenv 后,运行 pip --version 显示的是 1.0,而运行 virtualenv --version 显示的是 1.7.1.2。这两个版本都很旧(pip 现在已经是 1.5.5,而 virtualenv1.11.5)。我看到有人说问题在于软件包列表没有更新,但 sudo apt-get update 命令应该能解决这个问题,但我觉得并没有。请问我该怎么解决这个问题呢?非常感谢!

2 个回答

2

如果你真的需要使用最新的稳定版本的Python包,那就不要用apt-get来安装Python包,而是用pip。因为如果你先用apt-get安装了包,然后再用pip(或者更不推荐的easy_installsetup.py)安装同样的包,你可能会遇到版本冲突的问题。这样一来,你可能会发现你的Python命令使用的是意想不到的版本,甚至更糟,根本无法正常工作。

我通常会遵循以下步骤:

1. 首先全局安装pip

按照这里的说明:http://pip.readthedocs.org/en/latest/installing.html 找到get-pip.py脚本,下载并作为Python脚本运行。

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
$ rm get-pip.py

2. 使用pip全局安装virtualenv

这应该很简单:

$ sudo pip install virtualenv

3. (可选)全局或用户个人配置安装virtualenvwrapper

$ sudo pip install virtualenvwrapper

然后按照说明进行配置。

4. 从现在开始,在你的virtualenv环境中安装包

这样可以避免不同版本包之间的冲突。

你可以根据需要独立地逐个更新特定的virtualenv。

5. (可选)配置安装缓存目录以加快安装速度

有一些方法可以加快重复安装包的速度,这在你经常使用virtualenv时会很有用。详细信息可以查看我的回答:https://stackoverflow.com/a/18520729/346478

2

apt-get update 是用来更新来自Ubuntu软件包目录的包,这和主流版本没有关系。

在Ubuntu中,LTS代表长期支持。这意味着在一段时间后,他们只会发布与安全相关的错误修复。一般来说,在一个主要的Ubuntu版本中,软件包的主要版本不会改变,以确保向后兼容。

所以如果你只能做的就是 apt-get update,你有两个选择:

  • 找一个提供你需要的软件包更新版本的PPA,添加它,然后重复更新/安装的过程。
  • 在其他地方找到这些软件包,下载它们的.deb格式并进行安装。

撰写回答