0x00 写在前面
因为众所周不知的原因,Ubuntu 的原生软件仓库的使用体验一言难尽。本文记述了一些在使用最新版(24.04 LTS)版本当中一些关于使用第三方软件安装器遇到的问题和解决方法。
0x01 更换软件源
这是老生常谈的事情,网上的教程也非常的多,这里推荐清华的源,上面也有简单的使用建议。ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
替换完成后,执行
apt update
apt upgrade
0x02 使用第三方软件仓库
在最新版(目前是 24.04 LTS)系统中为了避免与 Ubuntu 自带的 apt 冲突,不再允许使用第三方的软件安装器进行软件包的安装,虽然官方将大部分的软件包都整合在了仓库中,并且按照一定的规则进行命名以供使用,如:python3 的 requests 库就可以使用 apt install python3-requests
的方式安装。但是官方提供的软件包版本不甚齐全,甚至仅有单个最新版本,这对开发来说非常的不灵活,也很鸡肋。
当笔者视图使用第三方安装器 pip 进行安装时,报错:
# pip install 'urllib3<2'
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.12/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
按照提示,可以使用 --break-system-packages
来绕过限制,完整的可使用命令 pip install 'urllib3<2 --break-system-packages'