😀

自宅開発環境構築 ~Dynabookちゃんとはお別れ。。~

に公開

はじめに

前回の更新から時間が1週間くらい経っている気がします。
環境構築とかRust開発について書いていた時は自分の頭の中に情報が詰まっていたので、
それをひたすら書き出していくことで更新を続けられていたのですが。。。

手持ちのカードがなくなり、Dynabook環境構築が思うように進まず、、
更新できるような状態にならず、やる気がなくなってしまっていました
ですが、ここで表題の通りDynabookとはお別れすることにして、
今使っているメインPC(Surface laptop go2)を開発環境として決めました!

なので、Dynabookでやってみてダメだったことや
Surface上にどのような環境を構築したのかをお伝えしたいと思います!
※どちらも構築時のキャプチャとか取得してないので、詳細なところまで伝えられないです。。

Dynabook構築失敗!

まずは、Dynabook構築に失敗した件です。
Dynabook含め他機器の構築内容についてはこちらの記事で書いています。
https://zenn.dev/maromaron88/articles/ac54c9e32ab8cd
XubuntuをOSとして選定してセットアップを進めており、
Minimalインストールではうまくいかなかったため、標準インストールを試していました!
Minimalインストール時に設定できなかった、画面閉じた際のスリープ防止設定について、
標準インストールのXubuntuでは問題なく設定できたため感動していました!

そんな中で発生した問題はこちらです!

リモートデスクトップ接続時にブラウザが使えない!

基本的にメインPCからリモデして、VSCode使って開発を進めようと考えていたのですが、、
リモデした後ブラウザを開こうとしても一向に開けませんでした!
Geminiに相談していろいろ設定を変更してみたのですがダメでした。

Dynabookちゃんとの別れ

リモデ接続前提でDynabookセットアップを進めていたので、
リモデで使えなければ何の意味もありません。。

PC自体も10年近く古いものになりますし、定期的にメンテナンスしているものでもなく、
充電コードがなければ30分も持たないようなバッテリ状態でした。
なので、セットアップが進まなくなってしまった時点で別れを決意しました!

Surface セットアップ

Dynabookとお別れをして、Surface上に環境構築を進めることに決定しました!
実際に行ったセットアップ内容は下記の通りです。

  1. WSL(AlmaLinux9)をインストール
  2. TeraTerm最新版インストール
  3. Gemini CLIインストール

AlmaLinux9 インストール

まず、AlmaLinux9のインストールです。
こちらに書いてある通りに進めてみました。
https://zenn.dev/madao1981/articles/20250423-wsl-almalinux
WSLは設定済みだったのでAlmaLinuxインストールを実施しています。
インストール後に困ったことはホスト名が自動的に設定されてしまう事象です!

おそらくWSLの仕様により起動時に自動的にホスト名とResolvConfが書き変わってしまい、
何回設定を加えても再起動すると元の状態に戻ってしまう事象が発生しました。
今回この問題を解決するにあたりGeminiから提案された手段は、
起動時にホスト名を書き換えるsystemdサービスを作成するというものです!
細かくお伝えすると下記の手順を行っています。

  1. /etc/wsl.conf 修正
  2. /etc/systemd/system 配下にサービスファイル作成
  3. サービス自動起動有効化&起動
  4. /etc/hosts 書き換え
  5. PowerShell でAlmaLinux停止→起動
  6. /etc/resolv.conf 作成
  7. openssh-server インストール

何をしたのかと言いますと、まず/etc/wsl.confにホスト名とresolv.confを
自動生成しない設定を追加しました。

[network]
generateHosts = false
generateResolvConf = false

[boot]
systemd = true

generateHosts と generateResolvConf を無効化することにより、
OS起動時に /etc/hosts と /etc/resolv.confの自動生成処理を止めることに成功しました!
また、systemd を有効化することによりWSL内でもsystemdサービスが正常に
稼働する環境を準備できました!(基本的にsystemdではなくinitが採用されているため)

次に /etc/systemd/system 配下にサービスファイルを格納し、
サービスファイル内にて起動時にホスト名をあらかじめ指定しておいた
任意の文字列に書き換えるサービスを起動しました!
これにより私が設定したいホスト名を必ず設定することが可能になりました!
また、OS起動時のサービス起動を有効化しておき、必ず書き変わる状態に変更しました。

