![从命令行升级 mint:“不要手动编辑此文件”](https://linux22.com/image/92606/%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8D%87%E7%BA%A7%20mint%EF%BC%9A%E2%80%9C%E4%B8%8D%E8%A6%81%E6%89%8B%E5%8A%A8%E7%BC%96%E8%BE%91%E6%AD%A4%E6%96%87%E4%BB%B6%E2%80%9D.png)
过去,我从命令行升级 linux mint 的方法是编辑/etc/apt/sources.list
或/etc/apt/sources.list.d/official-package-repositories.list
手动,然后 apt-get update && apt-get dist-upgrade && apt-get upgrade
.在我当前尝试升级的版本(17.2)中,sources.list不存在,并且official-package-repositories.list在其第一行的注释中有以下警告:
# Do not edit this file manually, use Software Sources instead.
我假设 Software Sources 是 GUI 前端。
现在从命令行进行升级的正确方法是什么?如果我手动编辑该文件,会不会不起作用?事情会破裂吗?
答案1
好吧,这个没有测试过,我咨询了一位使用 Mint 的同事(他确实咒骂我使用 GUI)。
17.2 -> 17.3
首先,您必须使用 Mint 17.3 才能升级到 Mint 18。所以让我们先这样做。 Mint 有一个升级管理器(我知道您在询问如何从命令行执行此操作,但有之前的问题关于命令行,它似乎太神秘/深奥了,但请继续阅读下面的一些可能的技巧)。在升级管理器中你应该能够做到Edit->Upgrade to Linux Mint 17.3 Rosa
。
这就是我们所说的“阅读文档,成为一名公民,并按照开发人员希望您使用的方式使用 Mint”。我们可以比这更具冒险精神。如果你看一下代码薄荷升级工具(GUI代码),你可以看到一些有趣的事情:
rel_edition = 'unknown'
rel_codename = 'unknown'
if os.path.exists("/etc/linuxmint/info"):
with open("/etc/linuxmint/info", "r") as info:
for line in info:
line = line.strip()
if "EDITION=" in line:
rel_edition = line.split('=')[1].replace('"', '').split()[0]
if "CODENAME=" in line:
rel_codename = line.split('=')[1].replace('"', '').split()[0]
rel_path = "/usr/share/mint-upgrade-info/%s" % rel_codename
if os.path.exists(rel_path):
with open(os.path.join(rel_path, "info")) as f:
config = dict([line.strip().split("=") for line in f])
if rel_edition.lower() in config['editions']:
rel_target = config['target_name']
relUpgradeMenuItem = Gtk.ImageMenuItem(Gtk.STOCK_PREFERENCES)
relUpgradeMenuItem.set_use_stock(True)
relUpgradeMenuItem.set_image(Gtk.Image.new_from_icon_name("mintupdate-release-upgrade", Gtk.IconSize.MENU))
relUpgradeMenuItem.set_label(_("Upgrade to %s") % rel_target)
# ...
def open_rel_upgrade(self, widget):
os.system("/usr/bin/mint-release-upgrade &")
我们看到您应该有一个名为的文件/etc/linuxmint/info
,其中应包含与此类似的几行:
EDITION=Mint 17.2 Yay
CODENAME=17.2-yay
(请注意,我没有运行 Mint,所以我猜)
基于此,您应该有一个名为:
/usr/share/mint-upgrade-info/17.2-yay
其中应该包含:
target_name=Linux Mint 17.3 Rosa
如果一切就绪,您应该能够执行以下操作:
/usr/bin/mint-release-upgrade
这应该可以完成工作。
额外说明
启动新系统后,您可能需要执行一些更新。 Mint 升级不执行内核或 GRUB 更新,因此您需要执行以下操作:
sudo apt-get update linux-kernel-generic
sudo update-grub
另外,int升级页面建议在更新期间禁用屏幕保护程序:
建议升级前禁用屏幕保护程序。如果屏幕保护程序在升级过程中激活并且您无法重新登录,请使用 CTRL+ALT+F1 切换到控制台,登录并输入“killall cinnamon-screensaver”(或在 MATE 中输入“killall mate-screensaver”)。使用 CTRL+ALT+F7 或 CTRL+ALT+F8 返回会话。
参考:
17.3 -> 18
Mint 发行说明中的第一个要点:
KDE 版本不可升级(Linux Mint 18 KDE 将使用名为 Plasma 的新的不同桌面)。
如果你使用 KDE,那你就完蛋了,谢谢 Mint 的家伙(开玩笑,他们添加了 Plasma,所以他们需要牺牲一些东西)。
好的一面是,可以使用mintupgrade
命令行工具执行 17.3 -> 18 迁移(这不是mintupdate
GUI 工具,是的,名称的相似性令人困惑)。您可以简单地执行(以 root 身份):
apt install mintupgrade
mintupgrade check
mintupgrade download
mintupgrade upgrade
这mintupgrade check
是一个互动步骤,会问您几个问题。
Mint 关于 17.3 -> 18 的文档实际上非常详尽且解释得很好,值得一读。
参考:
答案2
在 Ubuntu 中,您可以使用add-apt-repository
添加存储库。所以在 Mint 中——我猜。从我的角度来看,手动编辑绝对可行sources.list
,但在某些情况下,您最终也会手动为存储库导入 gpg-keys...