我想设置我自己的 Ubuntu 发行版,以便它始终更新到最新版本稳定的我拥有的每个软件包的版本。我说的稳定是指根据其开发人员的说法,软件包是稳定的。例如,Xenial 中可用的最新 FileZilla 是版本3.15对于 FileZilla 开发人员来说稳定3.20。
如上例所示,Ubuntu 点版本可用的许多软件包均未更新(这是可以理解的)。因此,标准存储库对我的问题没有帮助。我想知道是否有方法可以自动执行此操作。我正在考虑几个选项:
添加包含最新软件包的外部 PPA 列表。这适用于所有应用程序吗?所有应用程序都有自己的最新稳定 PPA 吗?
创建我自己的 PPA,以便自动更新(可能吗?)新版本。显然,您无法在启动板中创建包含未修改的软件包的 PPA(例如其他人的软件包的数据库)。所以这是不可能的?
使用 Synaptic 软件包管理器?这些似乎非常灵活,允许使用最新版本。但它可能无法访问所有软件包。
编写一个脚本,用于检测何时有新的稳定版本可用,并可以下载和安装新版本。这可以基于 Launchpad 中的信息,使用以下方法提取信息刮擦?这似乎是最佳选择。它可能需要花费大量时间来编写代码,但它可能会成为一个很好的脚本,以后可以转换成应用程序。
请指教。
答案1
“稳定”这个词有很大的问题。
你说的“稳定”是什么意思?
- 从该单个软件包的开发人员的角度来看是否稳定?
- Debian Stable 上稳定吗?(Ubuntu 基于 Unstable 或 Testing)
- 在 Ubuntu 上稳定吗?
如果是 1.,那么它可能会破坏您的系统。它对于开发人员来说是稳定的,但他们可能没有在 Ubuntu 上测试过它。
如果是 3.,那么它已经包含在您正在使用的 Ubuntu 更新版本中。
如果是 2.,那么它可能对您来说已经太旧了。
当你向自己明确了“稳定”的含义后,就继续吧。
我会尽力回答你的问题。
- 添加包含最新软件包的外部 PPA 列表。这适用于所有应用程序吗?所有应用程序都有自己的最新稳定 PPA 吗?
不,只有少数开发人员拥有 PPA,而且只有少数开发人员真正提供.deb
安装文件。例如,开发人员仅以源代码形式发布最新的稳定内核(这里),然后各个团队对其进行测试和编译以满足他们的需求(Ubuntu、Debian、Linux Mint、Android、Chromium 和 Chrome OS,...)
- 创建我自己的 PPA,以便自动更新(可能吗?)新版本。显然,您无法在启动板中创建包含未修改的软件包的 PPA(例如其他人的软件包的数据库)。所以这是不可能的?
“自动更新”。
这是一个巨大的工作量很大。首先,因为您必须跟踪所有具有允许您执行此操作的许可证的单个软件包的所有可能的源代码。然后,您必须将代码上传到 Launchpad,然后为这些源代码中的每一个设置收据(它们会有所不同),最后检查每个源代码,看是否出现问题。
- 使用 Synaptic 软件包管理器?这些似乎非常灵活,允许使用最新版本。但它可能无法访问所有软件包。
当您添加 PPA 时,使用哪个工具来安装软件包并不重要。apt
、Synaptic、,aptitude
这只是一个选择的问题。
- 编写一个脚本来检测何时有新的稳定版本可用,并可以下载和安装新版本。这可以基于来自 Launchpad 的信息,使用 Scrapy 提取信息?这似乎是最佳选择。它可能需要相当多的时间来编写代码,但它可能会成为一个不错的脚本,以后可以转换成应用程序。
这里,我认为与你的第二点没有太大区别。
我建议你尝试一些其他可能天生就使用最新软件包的发行版。例如前面提到的 Debian Sid,甚至 Slackware。
FileZilla 就是一个很好的例子。它没有存储库,所以你必须想出一个脚本,该脚本会转到他们的网站,以某种方式检查你系统上安装的版本是否比他们提供的最新版本旧,然后下载文件。然后你必须提取它。现在,由于它是一个预编译的二进制文件,你不需要编译它!因此,脚本应该只复制正确目录中的所有文件。为了让 apt 识别它,你必须创建一个假的 dpkg 条目,手动修改数据库以模仿该程序是使用 .deb 文件安装的事实。然后,你可以自己将所有内容打包到 .deb 文件中,并将其放入你自己的存储库中。然后对另一个包重复此操作。然后漫长的部分来了:你必须检查 FileZilla 的新版本是否不会给 Ubuntu 的其他部分带来任何问题。
答案2
答案3
您可以尝试的一件事是进入系统设置>软件和更新>开发人员选项,然后选中预发布更新框。
如果您确实需要最新的软件包更新,请考虑 Debian 测试版或不稳定版,或基于 Arch 的发行版(如 Manjaro)。Ubuntu 基于 Debian,因此您的大多数软件仍可运行,并且借助 Debian 的滚动发布分支,您将始终保持最新状态。