アニメ放映と同時に最終巻発売ってマジかよ。 商売する気あるんですか?
Laravelの門を叩く
あらためてLaravelの門をくぐろうとしてdocker runコマンドの--pullフラグにつまずく - @ledsun blogの続きをします。
curl -s 'https://laravel.build/example-app?php=82' | bash
を実行します。
[+] Running 0/0 ⠋ selenium Pulling 0.1s ⠋ redis Pulling 0.1s ⠋ meilisearch Pulling 0.1s ⠋ mysql Pulling 0.1s ⠋ mailhog Pulling 0.1s error getting credentials - err: exec: "docker-credential-desktop.exe": executable file not found in $PATH, out: `` [+] Building 0.7s (3/3) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 2.74kB 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => ERROR [internal] load metadata for docker.io/library/ubuntu:22.04
エラーが起きています。
docker-credential-desktop.exe
でググります。
【メモ】Docker Desktop for Windowsで”docker-credential-desktop.exe: Invalid argument” | Takeshi Yonezu を見つけました。
Issue #12355でコメントされている対応方法のうち、2つが簡単でエラーを解消することができています。
Docker Desktopの残骸のようです。
rm ~/.docker/config.json
します。
curl -s 'https://laravel.build/example-app?php=82' | bash
をもう一度実行すると、すごい勢いでいろんなイメージをpullして環境構築されていきます。 普段使っているRuby on Railsに比べると大分豪快です。
つづいて指示に従ってcd example-app && ./vendor/bin/sail up
を実行します。
エラーが起きています。
Error starting userland proxy: listen tcp4 0.0.0.0:6379: bind: address already in use
ローカルで動いているRedisとポート番号が被っています。 初手でRedisまで連れてくるんですね。
sudo service redis stop
して、もう一度
WSL2のUbuntuでdocker run --pullが使えてました
WSL2のUbuntuでdocker run --pullが使えない - @ledsun blog でした。 試しにMacOSで試してみます。
~/hello_laravel[1]►curl -s 'https://laravel.build/example-app' | bash latest: Pulling from laravelsail/php82-composer 3f4ca61aafcd: Pull complete 460703cf6140: Pull complete eba06349db87: Pull complete 9130a4183abd: Pull complete c5985e9936b4: Pull complete dd46959f6994: Pull complete 5683f482de2e: Pull complete fcd5aae60867: Pull complete b88374f492c2: Pull complete 4a9a84d9852e: Pull complete 928b5139ef08: Pull complete 39d385eafcdc: Pull complete 4f4fb700ef54: Pull complete 07fd347431c3: Pull complete 0e9ac5262ee9: Pull complete Digest: sha256:c489811fc30df249b5061463e9886a53a1bf6c0674fd923e145764c3e963e216 Status: Downloaded newer image for laravelsail/php82-composer:latest _ _ | | | | | | __ _ _ __ __ ___ _____| | | | / _` | '__/ _` \ \ / / _ \ | | |___| (_| | | | (_| |\ V / __/ | |______\__,_|_| \__,_| \_/ \___|_| WARN TTY mode requires /dev/tty to be read/writable.
動きそうです。 バージョンを確認しておきます。
~/hello_laravel►docker --version Docker version 20.10.12, build e91ed57
MacOSではDocker Desktopを使っています。 WSLではUbuntuに直接Dockerをインストールしました。 この違いが原因なのでしょうか?WindowsにもDocker Desktopをインストールしてみましょう。 Download Docker Desktop | Dockerからインストーラーをダウンロードします。
そういえばDocker Desktopは有料化したんですね。 仕事で使う時はライセンスに違反していないか注意が必要です。
ターミナルがあったので試しにコマンドを打ってみました。
あれ?前回試した時ってこんなエラーメッセージでしたっけ?
試したコマンドが違いました。
docker run --pull hello-world
でした。
Docker Desktopをアンインストールするっす。
がびーん
WSL2のUbuntuでdocker run --pullが使えない
Laravelの門をくぐろうとしてdocker runコマンドの--pullフラグにつまずく - @ledsun blog のつづきです。
AIに相談してみます。
ずいぶん昔から使えるフラグのようです。 自分の環境に入ってるdockerが何かおかしそうです。 ていうかこんなことまで知ってるんですね・・・すごい。
WSLにDockerをインストールする - @ledsun blog をみると、ちょっと前ですね。 再インストールしてみましょうか。
Install Docker Engine on Debian | Docker Documentation を参考にします。
ledsun@MSI:~/hello_laravel$ sudo apt-get update Hit:1 https://cli.github.com/packages stable InRelease Get:2 https://dl.google.com/linux/chrome/deb stable InRelease [1811 B] Hit:3 https://deb.nodesource.com/node_18.x focal InRelease Ign:4 https://download.docker.com/linux/debian jammy InRelease Get:5 https://dl.google.com/linux/chrome/deb stable/main amd64 Packages [1075 B] Hit:6 https://packages.redis.io/deb jammy InRelease Hit:7 http://archive.ubuntu.com/ubuntu jammy InRelease Err:8 https://download.docker.com/linux/debian jammy Release 404 Not Found [IP: 13.32.50.48 443] Get:9 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB] Get:10 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB] Get:11 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB] Get:12 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [831 kB] Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [566 kB] Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [785 kB] Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 c-n-f Metadata [14.6 kB] Reading package lists... Done E: The repository 'https://download.docker.com/linux/debian jammy Release' does not have a Release file. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details.
なんかエラーがでます。
参考にするページを間違えていました。
Install Docker Engine on Ubuntu | Docker Documentation でやり直します。
インストールするとdocker run
コマンドが使えました。
ledsun@MSI:~/hello_laravel$ sudo docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
ということは・・・
ledsun@MSI:~/hello_laravel$ sudo docker run --pull hello-world "docker run" requires at least 1 argument. See 'docker run --help'. Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container
ダメでしたー。 ちなみにバージョンは20に上がりました。
ledsun@MSI:~/hello_laravel$ docker --version Docker version 20.10.23, build 7155243
Laravelの門をくぐろうとしてdocker runコマンドの--pullフラグにつまずく
https://laravel.com/docs/9.x/installation#getting-started-on-windows を参考にします。
Dockerはすでにいれてあります。
curl -s https://laravel.build/example-app | bash
を実行します。
ledsun@MSI:~/hello_laravel►curl -s 'https://laravel.build/example-app' | bash unknown flag: --pull See 'docker run --help'. bash: line 17: cd: example-app: No such file or directory bash: line 19: ./vendor/bin/sail: No such file or directory bash: line 20: ./vendor/bin/sail: No such file or directory Get started with: cd example-app && ./vendor/bin/sail up
エラーがでます。 実行されるシェルスクリプトを見てみます。
docker info > /dev/null 2>&1 # Ensure that Docker is running... if [ $? -ne 0 ]; then echo "Docker is not running." exit 1 fi docker run --rm \ --pull=always \ -v "$(pwd)":/opt \ -w /opt \ laravelsail/php82-composer:latest \ bash -c "laravel new example-app && cd example-app && php ./artisan sail:install --with=mysql,redis,meilisearch,mailhog,selenium " cd example-app ./vendor/bin/sail pull mysql redis meilisearch mailhog selenium ./vendor/bin/sail build CYAN='\033[0;36m' LIGHT_CYAN='\033[1;36m' BOLD='\033[1m' NC='\033[0m' echo "" if sudo -n true 2>/dev/null; then sudo chown -R $USER: . echo -e "${BOLD}Get started with:${NC} cd example-app && ./vendor/bin/sail up" else echo -e "${BOLD}Please provide your password so we can make some final adjustments to your application's permissions.${NC}" echo "" sudo chown -R $USER: . echo "" echo -e "${BOLD}Thank you! We hope you build something incredible. Dive in with:${NC} cd example-app && ./vendor/bin/sail up" fi
docker run --rm \ --pull=always \ -v "$(pwd)":/opt \ -w /opt \ laravelsail/php82-composer:latest \ bash -c "laravel new example-app && cd example-app && php ./artisan sail:install --with=mysql,redis,meilisearch,mailhog,selenium "
でエラーが出ているみたいです。 確かめてみましょう。
ledsun@MSI:~/hello_laravel►docker run --rm \ --pull=always \ -v "$(pwd)":/opt \ -w /opt \ laravelsail/php82-composer:latest unknown flag: --pull See 'docker run --help'.
やはりここです。 Dockerのバージョンがちがうのでしょうか?
ledsun@MSI:~/hello_laravel[125]►docker --version Docker version 19.03.12, build 48a66213fe
docker run — Docker-docs-ja 20.10 ドキュメント には--pull
フラグはありませんでした。
ということはDockerコマンドが古すぎるわけではなさそうです。
新しすぎるのでしょうか?
ググってもよくわからないです。 Installation - Laravel - The PHP Framework For Web Artisans をホストしているのは公式なのでしょう。 ということはそのソースコードはGitHubにありそうです。 探してみましょう。
https://github.com/search?q=org%3Alaravel+build でさがしてみました。
このリポジトリにはIssueはありません。 PullRequestを探してみます。
Always pull the latest install image by jessarcher · Pull Request #12 · laravel/sail-server · GitHub ですね。 まさにこのオプションを追加しています。 4ヶ月も前にマージされています。 問題があるならすでに他に気がついている人がいそうです。 となると、期待するdockerの環境に違いがありそうです。
PullRequestから参照されているhttps://docs.docker.com/engine/reference/commandline/run/#-set-the-pull-policy---pullを見てみます。
え?あれ?さっき確認したマニュアルは、一体? ていうかどうやってpullポリシーを使えば良いですか?
OKRとMBO
OKRとMBO(目標管理)って何がちがうのかよくわかっていませんでした。
マネージング・フォー・ハピネスの「第8章 メトリクスエコシステムとスコアボードインデックス」に
グッドハートの法則(Goodhart's law)では、「ある計測結果が目標になると、それは適切な計測ではなくなると言われている。
(中略)
Googleはこの問題を解決するため、従業員に困難な目標を複数設定させ、すべてを達成できなくともいいというメッセージを強く伝えた。
と、ありました。 これがOKRの特徴だったんですね。
仕事だと100点取れる人より、死なない人の方が頼りになります。 一方、100点を取れないことを気にしすぎる人もいます。
- 10回仕事して10回60点を取る人
- 10回仕事して9回100点とって、最後の1回でミスって辞めてしまう人
この場合前者の方が大分頼りになります。 OKRって、前者になれよってことだったんですね。
あと、後者の人って下に人をつけると減点法で指導しはじめるのが難しいところなんですよね・・・。
マネージング・フォー・ハピネス その2
マネージング・フォー・ハピネス - @ledsun blog を読み始めました。 全12章のうち9章まで読みました。
評価と報酬
今の欲ある評価と報酬の制度はバグっているっぽいです。 いや、バグっているの制度じゃなくて、多分受け取る方の人間です。
どうも自分を含め人間というのは報酬から自分の評価を推測しようとするようです。 「同僚のAさんより報酬が高いから、会社から評価されている」とか 「同業者のBさんより報酬が高いから、社会から評価されている」とか 考えてしまうようです。 あげく「経理のCさんより報酬が高いから、自分の方が貢献度が高い」みたいなことを推測するみたいです。 さらに「役員Dさんの取り分が多すぎるとか、株主Eさんへの配当が高すぎる」とかも考えたりします。
報酬と「自分の評価」って、相関はあっても因果はないやつですよね。 給与の額はどっちかというと転職市場での相場と流動性が高い職種かに依存していそうです。
そもそも自分が、気にしているのは「自分のはたらきが人の役に立っているのか」なのかもしれません。 それを確認できないから、他人と報酬を比べて「Fさんより報酬が高いから、自分は必要とされているはず」と推測されているのかもしれません。
報酬と評価を分離して「自分が人の役に立っている、必要とされている」を感じれる機会を増やすといい。 そういう話かな?と思って読んでいます。
と言う話はマネジメント3.0の方に書かれているのでしょうか?
いまより高い頻度で評価を受け取れば、報酬から評価を推測することをやめられるのかもしれません。 上司以外のいろんな人から評価を受け取れば、報酬から評価を推測することをやめられるのかもしれません。
評価と報酬の制度を分離できれば、評価は質と頻度を高める工夫をすればよく、報酬は相場に負けないようにすればよく、もっとシンプルな制度設計ができるのかもしれません。
Railsのタスクを作成する
あるRailsアプリケーションではファイルアップロードのジョブの途中で失敗すると、処理途中のレコードやアップロードしたファイルが残ります。
削除の手順はわかっています。 次の2つのコマンドでDBに残ったデータとアップロードしたファイルが消せます。
bin/rails runner 'Job.destroy_all' rm -rf tmp/upload-*
2つのコマンドを実行するのは手間です。 どうしましょうか?
Railsにはタスクという機能があります。
bin/rails server
やbin/rails db:prepare
などです。
これと同じような手順で実行出来ると良さそうです。
コマンドはそうですね。
bin/rails job:clean
で実行できたらいいと思います。
Railsにはタスクのテンプレートを生成するコマンドがあります。
今回のタスクはjob:clean
なので、次のように生成します。
bin/rails g task job clean
すると次のようなファイルが出来ます。
namespace :job do desc "TODO" task clean: :environment do end end
この中に必要な処理を書きます。
Job.destroy_all
はそのままなので簡単です
rm -rf tmp/upload-*
を少し頑張ってRubyで書き直します。
require 'fileutils' directory = "tmp/upload-*" list = Dir.glob Rails.root.join(directory) FileUtils.rm_rf(list)
材料が揃ったのでテンプレートを埋めます。
namespace :job do desc "Delete the remnants generated by the annotation upload job" task clean: :environment do # Delete Job records Job.destroy_all # Delete uploaded files require 'fileutils' directory = "tmp/upload-*" list = Dir.glob Rails.root.join(directory) FileUtils.rm_rf(list) end end
これでこれからは次のコマンドを実行すればゴミを削除出来ます。
bin/rails job:clean
かっこいい名前のコマンドで実行出来ると、うれしいですね。
マネージング・フォー・ハピネス
悪役令息(だった)お義兄様は、モブな私を過保護に愛する~解釈違いな推しも好き~ (夢中文庫プランセ)
ジャンルとしては女性向けのエッチな小説なのでしょうか? ネタバレアリです。
主人公は終始カマトトです。 あまり賢くふるまってない感じで結果的に上手くいくところがいいです。 結果から見ると、推しを青田買いしてくわえ込む肉食女子です。 女性向けの「男性向けの異世界転生ハーレムもの」的な作品と捉えればいいのでしょうか? 確かに男性向けも、結果だけ見ると「陽キャになってモテモテ」とも解釈できます。 なるほど、そういうものなのかもしれません。
推し一筋の姿勢と偶然から関係が作られていくのは(純愛路線の)男性向けと同じです。 夜お誘いは主人公からという点は意外とちがって、なるほど・・・興味深いです。 男性向け作品は、男性キャラから誘うのは少なくて、女性キャラ側からとかたまたまそういうシチュエーションになったのがきっかけでとか多いんですよね。 これは男性向け女性向けの差でなくて、時代の差なのかもしれません。
MIPSとかパイプラインとか
を読んでいます。 ところどころもやもやっとするというか、不完全燃焼なところがあります。 そういう部分を次の本で補完すると良いみたいです。
おお、なんか読めるぞ! 2017年に買った5版を引っ張り出してきて読んでみました。 「4.5 パイプライン処理の概要」を読みました。 パイプラインと言えばMIPSって感じなんですね。
MIPSについて調べてみます。
1981年、スタンフォード大学のジョン・L・ヘネシー率いるチームは、後に最初のMIPSプロセッサを生むプロジェクトを開始した。
MIPSは最も典型的なRISCのひとつだとされる、というよりも、RISCの提唱者であるヘネシーとパターソンのそれぞれが設計した命令セット(命令セットアーキテクチャ)であるということを理由に、MIPSとバークレーRISCの設計が「典型的なRISC」だとされ、それらの特徴を以て「RISCの定義」だとされているためであり、「MIPSは最も典型的なRISC」だという言明はその逆になっている。
パターソンさんとあわせてRISCなのですね。 この辺よくわかっていませんでした。 なんとなく「CISCは命令が複雑、RISCは命令が単純」くらいの理解でした。
1960年代のIBM 7030の頃には実現されていた命令パイプライン方式では、1つの命令の処理過程を複数のステージ(段階)に分割し、各ステージを順次、次のサブユニットに送って、複数のサブユニットがオーバラップして動作できるようにする。
なるほどMIPSはパイプラインの発明者ではなくて、改良者なのですね。
1961年のIBM 7030(Stretch)は、マイクロプログラム方式でパイプラインと分岐予測を使用している[2]。以後のメインフレームの大半でも使用されている。
へー、1961年にはすでにあったんですね。 というかMIPSの時点で20年ぐらい経っていたのですね。 すでに、枯れたテクノロジーだったのでしょうか? 20年くらいブレークスルーが見つかっていなかった分野に切り込んだ感じなのでしょうか?
分岐予測というのも60年ぐらい前のテクノロジーなのですね。 2018年のSpectreとMeltdown*1の時まで意識していなかったので、意外でした。
「もっとCPUの気持ちが知りたいですか?」は、160ページくらいの本です。 集中して読み切ってしまって、気になった所を詳しく調べてみるのが、良さそうな使い方です。
もっとCPUの気持ちが知りたいですか? 第11章 手が届く範囲にモノがあると便利だよね(キャッシュメモリ)
第11章 手が届く範囲にモノがあると便利だよね(キャッシュメモリ) にCPUのキャッシュを外すサンプルコードが載っていました。 試しにWSL上で動かしてみます。
access_memory_in_order : 0.244438 sec
access_memory : 1.923961 sec
おお、Core i7でも同じように差が出ます。
コンパイルはこんな感じです。
clang -O0 -o access_memory access_memory.c
今気がつきましたが、本に載っているのはmemory_access
です。誤植でしょうか?
アーリーアクセスできてたので、そのとき気がついて、伝えられてれば・・・と残念です。
最適化オプション
-O0
が気になります。
変えるとどうなるのでしょうか?
> clang -O1 -o access_memory access_memory.c > ./access_memory access_memory : 2.474425 sec
あれ?遅くなりました。 そういうこともあるんですね。
GCC
次はGCCを使ってみます。
> gcc -O0 -o access_memory access_memory.c > ./access_memory access_memory : 1.863295 sec
> gcc -O1 -o access_memory access_memory.c > ./access_memory access_memory : 2.360995 sec
大体同じ結果になりました。
バッファサイズ
次にバッファサイズを変えてみます。
0x200
access_memory : 0.001568 sec
マッハです。これはキャシュヒットしてそうです。
0x1000
access_memory : 0.411469 sec
キャッシュが外れてそうです。
0x800
access_memory : 0.094881 sec
ヒット
0xC00
access_memory : 0.216819 sec
ミス
0xA00
access_memory : 0.125575 sec
ミス
0x900
access_memory : 0.106271 sec
ミス。この辺に境界がありそうです。 あれ?よく見たら0x800と大して差がありません。 0x800はキャッシュミスしてそうです。 もっと小さくても良さそうですね。
すっかり忘れてたけで、下のリンクから購入されると僕に紹介料が入る仕組みがあるみたいです。
2022年の仕事的ふりかえり
Webアプリケーションの高速化
Webアプリケーションの高速化をクライアントサイドとサーバーサイドで両方やりました。 すごいでしょ。
TextAEの描画を高速化した
TextAEというのは文章についた注釈をビジュアル化してみせるJavaScriptのアプリケーションです。 ブラウザで動きます。 注釈はdiv要素やSVGで描画しています。 8万文字の文章に2万注釈ついたデータがありました。 この描画に120分くらい掛かっていました。 ブラウザの表示領域に入っている注釈だけ描画するようにしました。 約6分で描画できるようになりました。 20倍くらい速くなりました。
PubAnnotationの注釈アップロードを高速化した
PubAnnotationという注釈のついた文章を管理するアプリケーションがあります。 前述のTextAEのバックエンドだと思ってください。 PubAnnotationには注釈のついた文章を一括でアップロードする機能があります。 7万文章をアップロードすると7時間ぐらい掛かっていました。
これはSQLの部分とテキスト処理の部分でそれぞれ時間が掛かっていました。 SQLを工夫して2.2倍速くしました。 テキスト処理にRactorを導入してさらに1.2倍速くしました。 Ractor入れて1.2倍というのはあんまり期待した感じではないです。 これはRactorが効かないというよりは、見落としていたIOバウンドな処理があって足を引っ張っているようです。 あわせて2.6倍です。
PubAnnotationの高速化の詳細は、自分でもうまく整理できていません。 別の記事にするか社内発表にするか、もうちょっと詳しく整理する時間をとりたいと思っています。
開発チームの立ち上げ
いままで長く維持するチームに所属したことがありません。 概ね一年未満だったと記憶しています。 今回、年をまたぐような長期の開発に参加する機会を得て、あらためて開発チームを立ち上げました。
人をあつめるところからでした。 せっかくなので「ふりかえり」もちゃんとやろうと思って、あらためて「これだけ!KPT」を読みました。
Keep出しに何分とか時間を決めて運営しています。 ちゃんとルールを決めるとファシリテーターを交代しやすくていいですね。
いままで、開発の隙間とか終わりとかにスポットでKPTをやったことはあります。 継続して定期的にやったのははじめてです。 継続してやると、いろいろな使い方が出来て面白いです。
- チームのグルーミング
- 新しく入ってきた人との交流
なんかは予想していたとおりでした。 これ以外にも
- 事務処理を期日までに終わらせる
- 健康のために筋トレする
みたいなTryをあげて実践する使い方が出来たのは意外でした。 面白かったです。
一定期間で成果をあげるためのチーム管理でなくて、長期的に成果を上げ続けるためのチーム管理というのは、なかなか新鮮です。
Ubuntuに最新のRedisをインストールする
Sidekiqのバージョンを上げたところ次のようなメッセージが表示され、起動出来なくなりました。
22:32:20 workor.1 | You are connecting to Redis 6.0.16, Sidekiq requires Redis 6.2.0 or greater
現在インストールされているバージョンを確認します。
ledsun@MSI:~/pubannotation►apt show redis (master) 22:33 Package: redis Version: 5:6.0.16-1ubuntu1 Priority: optional Section: universe/database Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Chris Lamb <lamby@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 67.6 kB Depends: redis-server (<< 5:6.0.16-1ubuntu1.1~), redis-server (>= 5:6.0.16-1ubuntu1) Homepage: https://redis.io/ Download-Size: 2930 B APT-Manual-Installed: yes APT-Sources: http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages Description: Persistent key-value database with network interface (metapackage) Redis is a key-value database in a similar vein to memcache but the dataset is non-volatile. Redis additionally provides native support for atomically manipulating and querying data structures such as lists and sets. . The dataset is stored entirely in memory and periodically flushed to disk. . This package installs the main redis-server package.
6.0.16です。 最新のRedisをインストールするにはどうしたらいいでしょうか?
公式サイト Install Redis on Linux | Redis に手順が載っていました。 これに従って
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis
を実行します。 再度バージョンを確認します。
ledsun@MSI:~/pubannotation►apt show redis 25.067s (master) 22:38 Package: redis Version: 6:7.0.7-1rl1~jammy1 Priority: optional Section: database Maintainer: Redis Core Team <redis@redis.io> Installed-Size: 51.2 kB Depends: redis-server (<< 6:7.0.7-1rl1~jammy1.1~), redis-server (>= 6:7.0.7-1rl1~jammy1) Homepage: https://redis.io/ License: unknown Vendor: none Download-Size: 39.3 kB APT-Manual-Installed: yes APT-Sources: https://packages.redis.io/deb jammy/main amd64 Packages Description: Persistent key-value database with network interface (metapackage) Redis is a key-value database in a similar vein to memcache but the dataset is non-volatile. Redis additionally provides native support for atomically manipulating and querying data structures such as lists and sets. . The dataset is stored entirely in memory and periodically flushed to disk. . This package depends on the redis-server package. N: There are 10 additional records. Please use the '-a' switch to see them.
成功しました。 サービスの再起動なんかは特に必要ないみたいです。