为什么 python-pip 保留在 Ubuntu 14.04 中?

ecc*_*tup 3 package-management python apt

这些天升级时,我收到以下消息:

$ sudo apt-get upgrade -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  libhwloc-plugins linux-headers-generic linux-signed-generic
  linux-signed-image-generic python-pip
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
Run Code Online (Sandbox Code Playgroud)

我不明白为什么python-pip被阻止。是因为我已经更新pip了吗?

$ pip -V
pip 7.0.3 from /usr/local/lib/python2.7/dist-packages (python 2.7)
Run Code Online (Sandbox Code Playgroud)

它是现在可以安全地升级python-pip使用apt-get


更新:

$ sudo apt-get install python-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  python-chardet-whl python-colorama-whl python-distlib-whl
  python-html5lib-whl python-pip-whl python-requests-whl python-setuptools-whl
  python-six-whl python-urllib3-whl
Recommended packages:
  python-dev-all python-wheel
The following NEW packages will be installed:
  python-chardet-whl python-colorama-whl python-distlib-whl
  python-html5lib-whl python-pip-whl python-requests-whl python-setuptools-whl
  python-six-whl python-urllib3-whl
The following packages will be upgraded:
  python-pip
1 upgraded, 9 newly installed, 0 to remove and 4 not upgraded.
Need to get 1,193 kB of archives.
After this operation, 1,438 kB of additional disk space will be used.
Run Code Online (Sandbox Code Playgroud)

Aar*_*n D 6

当一个包被标记为“保留”时,这意味着 apt 不会自动更新它,因为它现在有一个你从未同意安装的新的额外依赖项。当您专门使用 安装它时sudo apt-get install python-pip,它会返回消息,指出将安装以下软件包以满足依赖项要求:

python-chardet-whl python-colorama-whl python-distlib-whl 
python-html5lib-whl python-pip-whl python-requests-whl python-setuptools-whl
python-six-whl python-urllib3-whl
Run Code Online (Sandbox Code Playgroud)

这些都是您的系统中不存在的新软件包。apt 不会假设您希望安装它们,而是“保留”该软件包,直到您明确告诉它安装它为止。如果您不介意安装这些新软件包(您可能不介意),请同意安装。

如果你想升级所有东西并且不介意安装任何新的依赖项,该命令sudo apt-get dist-upgrade将安装所有升级并拉入更新包所需的任何新依赖项。要小心,因为有时一个新的依赖项意味着整个软件包被拉入(例如,gnome-desktop需要下载和安装一堆依赖项)。