Linux Mint には、更新レベルを選択できる GUI ベースの優れたアップデート マネージャーがあります。デフォルトでは、5 つのレベルのうちレベル 1 から 3 までです。ただし、私は物理マシンにアクセスするのではなく、SSH を使用して、多数の Linux Mint デスクトップ システムの管理タスクを処理することがよくあります。コマンド ラインから同じ機能を実現するにはどうすればよいでしょうか。
私はすでにコマンドapt-get update
とapt-get upgrade
コマンドを知っていますが、私が知る限り、それらのコマンドはまだないUpdate Manager ( ) の 5 層動作と同等の機能を持ちます/usr/lib/linuxmint/mintUpdate/mintUpdate.py
。
更新: 最初にこの質問をしたとき、私は Linux Mint 17 のソリューションを探していました。現在、一部のシステムで 18.3 を実行しており、それらに対する回答を提供できました。
答え1
mintUpdate.py は GUI (gtk) のみだったので、私が書くことを決めるまでは代替手段はありませんでした。私はブログでそれを説明しました -Linux Mint アップデート CLIgitHub へのリンクも見つかります。スクリーンショットもいくつか公開します。
答え2
mintupdate-cli
Mint 19 には、 GUI バージョンと同じ機能を備えたツールがありますmintupdate
。そのオプションを使用して使用方法を確認してください-h
。
しかし、私はそのマニュアルページを見つけられませんでした(man mintupdate-cli
)。そのため、アプリケーション自体からソースコードや作者を見つけることができません。しかし、いくつかの検索の後、それは更新日時プロジェクト:
https://github.com/linuxmint/mintupdate/blob/master/usr/lib/linuxmint/mintUpdate/mintupdate-cli.py
答え3
この回答は Linux Mint 18.2 以降に適用されますが、私は 18.3 でのみテストしました。
というコマンドライン ツールがmintupdate-tool
ディストリビューションに含まれています。18.2 リリース ノートでは、「このツールは、レベル選択、セキュリティ更新、カーネル更新、ブラックリストなど、UI で利用できるすべての機能をサポートします」と宣伝されています。この「UI」は Update Manager を指しており、この主張は真実からは程遠いものですが、大きな前進です。
このツールのページはありませ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
アップデートマネージャの設定によってデフォルトの動作が決まります。これらの設定はアクティブユーザーのdconf
データストア(スキーマ)に保存されます。com.linuxmint.アップデート) なので、コマンドの前に plain を付けてもsudo
これは変わりません。これは、ルート権限がないと更新できないため重要です。
警告: 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
実際に、表示された選択内容を変更せずに Update Manager を使用した場合と同じ更新を実行するには、次のようにします。
$ sudo mintupdate-tool upgrade
私の意見では、Update Manager に表示される「list」コマンドに更新タイプ列を含めず、更新の説明や変更ログを照会する手段を提供しないことは重大な見落としです。私の現在の例:
$ sudo mintupdate-tool -l 12345 list
4 package mesa 17.2.4-0ubuntu1~16.04.4
これは「mesa」と呼ばれるレベル 4 のアップデートですが、これはパッケージ名ではないため、私が知っている他のコマンド ライン ツールではクエリできません。Update Manager から、この特定のアップデートには実際には 9 つの異なるパッケージが含まれていることがわかっていますが、これは不正です。
のソースコード。