私はどうしてもUbuntuにてdiscordアップデートの手順数を減らしたい
私はUbuntu22.04の中でdiscordを使っているのですが、少しでも間が空くと、開くたびにこのような表示が出ます。
この表示が出るたびに毎回毎回アップデートをするべくサイトに飛んで、
devファイルをダウンロードして、
devファイルをパッケージマネージャーで開いて、
ごみ箱ボタンクリックしてアンインストールして、
また再度devファイルを開いて、
インストールし直す
うがああああああああああああああああ!!!!!!!!
となった経験はありませんか?ありますよね?
そう、あるんですよ。
今回は、この面倒極まりない一連の流れをどうにか少しでも簡単にできないかと思い、知識の浅い自分なりに模索した、そんなお話になります。
もっといい方法あるよという方は、是非教えてください。
採用した方法
devファイルはコマンドでもインストールができることを知り、ふとこう思い立ちました。
これ、バッチファイルで操作できれば最高なのでは?
バッチファイルの作成は最近の私のマイブームでもありますので、これはちょうどいいぞと。
具体的に
今回実現したい機能を大まかに説明すると、
- 古いdiscordをアンインストールする
- ダウンロードしたdevファイルからまたdiscordをインストールする
この一連の処理を全てコマンドで行います。
バッチファイルとは
条件
今回バッチファイルを作るにあたり、以下の条件を決めました。
- devファイルのダウンロード先は、~/Downloadフォルダ
- 過去にダウンロードしたdevファイルが残っている場合にも最新のdevファイルを検索してインストールできるようにする
- 打つコマンド文字数も極力少なくなるように
基本はこれぐらいです。
作成
今回バッチファイルを作成する場所はとりあえずホームディレクトリにします。
ホームディレクトリに、discord.sh
という名前で新規ファイル作成します。
時間短縮が今回のモットーなので今回の条件にもある通りコマンド文字数も少なくないといけません。なのであまりディレクトリ移動はするべきではないと考えました。
コマンド実行手順
- 今現在インストールされているdiscordをアンインストール
- devファイルのあるフォルダの中から最新のダウンロードしたdevファイルを検索
- そのdevファイルからdiscordをインストール
ひとつづつ解説していきます。
コマンド解説
今現在インストールされているdiscordをアンインストール
結論から言うと以下のコマンド一つでできます。
sudo apt autoremove discord --purge
見ての通り、autoremoveコマンド+purge
オプションで関連パッケージ、設定ファイル含め全部削除することでdiscordをアンインストールします。
devファイルのあるフォルダの中から最新のダウンロードしたdevファイルを検索 & そのdevファイルからdiscordをインストール
先ずはdevファイルがダウンロードされる先の、[Downloads]フォルダに移動するコマンドを適用させてディレクトリを移動しましょう。
cd Downloads
そして今回の要、findコマンドの登場です!
findは、その通り検索のコマンドで、ファイルやディレクトリを検索するのに使います。
さらにオプションをつけることで、そのファイルに対する操作も行えるのです!
まずはファイルの検索から。
検索要件は以下のとおりです。
- 名前に[discord]が入っているファイル
- 検索対象のディレクトリは今いるDownloadsフォルダ
まず、名前を検索するときに必要なオプションは
--name
こちらです。ワイルドカードを使用して、ファイルやディレクトリ名の一部のみ指定した検索ができるオプションになります。
名前にdiscordが「含まれている」なので、まずは以下のようにコマンドを書きます。
find --name "*discord*"
両端の*マークがワイルドカード(任意の長さの任意の文字)ですね。
次はディレクトリの指定です。
今回は事前にDownloadsフォルダに移動しているので、カレントディレクトリを指定すれば大丈夫ですね。
指定方法はいくつかありますが、今回はこのような方法で指定します。
find --maxdepth 1 --name "*discord*"
depth
でなんとなくお察しの通り、検索する階層を指定するオプションです。今回は今いる階層で検索するので、1を指定します
次は数あるdiscordファイルの中で、今回インストールするファイルを指定します。
今回は「ダウンロードした日にち」で判別します。以下のオプションで。
--mtime
任意の日数に更新されたファイルやディレクトリを検索するオプションです。
ここに今日を指定すれば少々ガバガバではありますが検索はできるかと思います。
find --maxdepth 1 --name "*discord*" --mtime 0
最後に、その検索したファイルに対して行う「アクション」を指定します。
findコマンドでは、--exec
オプションを指定することで、検索結果に対してコマンドを実行することができます。
今回ファイルを検索してインストールまで行うのがゴールなので、インストールのコマンドを入力すればOKです。
find --maxdepth 1 --name "*discord*" --mtime 0 --exec sudo apt install {} \;
execの中の{}
はファイル名に置き換わることで指定したコマンドを実行させることが可能になります。
お疲れ様でした、これでdiscordをアップデートするバッチファイルの完成です!
#!/usr/bin/bash
sudo apt autoremove discord --purge
cd Downloads
find -maxdepth 1 -name "*discord*" -mtime 0 -exec sudo apt install {} \;
今回の作成物評価
良い点
- 手順数が最低三つ減った
悪い点
- devファイルをダウンロードしてから1日以内に実行しないと意味がなくなってしまう
冒頭でも言いましたが、自分は今現在バッチファイルの作成がマイブームとなっていまして、これを通してまた一つ、linuxコマンドについて賢くなれたかなと思います。
そういう意味では意義はあったと信じたいですね。
Discussion