2026年10月25日日曜日

ollama で num_predict を設定する方法

ollama で num_predict を設定する方法

概要

num_predict を設定しないと出力が途中で途切れてしまうので設定しましょう
おもに2つあります

環境

  • macOS 26.6.2
  • ollama 0.40.8

方法1: API をコールする

curl -s http://localhost:11434/api/generate \
  -H 'Content-Type: application/json' \
  -d "$(jq -n \
    --arg model 'gemma4' \
    --arg prompt 'このファイルの内容を要約してください' \
    --arg content "$(cat scripts/test.py)" \
    '{
      model: $model,
      prompt: ($prompt + "\n\n以下がファイルの内容です。\n\n" + $content),
      think: true,
      stream: false,
      options: {
        num_predict: -1
      }
    }')" \
  | jq -r '.response' > output.txt

方法2: カスタムモデルの作成

  • ollama run gemma4

インタラクティブモードに入る

  • /set parameter num_predict -1
  • /save my/gemma4

インタラクティブモードを抜けて保存したモデル名で実行する

  • ollama run my/gemma4

方法2 は Modelfile を使っても OK です

最後に

コンテキストサイズは環境変数で設定可能ですが出力サイズは環境変数で設定できないので注意です

2026年10月24日土曜日

Mac 上の ollama でコンテキストサイズを変更する方法

Mac 上の ollama でコンテキストサイズを変更する方法

概要

.env を変更しましょう
前回も紹介していますが方法が変わっていました

環境

  • macOS 26.6.2
  • ollama 0.40.5

env ファイル作成

OLLAMA_CONTEXT_LENGTH を追加します

  • mkdir -p ~/.homebrew/services
  • vim ~/.homebrew/services/ollama.env
OLLAMA_CONTEXT_LENGTH=10240

再起動

  • brew services restart ollama

これで ~/Library/LaunchAgents/sh.brew.ollama.plist が動的に生成されます

動作確認

適当に ollama run で起動し何か話かけて ollama ps で Context Size を確認しましょう

最後に

コンテキストサイズを大きくしたほうがエージェントが柔軟に動けます
ただしメモリが必要になります

2026年10月23日金曜日

Codex CLI を ssh したサーバ上の tmux 上で実行している場合に会話の履歴を過去にたどる方法

Codex CLI を ssh したサーバ上の tmux 上で実行している場合に会話の履歴を過去にたどる方法

概要

esc キーで Browsing transcript になるのであとは上下キーでレスポンスの履歴を確認できます

環境

  • Ubuntu 24.04
  • codex cli 0.163.0

最後に

tmux 上でコピーモードしても codex cli を実行する以前のシェルの履歴しか辿れないのでちゃんと codex cli の機能を使いましょう

2026年10月22日木曜日

Codex CLI + ollama + gemma4 設定メモ

Codex CLI + ollama + gemma4 設定メモ

概要

大事なのはコンテキストでした

環境

  • Ubuntu 24.04
  • 8vCPU 32GBメモリ
  • gemma4:26b

ollama インストール

  • curl -fsSL https://ollama.com/install.sh | sh

codex インストール

  • curl -fsSL https://chatgpt.com/codex/install.sh | sh

モデルダウンロード

  • ollama pull gemma4:26b

ollama 設定

  • sudo systemctl edit ollama.service
### Editing /etc/systemd/system/ollama.service.d/override.conf
### Anything between here and the comment below will become the contents of the drop-in file

[Service]
Environment="OLLAMA_CONTEXT_LENGTH=66536"


### Edits below this comment will be discarded


### /etc/systemd/system/ollama.service
# [Unit]
# Description=Ollama Service
# After=network-online.target
#
# [Service]
# ExecStart=/usr/local/bin/ollama serve
# User=ollama
# Group=ollama
# Restart=always
# RestartSec=3
# Environment="PATH="
#
# [Install]
# WantedBy=default.target
  • sudo systemctl daemon-reload
  • sudo systemctl restart ollama

サンドボックス設定

codex 起動

  • ollama launch codex

で gemma4:26b を選択

動作確認

あとは命令するだけです
コンテキストを長くしないと codex cli が命令を実行してくれません

最後に

メモリが十分にないとコンテキストを64kにできないのでメモリを潤沢にしましょう

2026年10月21日水曜日

apt の gpg キーを更新しよう

apt の gpg キーを更新しよう

概要

サードパーティのリポジトリを追加している場合は gpg キーが定期的に更新される場合があるので更新してあげましょう

環境

  • Ubuntu 24.04

エラーログ

