1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JailにGEMINI CLIを入れて遊ぶ

Last updated at Posted at 2025-07-12

目的

GoogleからGeminiCLIがリリースされた。FreeBSDでも使用できるか試すことにする。お試しなのでJail上に構築してエージントが暴走しても影響を少くする。

要件

以下に環境要件を示す。

  • FreeBSD 14.3-RELEASE
  • appjail-devel-3.6.0.20250211

AppJailはFreeBSD用のJail管理ソフトで、Makejail等を利用することでJail上に各種サーバを容易に構築できる。AppJailの詳細はAppJail Handbook、MakejailはAppJail-makejailsで確認すること。

以下は、AppJailの導入とVirtual Network(NAT)の設定、appjail-dnsによるJailの名前解決が完了したことを前提とする。

GeminiCLI環境の構築

Jailの作成

以下のコマンドでNATを使用したJailを構築する。

# appjail quick gemini virtualnet=":<random> default" nat overwrite start

これで"gemini"と名付けられたJailが作成される。

パッケージのインストール

作成したJailにログインし、GeminiCLIを動作するのに必要なパッケージをインストールする。ログインは以下の通り。

# appjail login gemini

Jailにログインしたら、パッケージをインストールする。

root@gemini:~ # pkg
root@gemini:~ # pkg update
root@gemini:~ # pkg install npm-node23
root@gemini:~ # node --version
v23.11.1
root@gemini:~ # npm --version
10.9.2

gitやvim等のツールも必要であればインストールする。

GeminiCLIのインストール

以下のコマンドでGeminiCLIをインストールする。

root@gemini:~ # npm install -g @google/gemini-cli
root@gemini:~ # gemini --version
0.1.10

一般ユーザの作成とsshdの起動

Jailでもrootユーザでエージェントを動かすのは良くないので、作業用に一般ユーザを作成し、外部からログイン用にsshdも起動する。

root@gemini:~ # adduser
root@gemini:~ # sysrc sshd_enable=YES
root@gemini:~ # service sshd start

GeminiCLIの動作確認

AppJailで構築したJailへホスト側からsshを使用してログインする。

% ssh user@gemnini

あとはGeminiCLIの設定をすれば、作業完了となる。ssh越しでGoogleアカウントによるログインは不可能ではないが面倒なので、GEMINI_API_KEYを準備して以下を設定すると良い。

setenv GEMINI_API_KEY 取得したAPI KEY
setenv GEMINI_MODEL gemini-2.5-flash # モデルを指定したい場合

AppJailのリポジトリをクローンし、ディレクトリ内で解析を指示した結果がこちらになる。


   █████████  ██████████ ██████   ██████ █████ ██████   █████ █████
  ███░░░░░███░░███░░░░░█░░██████ ██████ ░░███ ░░██████ ░░███ ░░███
 ███     ░░░  ░███  █ ░  ░███░█████░███  ░███  ░███░███ ░███  ░███
░███          ░██████    ░███░░███ ░███  ░███  ░███░░███░███  ░███
░███    █████ ░███░░█    ░███ ░░░  ░███  ░███  ░███ ░░██████  ░███
░░███  ░░███  ░███ ░   █ ░███      ░███  ░███  ░███  ░░█████  ░███
 ░░█████████  ██████████ █████     █████ █████ █████  ░░█████ █████
  ░░░░░░░░░  ░░░░░░░░░░ ░░░░░     ░░░░░ ░░░░░ ░░░░░    ░░░░░ ░░░░░


Tips for getting started:
1. Ask questions, edit files, or run commands.
2. Be specific for the best results.
3. Create GEMINI.md files to customize your interactions with Gemini.
4. /help for more information.


╭──────────────────────────────────────────────────╮
│  > ディレクトリ内のプロジェクトについて説明して  │
╰──────────────────────────────────────────────────╯

 ╭────────────────────────╮
 │ ✔  ReadFile README.md  │
 ╰────────────────────────╯
✦ AppJailは、sh(1)とC言語で書かれたオープンソースのBSD-3ライセンスフレーム
  ワークです。FreeBSD
  jailsを使用して、アプリケーションのように動作する隔離されたポータブルで
  デプロイしやすい環境を作成することを目的としています。


  主な機能は以下の通りです。
   * 使いやすさ
   * 並列起動(ヘルスチェッカー、Jails、NAT)
   * UFSおよびZFSのサポート
   * RACCT/RCTLのサポート
   * NATのサポートとポート公開
   * IPv4およびIPv6のサポート、DHCPおよびSLAACのサポート
   * 仮想ネットワーク、ブリッジ、VNETのサポート
   * Makejailによるアプリケーションのデプロイ
   * LinuxJailsのサポート
   * Thin/Thick jailsおよびTinyJailsのサポート
   * 起動順序制御とJailの依存関係のサポート
   * Initscripts
   * tarballまたはrawイメージ(ZFSのみ)によるJailのバックアップ
   * モジュール構造とテーブルインターフェース
   * データベース不要
   * ヘルスチェッカー
   * イメージ
   * DEVFSのサポート
   * OCIのサポート


  AppJailは、ホストの変更を最小限に抑え、非対話的であり、自身で作成したJ
  ail以外を操作しないように設計されています。また、すべてを自動化するの
  ではなく、小さなコマンドを組み合わせて使用することを推奨しています。ソ
  フトウェアのビルドには焦点を当てていません。

エージェントがディレクトリ内部のREADME.mdを見付け、内容を日本語で呈示したのが判る。

スナップショットの作成(オプション)

環境構築後にJailのスナップショットを作成しておくと、何か不具合が出た時に環境を元に戻したり、環境をクローンしたりすることができる。zfsが使用可能なら、以下で作成できる。

# appjail zfs snapshot gemini@snap1

御精讀ありがたうございました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?