如何使用 apt-get 安装不同版本的 Python?
显然我意识到我可以使用源 tar ball 进行安装,但是我不想从源代码安装而是使用包管理器,因为这就是它的用途。当然,某个有信誉的地方会为我可以参考的最新 Python 版本构建 .deb 文件(为什么 python.org 不超出我的范围)。
我需要做什么来引用它们以及升级到下一个版本时可能会产生什么问题?
如果除了从源代码构建之外别无他法,是否有我可以安装的(伪)包,该包将提供所需的所有依赖项,而无需单独查找和安装每个依赖项?所以我没有得到:
The necessary bits to build these optional modules were not found:
_bz2 _curses _curses_panel
_dbm _gdbm _lzma
_sqlite3 _ssl _tkinter
readline zlib
Run Code Online (Sandbox Code Playgroud) 更新时,我收到以下错误消息:
W: The repository 'http://ppa.launchpad.net/mc3man/trusty-media/ubuntu xenial Release' does not have a Release file.
Run Code Online (Sandbox Code Playgroud)
在这里,我找到了关于此错误的另一个声明:如何在使用 PPA 或更新我的软件包列表时修复 404 错误?
这建议删除某些 PPA;而且,我不确定我是否应该这样做,因为这可能意味着无法获得我需要的更新。
这是我应该做的吗?
Update Manager 将软件包保持在最新版本,但有时新的软件包版本可能无法按预期或正常工作。如何降级已安装的软件包并将其锁定在特定版本以防止其更新?如何使用 GUI或使用终端执行此操作?
我正在尝试安装已从我的 Ubuntu 版本 (17.10) 中删除的软件包。具体来说,我正在尝试安装libpng12-dev,它是我尝试安装的另一个程序的依赖项,与此问题所询问的非常相似。
正如那个问题中所讨论的,我可以很容易地手动安装包,但使用包管理器是安装包的首选方式,我同意这一点。
我尝试改编ffmurray 的答案,并将其与help.ubuntu.com上的说明结合起来,得出以下结论:
sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/ xenial main"
Run Code Online (Sandbox Code Playgroud)
但是,apt-get update给了我这个错误:
存储库“http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng xenial Release”没有发布文件。
我不确定出了什么问题,或者这样的事情是否可以工作。
使用 apt(或其他包管理器),是否有正确的方法来安装来自以前的 Ubuntu 版本的包?我意识到这样做时兼容性和稳定性变得可疑,但我仍然喜欢一种半干净的方法。
请注意,我正在寻找以前版本包的一般答案,而不仅仅是 libpng。
在libpng12-dev 包页面上,在“libpng12-dev 链接”部分、“下载源包”小节中,有一个包描述链接。凭直觉,我从链接地址中删除了文件名,这样我就可以浏览档案并找出一些约定。
事实证明,我过度指定了站点 URL,而我只需要http://site.domain/ubuntu/URL的一部分。其余部分通过提供 Ubuntu 发行版名称 (xenial)、类别 (main) 和apt-get(libpng12-dev) 中的包来解决。
所以相反,我应该这样做:
sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/ xenial main"
sudo apt-get update
sudo apt-get install libpng12-dev
Run Code Online (Sandbox Code Playgroud)
跑得无懈可击! …