apt-get 安装旧版本的包(Ubuntu)
我正在尝试在一台我有权限的服务器上安装 pip
和 virtualenv
(这台服务器运行的是 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
,而 virtualenv
是 1.11.5
)。我看到有人说问题在于软件包列表没有更新,但 sudo apt-get update
命令应该能解决这个问题,但我觉得并没有。请问我该怎么解决这个问题呢?非常感谢!
2 个回答
如果你真的需要使用最新的稳定版本的Python包,那就不要用apt-get
来安装Python包,而是用pip。因为如果你先用apt-get
安装了包,然后再用pip
(或者更不推荐的easy_install
或setup.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
apt-get update
是用来更新来自Ubuntu软件包目录的包,这和主流版本没有关系。
在Ubuntu中,LTS
代表长期支持。这意味着在一段时间后,他们只会发布与安全相关的错误修复。一般来说,在一个主要的Ubuntu版本中,软件包的主要版本不会改变,以确保向后兼容。
所以如果你只能做的就是 apt-get update
,你有两个选择:
- 找一个提供你需要的软件包更新版本的PPA,添加它,然后重复更新/安装的过程。
- 在其他地方找到这些软件包,下载它们的
.deb
格式并进行安装。