すでにご存知のとおり、Linuxシステムを最新の状態に保つには、複数のパッケージマネージャーを呼び出す必要があります。たとえば、Ubuntuでは、「sudo apt update &&sudoaptupgrade」コマンドを使用してすべてをアップグレードすることはできません。このコマンドは、APTパッケージマネージャーを使用してインストールされたパッケージのみをアップグレードします。 cargoを使用して他のアプリケーションをインストールした可能性があります 、ピップ 、 npm 、スナップ 、フラットパック またはLinuxbrew パッケージマネージャー。それらをすべて最新の状態に保つには、それぞれのパッケージマネージャーを使用する必要があります。もう違います! 「トップグレード」に挨拶する 、一度に1つのコマンドを使用してすべてをアップグレードするユーティリティ。
パッケージを更新するために、すべてのパッケージマネージャーを個別に実行する必要はありません。トップグレードツールは、インストールされているパッケージ、ツール、プラグインを検出し、適切なパッケージマネージャーを実行して、1つのコマンドでLinuxボックス内のすべてを更新することでこの問題を解決します。これは無料のオープンソースであり、Rustプログラミング言語を使用して記述されています。 。 GNU / Linux、Mac OS X、FreeBSD、MicrosoftWindowsをサポートしています。
Topgradeのインストール
トップグレードはAURで入手できます 。したがって、 Yayを使用してインストールできます Archベースのシステムのヘルパープログラム。
$ yay -S topgrade
他のLinuxディストリビューションでは、topgradeを Cargoにインストールできます。 パッケージマネージャー。カーゴパッケージマネージャーをインストールするには、次のリンクを参照してください。
- LinuxにRustプログラミング言語をインストールする
次に、次のコマンドを実行してtopgradeをインストールします。
$ cargo install topgrade
何らかの理由でカーゴ方式が機能しない場合は、リリースページから最新のトップグレードバイナリをダウンロードしてください。 。このガイドを書いている時点で、最新バージョンは 2.2.0でした。 。
$ wget https://github.com/r-darwish/topgrade/releases/download/v2.2.0/topgrade-v2.2.0-x86_64-unknown-linux-gnu.tar.gz
tarファイルを抽出します:
$ tar xvf topgrade-v2.2.0-x86_64-unknown-linux-gnu.tar.gz
トップグレードのバイナリファイルをパスにコピーまたは移動します(例: / usr / local / bin / )。 。
$ sudo mv topgrade /usr/local/bin/
以下に示すように、正しくインストールされているかどうかを確認してください。
$ which topgrade /usr/local/bin/topgrade
インストールされているバージョンを確認してください:
$ topgrade -V Topgrade 2.2.0
LinuxおよびUnixでTopgradeを使用してすべてをアップグレードする
インストールしたら、topgradeユーティリティを実行して、Linuxシステムのすべてのものをアップグレードします。
$ topgrade
topgradeが呼び出されると、使用するOSに応じて、次のタスクが1つずつ実行されます。必要に応じて、root/sudoユーザーのパスワードを入力するように求められます。
Linuxの場合:
1. Linuxシステムのパッケージマネージャーを実行し、次の操作を実行します。
- アーチベース :イェーイを実行します またはpacmanにフォールバックします
- Redhatベース :
yum upgrade
を実行します (またはdnf
存在する場合) - Debianベース :
apt update && apt dist-upgrade
を実行します - ゲントゥー :
layman -s ALL && emerge --sync -q && eix-update && emerge -uDNa world
を実行します - openSUSE :
zypper refresh && zypper dist-upgrade
を実行します - 無効 :
xbps-install -Su
を実行します
2. etc-updateを実行します 。
3.非公式およびサードパーティのパッケージマネージャーを実行します:
- Flatpakを更新します パッケージ
- スナップを更新します パッケージ
- fwupdmgrを実行します ファームウェアのアップグレードを表示します。 (表示のみ。実際にはアップグレードは実行されません)
-
rpi-update
RaspberryPiファームウェアを更新するには - piholeを実行します アップデータ
-
rustup update
。これにより、rustup self update
Rustupがホームディレクトリ内にインストールされている場合。 - Cargo install-updateを実行します
- Emacsをアップグレードする パッケージ
- アップグレードOCaml パッケージ
- アップグレードvcpkg グローバルにインストールされたパッケージ
- myreposをアップグレードする 管理されたソースコードリポジトリ
- pipxを使用してインストールされたPythonパッケージをアップグレードします
- アップグレードR グローバルにインストールされたパッケージ
- アップグレードVim/ Neovim パッケージ。次のプラグインフレームワークで動作します:
- NeoBundle
- バンドル
- プラグ
- 定義
- ノード
-
yarn global update
糸が取り付けられている場合。 -
npm update -g
NPMがインストールされていて、npm root -g
ホームディレクトリ内のパスです。
-
-
composer global update
Composerのホームディレクトリがユーザーのホームディレクトリ内にある場合。valet install
後。 - アップグレードアトム パッケージ
-
gem upgrade --user-install
~/.gem
の場合 存在する
Unixの場合:
-
brew update && brew upgrade
。これは、自作の両方を処理する必要があります およびLinuxbrew 。 -
nix upgrade-nix && nix --upgrade
。 - パール
pearl update
。 - zplugを実行します 更新
- tmuxをアップグレードする TPMを備えたプラグイン
FreeBSDの場合:
- パッケージのアップグレードと監査。
その他(これらの手順はすべてのOSで実行されます)
次のパスがGitによって追跡されているかどうかを確認します 。もしそうなら、それらを引っ張る:
- 〜/ .emacs.d
- 〜/ .zshrc
- 〜/ .oh-my-zsh
- 〜/ .tmux
- 〜/ .config / fish
- 〜/ .config / nvim
- 〜/ .vim
- 〜/ .config / openbox
- 〜/ .config / bspwm
- 〜/ .config / i3
- PowerShellプロファイル
- カスタム定義のパス
最終ステップ
すべてのパッケージがアップグレードされると、Topgradeはもう1つの最終ステップを実行します。
Linuxの場合:
Topgradeユーティリティはneedrestartを実行します すべてのサービスを再起動します。
FreeBSDの場合:
Topgradeはfreebsd-upgrade
Mac OS X 、AppStoreアプリケーションをアップグレードします。
Ubuntu 18.04 LTSテストボックスからの出力例:

