我正在尝试在新的 Ubuntu 机器上离线安装一些 deb 包:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
我在另一台计算机上递归下载了所有 deb 依赖项,然后通过 ssh 进入这台计算机(仅连接到内部网络),并尝试使用sudo apt-get install python3.5-dev
- 我为 apt 创建了一个源文件,并覆盖了
/etc/apt/sources.list
其中只有我的文件:deb 文件:/home/*/*/debs ./ - 之后我
sudo apt-get update
安装流程应该如下:
- 运行 apt-get install
- apt 检查 sources.list
- apt 找到我那里的 Packgez.gz 文件
debs
apt 在目录中找到所有 deb 依赖项- apt 安装依赖项,然后安装实际的包
然而,由于某种原因,我得到了这个:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
python3.5-dev : Depends: python3.5 (= 3.5.2-2ubuntu0~16.04.9) but 3.5.2-2ubuntu0~16.04.5 is to be installed
Depends: libpython3.5-dev (= 3.5.2-2ubuntu0~16.04.9) but it is not going to be installed
Depends: libpython3.5 (= 3.5.2-2ubuntu0~16.04.9) but 3.5.2-2ubuntu0~16.04.5 is to be installed
据我所知,Ubuntu 16.04.6 实际上是 16.10 向后移植到 16.04。因此,据我所知,16.04.9 是一个较新的版本,需要依赖项才能安装。
是真的吗?这个解释让我感到困惑的是,依赖项下载是使用此命令完成的(源码) 来自一台安装了 16.04.6 版本的计算机,因此,它应该包含所有的依赖项:
$ apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances <your-package-here> | grep "^\w" | sort -u
答案1
永远不要弄乱默认的 Python 版本,因为许多系统包都依赖于它们
如果你需要特定版本,请使用 pyenv