从命令行升级 mint:“不要手动编辑此文件”

从命令行升级 mint:“不要手动编辑此文件”

过去,我从命令行升级 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 迁移(这不是mintupdateGUI 工具,是的,名称的相似性令人困惑)。您可以简单地执行(以 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...

相关内容