/etc/hosts が書き変わらない状況を作ることができたので、
先ほど設定したサービスで指定しているホスト名を /etc/hosts にも設定します。

そして、AlmaLinux9のシャットダウンと起動ですね。
停止・起動の手順は先ほどインストールの説明の際に紹介した記事に書いてあります!
起動してきた後に確認したところ、ホスト名は期待した文字列に設定されていました!
ホスト名がPC名のままなのは嫌なので。。

OS再起動後は /etc/resolv.conf の設定です!
自動生成されなくなったのでファイルを作成するところからですね。
とりあえず Google と Cloudflare のDNSサーバを設定しました!

nameserver 8.8.8.8
nameserver 1.1.1.1

両方ともGoogleでもよかったかもしれないですが、、
提案された中にCloudflareのDNSが含まれており、気になったので設定してみました!

最後にopensshの設定を行ってTeraTermによる接続が可能な状態を作り、
AlmaLinuxのセットアップが完了しました!

TeraTerm最新版インストール

AlmaLinuxのセットアップ完了後はTeraTerm最新版のインストールです!
前にインストールした3年くらい前のバージョンのTeraTermが手元にあったので、
それで接続しようとしていたのですが、、接続時に毎回鍵の確認をされてしまう状況でした。
一度許可すれば二回目は聞かれない認識でしたが、どれだけ設定を試してもダメだったので、
古いTeraTermをアンインストールし、最新版をインストールしたことによって解消しました!

鍵の確認が行われてしまう原因として考えられるものは、

  1. TeraTermが古い
  2. OSがWin10→Win11に変わっている
    まずTeraTermが古いことを原因として考えましたが、、そこまで影響があるとは思っていません。
    それよりもOSがWin11にアップグレードされていることが原因と考えています!

古いTeraTermがWin11に対応しておらず、known_hostsの置き場所などが変わってしまい、
鍵の保存ができずに毎回確認されていたのだと考えています。

Gemini CLI インストール

最後に Gemini CLI のインストールです!
WSLのセットアップに手を付けるか悩んでいた時に、ちょうどGemini CLIがリリースされました!
他のAIツールとの比較記事などを確認し、本当にセットアップを進めるか悩みました。
そんな中でAPI利用について無料枠を多く設けていることを知り、
私が開発しようと考えている AIチャットボットのバックエンドに使える! と思い、
セットアップを進めることにしました!
こちらの記事を参考にセットアップを進めています!
https://zenn.dev/schroneko/articles/gemini-cli-tutorial

Node.jsのインストールが必要だったのですが方法が分からなかったので、
Geminiに助けを求めてインストールを進めました!
その後、リンクの記事に沿ってGeminiをインストールして使ってみました!

Gemini CLI 使ってみた!

まず、Gemini CLI の起動ですね!gemini で起動できました。

これ、AlmaLinux9を直接起動したときの画面です!
キレイに Gemini と表示されてますね!

こっちはTeraTerm越しに起動したときの画面です。。。
なんか、ぐちゃぐちゃなんですよねー。
もし誰か解消方法を知っている方がいらっしゃったら教えていただけると嬉しいです!!

Geminiに色々確認してみたところ、チャット履歴は残らないようでした!
gemini > "ファイル名" みたいにして、geminiのチャット履歴をファイルに保存しておき、
次回起動時にファイルを読み込んでもらうことによって、過去の情報をもとに会話できるようです!
※私は試していないので本当かどうかは分からないです。。。すみません。

おわりに

今回はざっくりですが、Dynabookとのお別れとWSLセットアップについてお話ししました!
ひとまず、記事にすることができて安心しています。。

なんだかんだでまだRust開発に手を付けていないので休止期間に入りかねないのですが、、、
1週間に1回くらいのペースで更新できればと思っています!
ブログを定期的に更新できないのは初心者あるあるらしいですが、どうなんですかね?

次こそはRustで開発するAIチャットボットについて記事にしたいと思ってます!
ではまた!

Discussion