Command-Line

Linux Mint 的“mintupdate”命令行等效項是什麼?

  • December 10, 2020

Linux Mint 有一個不錯的基於 GUI 的更新管理器,帶有可選擇的更新層。預設值適用於可能的 5 個級別中的第 1 級到第 3 級。但是,我經常使用 SSH 而不是訪問物理機來處理許多 Linux Mint 桌面系統的管理任務。如何從命令行實現相同的功能?

我已經知道apt-get updateandapt-get upgrade命令,但據我所知,這些命令仍然沒有/usr/lib/linuxmint/mintUpdate/mintUpdate.py任何與 Update Manager ( )的五層行為等效的功能。

更新:當我最初提出這個問題時,我正在尋找 Linux Mint 17 解決方案。我現在在我們的一些系統上執行 18.3,並且已經能夠為這些系統提供答案。

此答案適用於 Linux Mint 18.2 及更高版本,儘管我僅針對 18.3 對其進行了測試。

一個名為的命令行工具mintupdate-tool現在包含在發行版中。它在 18.2 版本說明中宣傳為“此工具支持 UI 中可用的所有功能,包括級別選擇、安全更新、核心更新和黑名單”。那個“UI”指的是更新管理器,這個說法離真實還有很長的路要走,但它是向前邁出的一大步。

這個工具沒有man頁面,所以:

$ mintupdate-tool --help
usage: mintupdate-tool [-h] [-k | -nk] [-s] [-r] [-d] [-y]
                      [--install-recommends] [-l LEVELS]
                      command

positional arguments:
 command               command to run (possible commands are: list, upgrade)

optional arguments:
 -h, --help            show this help message and exit
 -k, --kernel          ignore settings and include all kernel updates
 -nk, --no-kernel      ignore settings and exclude all kernel updates
 -s, --security        ignore settings and include all security updates
 -r, --refresh-cache   refresh the APT cache
 -d, --dry-run         simulation mode, don't upgrade anything
 -y, --yes             automatically answer yes to all questions
 --install-recommends  install recommended packages (use with caution)
 -l LEVELS, --levels LEVELS
                       ignore settings and restrict to this list of levels

Update Manager 的首選項決定了預設行為。這些首選項位於活動使用者的dconf數據儲存(模式com.linuxmint.updates)中,因此在命令前面加上 plainsudo不會改變這一點。這很重要,因為沒有 root 權限就無法進行更新。

警告:如果在 Update Manager 首選項中啟用了包含安全更新,則無法排除它們。

“–levels”的選項解析有點草率且不明顯。LEVELS 是一個字元串,用於搜尋數字 1 到 5 的外觀。它不是門檻值或範圍。它也不檢查無效字元,因此“14”、“1-4”、“1,4”、“4..1”和“two4u14me”都只表示級別 1 和 4。

要根據使用者的 Update Manager 首選項簡單列出預設安裝的可用更新,您可能需要以下內容:

$ mintupdate-tool -r list

為了避免意外,您可能不希望在以下命令中使用“-r”選項。

要使用此工具執行實際更新的試執行:

$ mintupdate-tool --dry-run upgrade

如果我們使用更新管理器而不修改顯示的選擇,實際執行相同的更新:

$ sudo mintupdate-tool upgrade

在我看來,不包括更新管理器中出現的“list”命令的更新類型列並且不提供查詢更新描述或更改日誌的方法是一個重大的疏忽。我目前的例子:

$ sudo mintupdate-tool -l 12345 list
4 package         mesa                                          17.2.4-0ubuntu1~16.04.4

這是一個名為“mesa”的 4 級更新,它不是包名稱,因此我無法使用我知道的任何其他命令行工具查詢它。我從更新管理器知道這個特定的更新實際上包括 9 個不同的包,但那是作弊。

程式碼

沒有其他選擇,因為 mintUpdate.py 只是 GUI (gtk),直到我決定寫一個。我在我的部落格——Linux Mint 更新 CLI中描述了它,你也可以在那裡找到 gitHub 的連結。我也會發布一些截圖。

引用自:https://unix.stackexchange.com/questions/162195