feature image

2024年12月18日 | ブログ記事

Go 言語で asdf を使うのをやめた話

この記事は アドベントカレンダー 2024 18日目のものです
他の記事を見たい方は こちら↑ のリンクをクリック!

こんにちは! 23B のぷぐまです
今回は traP 内で公用語と化している (?) Go 言語についての記事です

はじめに

Go 言語を知らないよ〜という方のために軽く Go 言語について説明をしておきます

Go 言語とは、 Google が開発をしているプログラミング言語です
バージョン 1 が正式にリリースされたのは 2012 年 3 月 28 日のことで、最新のバージョンは 2024 年 12 月 3 日にリリースされたバージョン 1.23.4 です

言語公式で多彩なパッケージが用意されているだけでなく、一般プログラマーが GitHub 上で公開しているパッケージについても簡単に使えるのが特徴です
他の言語だと言語で用意されているパッケージ管理ツールの一覧に登録する作業などがありますが、そんなことをしなくても URL を用いて簡単に持ってこられます

GitHub からでも URL 形式で引っ張ってこれる

公式サイトによると、

が具体的な活用事例として紹介されています

traP では、部内で SysAd 班が制作している Web アプリケーションのサーバーサイドはすべて Go 言語で統一されています

勉強をしたい方は、 Go 言語公式で用意されている A Tour of Go で簡単に勉強をすることができます
ただ、これは他のプログラミング言語を通してある程度の基礎知識を持っていることを前提とされているような気もするので、不安な方は他のページも参考にしてみるといいかもしれません

asdf でのバージョン管理をやめてみた

さてそんな Go 言語ですが、バージョン 1.21 で Go Toolchain が使えるようになりました
これは簡単に説明すると、アプリケーション開発をしているときに必要な Go 言語のバージョンが書かれているファイルを自動で参照し、手元にないバージョンであれば自動で更新してくれるというものです

より詳しい人向けに説明をすると、 go.mod というファイルに toolchain go1.23 などの形式で書かれている場合、手元にそれよりも古いバージョンしかなかった場合には自動で 1.23 をインストールしてくれるようになしました
ただし、 toolchain で指定されたものよりも新しいバージョンがある場合は手元のバージョンが使われます (Go 言語の後方互換性の高さで成り立っている)

そんなわけで、これまで使っていた asdf によるバージョン管理の必要がなくなったというわけです!
asdf というのは複数バージョンの環境を使いまわしたいときのものでしたが、 toolchain によって実質的に Go 言語側がこれをやってくれるようになったというわけです

…というわけで asdf から Go 言語をアンインストールして、公式のインストーラーを使ってインストールし直しました!

pugma@MacBook-Pro ~ % which go
/usr/local/go/bin/go

これまでだと /Users/pugma/.asdf 以下にインストールされていたのでパッケージ更新の際にパスが通らずに困ったこともありましたが、これでそれから解放されました!

さいごに

ここまでお読みくださってありがとうございました
当たり前の用に使っているものでも、たま〜に環境を見直してみるとキレイに整頓できるようになっているときもあります

定期的なお手入れも怠らないようにしたいですね

明日は…

明日は @kenken くん @Alt--er くんと @jupiter くんと @comavius くんです!
お楽しみに!

Pugma icon
この記事を書いた人
Pugma

23B / 普段はWebアプリケーション全般を幅広く / 競技プログラミングもたまにつまみ食い

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2021年8月12日
CPCTFを支えたWebshell
mazrean icon mazrean
2021年5月19日
CPCTF2021を実現させたスコアサーバー
xxpoxx icon xxpoxx
2024年6月21日
ハッカソン参加記 4班"Slide Center"
Alt--er icon Alt--er
2024年12月11日
Nixで実行環境のライセンス違反を予防する話
comavius icon comavius
2024年3月15日
個人開発として2週間でWebサービスを作ってみた話 〜「LABEL」の紹介〜
Natsuki icon Natsuki
2023年10月20日
DIGI-CON HACKATHON 参加記事「Comic DoQ」
mehm8128 icon mehm8128
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記