LinuxおよびUnixでTopgradeを使用してすべてをアップグレードする
良いことは、1つのタスクが失敗した場合、次のタスクを自動的に実行し、他のすべての後続のタスクを完了することです。最後に、実行したタスクの数、成功したタスクの数、失敗したタスクの数などの詳細を含む要約が表示されます。
推奨される読み物:
- 単一のコマンドでUbuntuをアップグレードする方法
- Ubuntuを最新バージョンにアップグレードするための3つの異なる方法
- Ubuntuにアップデートとセキュリティパッチを自動的にインストールする
トップグレードオプション
Togradeには、さまざまな追加タスクを実行するためのいくつかのオプションがあります。
Tmuxセッション内でTopgradeを実行する
これは、リモートシステムでTopgradeを使用する場合に便利です。
Tmuxセッション内でTopgradeを開始するには、 -tを使用します フラグ。
$ topgrade -t

Tmuxセッション内でTopgradeを実行する
古くて不要なファイルを削除する
古いファイルと未使用のファイルをクリーンアップするようにパッケージマネージャーに指示するには、 -cを使用します トップグレードのフラグ:
$ topgrade -c
特定のアップグレード手順を無効にする
特定のパッケージをアップグレードしたくない場合があります。その場合は、--disable
オプション。
たとえば、次のコマンドを使用してシステムのアップグレードをスキップします:
$ topgrade --disable system
このコマンドは、システムアップグレードフェーズをスキップし、他のすべてを通常どおりにアップグレードするだけです。
―― 11:39:48 - Self update ―――――――――――――――――――――――――――――――――――――――――――――――――――――― Topgrade is up-to-date ―― 11:39:50 - rustup ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― info: checking for self-updates info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu' info: checking for self-updates stable-x86_64-unknown-linux-gnu unchanged - rustc 1.35.0 (3c235d560 2019-05-20) ―― 11:39:52 - Node Package Manager ――――――――――――――――――――――――――――――――――――――――――――― ―― 11:40:08 - Summary ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― Git repositories: OK rustup: OK NPM: OK
Emacsのアップグレードをスキップする:
$ topgrade --disable emacs
このコマンドは、Emacsパッケージとその構成ファイルのアップグレードをスキップします。
Vimのアップグレードをスキップ:
$ topgrade --disable vim
宝石のアップグレードをスキップする:
$ topgrade --disable gem
詳細については、次のコマンドを実行してヘルプセクションを確認してください。
$ topgrade --help Topgrade 2.2.0 Roey Darwish Dror <[email protected]> Command line arguments USAGE: topgrade [FLAGS] [OPTIONS] FLAGS: -c, --cleanup Cleanup temporary or old files -n, --dry-run Print what would be done -h, --help Prints help information --no-retry Do not ask to retry failed steps -t, --tmux Run inside tmux -V, --version Prints version information -v, --verbose Output logs OPTIONS: --disable <disable>... Do not perform upgrades for the given steps [possible values: gem, git-repos, vim, emacs, system]
個人的には、トップグレードのようなユーティリティを作成し、さまざまなパッケージマネージャーでインストールされているすべてのものを1つのコマンドでアップグレードするというアイデアが気に入りました。お役に立てば幸いです。