Get:1 https://cli.github.com/packages stable InRelease [3,917 B]
Hit:2 https://aquasecurity.github.io/trivy-repo/deb generic InRelease
Err:1 https://cli.github.com/packages stable InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5612B36462313325
Hit:3 https://download.docker.com/linux/ubuntu noble InRelease
Get:4 https://apt.releases.hashicorp.com noble InRelease [12.8 kB]
Err:4 https://apt.releases.hashicorp.com noble InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY FC9CA96ACA026560
Hit:5 http://repo.mysql.com/apt/ubuntu noble InRelease
Hit:6 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:7 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:8 http://archive.ubuntu.com/ubuntu noble-updates InRelease
Hit:9 https://ppa.launchpadcontent.net/ansible/ansible/ubuntu noble InRelease
Hit:10 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu noble InRelease
Get:11 https://esm.ubuntu.com/apps/ubuntu noble-apps-security InRelease [8,371 B]
Get:12 https://esm.ubuntu.com/apps/ubuntu noble-apps-updates InRelease [8,220 B]
Get:13 https://esm.ubuntu.com/infra/ubuntu noble-infra-security InRelease [8,235 B]
Get:14 https://esm.ubuntu.com/infra/ubuntu noble-infra-updates InRelease [8,213 B]
Fetched 49.8 kB in 4s (12.9 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
3 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://cli.github.com/packages stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5612B36462313325
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://apt.releases.hashicorp.com noble InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY FC9CA96ACA026560
W: Failed to fetch https://cli.github.com/packages/dists/stable/InRelease  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5612B36462313325
W: Failed to fetch https://apt.releases.hashicorp.com/dists/noble/InRelease  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY FC9CA96ACA026560
W: Some index files failed to download. They have been ignored, or old ones used instead.

更新コマンド

# GitHub CLIの署名鍵を更新
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \
  | sudo install -o root -g root -m 0644 /dev/stdin \
    /etc/apt/keyrings/githubcli-archive-keyring.gpg

# HashiCorpの署名鍵を更新
curl -fsSL https://apt.releases.hashicorp.com/gpg \
  | gpg --dearmor \
  | sudo install -o root -g root -m 0644 /dev/stdin \
    /usr/share/keyrings/hashicorp-archive-keyring.gpg

# 動作確認
sudo apt-get update

最後に

今回は github と hashicorp でしたが他でも同様に更新が必要になるケースがあります

2026年10月20日火曜日

macOS Tahoe クリーンインストールメモ

macOS Tahoe クリーンインストールメモ

概要

前回から4年、今後は Tahoe でやりました

最初に

2026/10/20 時点でクリーンインストールしましたが Tahoe のインストールメディアは不要でした

環境

  • M1 MacBook Air
  • macOS 26.6.2

インストールメディアの準備

一応作っておいてもいいですが基本は不要です
起動オプションを表示し画面のように Tahoe を再インストールできるようになっていれば OK です

  • sudo diskutil eraseDisk FAT32 MYSD MBRFormat /dev/disk4
  • sudo softwareupdate --fetch-full-installer --full-installer-version 26.6
  • sudo /Applications/Install\ macOS\ Tahoe.app/Contents/Resources/createinstallmedia --volume /Volumes/USB

インストールメディア自体を作成するのに1時間ほどかかります (回線やデバイスの性能にもよる

起動オプション付きで起動

  • 一旦シャットダウン
  • 電源ボタンを押し続けて起動

ディスクの消去

  • ディスクユーティリティを起動
  • ディスクユーティリティから Macintosh HD を消去

アクティベーション

  • ディスクユーティリティを閉じるとアクティベーションが開始
  • AppleID などを入力する
  • Wifi などの設定も前のものを引き継いで使用してくれる

Tahoe の再インストール

  • あとは再インストールするだけ
  • 時間は2時間は見たほうがいい
  • 再インストールが完了したらあとは自由に設定すれば OK

最後に

再インストール直後のディスクサイズは40GBほどでした
ディスクが逼迫したら再インストールするのが一番簡単ですが面倒なのも事実です

参考サイト

2026年10月19日月曜日

docker 25 から 29 にアップグレードする方法

docker 25 から 29 にアップグレードする方法

概要

ついに 25 が EOL になったのでアップグレード

環境

  • Ubuntu 22.04

更新先のバージョンの確認

  • apt -y update
  • apt-cache policy docker-ce docker-ce-cli
  • apt list --all-versions docker-ce | head -n 10

更新可能な最新バージョンをメモ

ピン留めの修正

  • cp docker.pref docker.pref.back
  • vim docker.pref
Explanation: Pin added by DevOps with GitLab
Package: docker-ce*
Pin: version 5:29.9.1-1~ubuntu.22.04~jammy
Pin-Priority: 600

更新

  • apt install --dry-run docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
root@ubuntu:/etc/apt/preferences.d# apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
docker-buildx-plugin is already the newest version (0.38.0-1~ubuntu.22.04~jammy).
docker-buildx-plugin set to manually installed.
docker-compose-plugin is already the newest version (5.6.0-1~ubuntu.22.04~jammy).
docker-compose-plugin set to manually installed.
The following packages were automatically installed and are no longer required:
  libfwupd2 libfwupdplugin5 libgcab-1.0-0 libgusb2 libltdl7 libmbim-glib4 libmbim-proxy libmm-glib0 libqmi-glib5 libqmi-proxy libsmbios-c2 libtcl8.6 modemmanager
  tcl tcl8.6 usb-modeswitch usb-modeswitch-data
Use 'apt autoremove' to remove them.
Suggested packages:
  cgroupfs-mount | cgroup-lite docker-model-plugin
The following packages will be upgraded:
  containerd.io docker-ce docker-ce-cli
3 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
Need to get 65.4 MB of archives.
After this operation, 22.6 MB of additional disk space will be used.
N: Ignoring file 'docker.pref.back' in directory '/etc/apt/preferences.d/' as it has an invalid filename extension
Do you want to continue? [Y/n] Y
Get:1 https://download.docker.com/linux/ubuntu jammy/stable amd64 docker-ce-cli amd64 5:29.9.1-1~ubuntu.22.04~jammy [17.6 MB]
Get:2 https://download.docker.com/linux/ubuntu jammy/stable amd64 containerd.io amd64 2.4.2-2~ubuntu.22.04~jammy [23.3 MB]
Get:3 https://download.docker.com/linux/ubuntu jammy/stable amd64 docker-ce amd64 5:29.9.1-1~ubuntu.22.04~jammy [24.6 MB]
Fetched 65.4 MB in 1s (48.8 MB/s)
(Reading database ... 109872 files and directories currently installed.)
Preparing to unpack .../docker-ce-cli_5%3a29.9.1-1~ubuntu.22.04~jammy_amd64.deb ...
Unpacking docker-ce-cli (5:29.9.1-1~ubuntu.22.04~jammy) over (5:25.0.5-1~ubuntu.22.04~jammy) ...
Preparing to unpack .../containerd.io_2.4.2-2~ubuntu.22.04~jammy_amd64.deb ...
Unpacking containerd.io (2.4.2-2~ubuntu.22.04~jammy) over (2.4.1-2~ubuntu.22.04~jammy) ...
Preparing to unpack .../docker-ce_5%3a29.9.1-1~ubuntu.22.04~jammy_amd64.deb ...
Unpacking docker-ce (5:29.9.1-1~ubuntu.22.04~jammy) over (5:25.0.5-1~ubuntu.22.04~jammy) ...
Setting up containerd.io (2.4.2-2~ubuntu.22.04~jammy) ...
/usr/sbin/policy-rc.d returned 101, not running 'restart containerd.service'
Setting up docker-ce-cli (5:29.9.1-1~ubuntu.22.04~jammy) ...
Setting up docker-ce (5:29.9.1-1~ubuntu.22.04~jammy) ...
invoke-rc.d: policy-rc.d denied execution of restart.
/usr/sbin/policy-rc.d returned 101, not running 'restart docker.service docker.socket'
Processing triggers for man-db (2.10.2-1) ...
Scanning processes...
Scanning candidates...
Scanning linux images...

Running kernel seems to be up-to-date.

Restarting services...
 systemctl restart fwupd.service irqbalance.service multipathd.service open-vm-tools.service packagekit.service polkit.service rsyslog.service ssh.service systemd-timesyncd.service systemd-udevd.service udisks2.service unbound.service upower.service
Service restarts being deferred:
 systemctl restart ModemManager.service
 systemctl restart containerd.service
 /etc/needrestart/restart.d/dbus.service
 systemctl restart docker.service
 systemctl restart networkd-dispatcher.service
 systemctl restart systemd-logind.service
 systemctl restart unattended-upgrades.service

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.

docker 再起動

  • systemctl restart containerd.service
  • systemctl restart docker.service

確認

  • docker version
Client: Docker Engine - Community
 Version:           29.9.1
 API version:       1.56
 Go version:        go1.26.9
 Git commit:        dfc520d
 Built:             Wed Oct 14 18:32:26 2026
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          29.9.1
  API version:      1.56 (minimum version 1.40)
  Go version:       go1.26.9
  Git commit:       b26fb77
  Built:            Wed Oct 14 18:32:26 2026
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v2.4.2
  GitCommit:        b7a25261e029d68978bbf290df0a62fc819b3c51
 runc:
  Version:          1.5.2
  GitCommit:        v1.5.2-0-g29dd3dc2
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

最後に

今回は Docker CE のバージョンを APT preferences で指定しています。次回以降に更新する場合は、リポジトリの更新候補を確認し、必要に応じてピン留め設定を変更します。

Docker 公式リポジトリは unattended-upgrades の対象にしていないため、自動更新は行われません。