From ec5d0a4ef6379680bf447ed52c5579a99e50f786 Mon Sep 17 00:00:00 2001 From: Masatoshi Nishiguchi <7563926+mnishiguchi@users.noreply.github.com> Date: Sat, 30 Nov 2024 19:01:00 +0900 Subject: [PATCH] update posts - 2024-11 --- public/20241130-asdfrc.md | 95 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 public/20241130-asdfrc.md diff --git a/public/20241130-asdfrc.md b/public/20241130-asdfrc.md new file mode 100644 index 0000000..086b2d9 --- /dev/null +++ b/public/20241130-asdfrc.md @@ -0,0 +1,95 @@ +--- +title: asdf の設定ファイル .asdfrc をつかってみた +tags: + - 設定 + - asdf + - asdf-vm + - asdfrc +private: false +updated_at: '2024-11-30T18:54:47+09:00' +id: 11fccf5e2e4a23f49c89 +organization_url_name: fukuokaex +slide: false +ignorePublish: false +--- +[asdf]: https://asdf-vm.com/ + +## はじめに + +[asdf] は、複数のプログラミング言語やツールのバージョンを統一的に管理できる便利なツールです。 + +[asdf] を利用する中で、設定ファイルである `.asdfrc` の便利さに氣づきました。 + +この記事では、`.asdfrc` の基本的な設定内容を整理し、学んだことを共有します。誰かの参考になれば幸いです。 + +https://qiita.com/torifukukaiou/items/9009191de6873664bb58 + +## `.asdfrc` の基本 + +[asdf] の設定ファイル `.asdfrc` は、デフォルトではホームディレクトリに配置されます。このファイルを利用することで、[asdf] の動作を細かくカスタマイズすることができます。 + +以下はデフォルトの設定内容です。 + +```bash +legacy_version_file = no +use_release_candidates = no +always_keep_download = no +plugin_repository_last_check_duration = 60 +disable_plugin_short_name_repository = no +concurrency = auto +``` + +詳しくは[公式ドキュメントの `.asdfrc` 設定セクション](https://asdf-vm.com/manage/configuration.html#asdfrc)を参照してください。 + +### 各設定項目の説明 + +- **[`legacy_version_file`](https://asdf-vm.com/manage/configuration.html#legacy-version-file)** + 既存のバージョン管理ツールのファイル(例: `.ruby-version`, `.node-version` など)を参照するかどうかを制御します。`yes` にすると互換性を持たせられます。 + +- **[`use_release_candidates`](https://asdf-vm.com/manage/configuration.html#use-release-candidates)** + リリース候補(RC)のバージョンを使用するかどうかを設定します。 + +- **[`always_keep_download`](https://asdf-vm.com/manage/configuration.html#always-keep-download)** + ダウンロードしたアーカイブを削除せず保持するかどうかを指定します。 + +- **[`plugin_repository_last_check_duration`](https://asdf-vm.com/manage/configuration.html#plugin-repository-last-check-duration)** + プラグインリポジトリの更新頻度(分単位)を指定します。デフォルトは 60 分です。 + +- **[`disable_plugin_short_name_repository`](https://asdf-vm.com/manage/configuration.html#disable-plugin-short-name-repository)** + プラグインの短縮名を使ったリポジトリを無効化します。 + +- **[`concurrency`](https://asdf-vm.com/manage/configuration.html#concurrency)** + 並列処理の設定を行います。`auto` にすると環境に応じた適切な値が設定されます。 + +## レガシーファイルを参照する設定 + +僕が特に活用している `legacy_version_file` 設定について、もう少し詳しく説明します。 + +プロジェクト内に `.node-version` や `.ruby-version` など、既存のバージョン管理ツール用ファイルが存在する場合、それをそのまま活用することが可能です。この機能は、`legacy_version_file` を `yes` に設定することで有効になります。 + +以下のように `.asdfrc` を設定します。 + +```bash +legacy_version_file = yes +``` + +**ユースケース**: + +- プロジェクト内で `rbenv` や `nvm` など他のバージョン管理ツールと [asdf] を併用している場合。 +- 古いプロジェクトのファイルを `.tool-versions` に変換せずに活用したい場合。 + +ただし、[asdf] の推奨される運用は `.tool-versions` を利用することです。この設定は、あくまで暫定的な解決策として活用するのが良いでしょう。一方で、新しいプロジェクトでは `.tool-versions` を利用する運用に切り替えることで、後々の管理が楽になるとも考えています。この使い分けができる点も `.asdfrc` の魅力です。 + +詳細は[レガシーファイル設定](https://asdf-vm.com/manage/configuration.html#legacy-version-file)をご確認ください。 + +## 僕の `.asdfrc` + +僕の `.asdfrc` 設定では、`legacy_version_file` のみを設定しています。この一つの設定項目で、既存のツールから [asdf] へのスムーズな移行が可能になり、プロジェクトごとの特性に合わせた柔軟な運用も実現できます。 + +これを設定することで、`.ruby-version` や `.node-version` といった既存のバージョン管理ツール用ファイルをそのまま活用できました。特に、古いプロジェクトをメンテナンスする際や、他のツールから [asdf] への移行作業を行う際に大きな助けとなりました。 + +## おわりに + +`.asdfrc` は、[asdf] の柔軟性を高める便利な設定ファイルです。僕の場合、特に `legacy_version_file` の設定が役立ちました。既存のプロジェクトをスムーズに移行したり、古いバージョン管理ツール用ファイルをそのまま活用できたりする点は、非常に強力で便利です。 + +この記事が少しでも参考になれば嬉しいです。また、皆さんのおすすめのテクニックや工夫があれば、ぜひコメントなどで教えていただけると嬉しいです!