Skip to content

Commit 96f48a9

Browse files
committed
v1.0.25: アンインストーラに「Ollama・モデルも全削除(確認ダイアログ付き)」を追加
- InitializeUninstall で確認ダイアログ(はい: Ollama本体・モデル・関連サービスを全削除 / いいえ: Shineos Local AI のみ削除) - RemoveOllamaCompletely: プロセス停止(taskkill)→ 公式/フォールバックサービス削除 → 公式アンインストーラ実行 → .ollama 等の残骸を DelTree で完全削除 - サイレントアンインストール時はダイアログを出さず Ollama を残す(安全側) - user-guide.md のアンインストール節を更新
1 parent d4d4c8b commit 96f48a9

2 files changed

Lines changed: 58 additions & 6 deletions

File tree

docs/user-guide.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,12 @@
5353
## 4. アンインストール
5454

5555
1. 設定アプリ → アプリ → インストールされているアプリ → 「Shineos Local AI」→ アンインストール
56-
2. サービス・ファイルが自動的に削除されます
56+
2. サービス・ファイル・データが自動的に削除されます
57+
3. 確認ダイアログ「OllamaとAIモデルも削除しますか?」で選択:
58+
- **「はい」**: Ollama本体・ダウンロード済みAIモデル(約3.2GB)もすべて削除します(再インストール時は再ダウンロードが必要)
59+
- **「いいえ」**: Shineos Local AI だけを削除し、Ollama は残します
5760

58-
AIモデル(Ollama)は別途インストールされるため、アンインストール後も残ります。モデルごと削除したい場合は `ollama` コマンドで削除するか、Ollama 本体をアンインストールしてください
61+
「いいえ」で残した場合は、`ollama rm qwen2.5:3b qwen2.5:1.5b nomic-embed-text` でモデルのみ削除するか、設定アプリから Ollama をアンインストールしてください
5962

6063
## 5. 困ったときは
6164

installer/installer.iss

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
; ============================================================================
1010

1111
#define MyAppName "Shineos Local AI"
12-
#define MyAppVersion "1.0.24"
12+
#define MyAppVersion "1.0.25"
1313
#define MyAppPublisher "Shineos Inc."
1414
#define MyAppURL "https://shineos.com"
1515
#define MyAppExeName "open-webui.exe"
@@ -85,6 +85,7 @@ var
8585
PortFree: Boolean;
8686
OsOk: Boolean;
8787
SelectedModel: String;
88+
UninstallRemoveOllama: Boolean;
8889
8990
const
9091
PREFLIGHT_INI = 'preflight.ini';
@@ -315,6 +316,49 @@ end;
315316
316317
{ ---------- アンインストール ---------- }
317318
319+
{ アンインストール開始時に「Ollama・モデルも削除するか」を確認する }
320+
function InitializeUninstall: Boolean;
321+
begin
322+
Result := True;
323+
UninstallRemoveOllama := False;
324+
if not UninstallSilent then
325+
UninstallRemoveOllama := MsgBox(
326+
'Ollama(LLM実行エンジン)とダウンロード済みAIモデル(約3.2GB)も削除しますか?' + #13#10 + #13#10 +
327+
'「はい」: Ollama本体・AIモデル・関連サービスをすべて削除します。' + #13#10 +
328+
'     再インストール時はOllamaとモデルの再ダウンロード(約2時間)が必要です。' + #13#10 +
329+
'「いいえ」: Shineos Local AI のファイルとサービスだけを削除し、Ollama は残します。',
330+
mbConfirmation, MB_YESNO) = IDYES;
331+
end;
332+
333+
{ Ollama 本体・モデル・サービスを完全削除する }
334+
procedure RemoveOllamaCompletely;
335+
var
336+
RC: Integer;
337+
OllamaUnins: String;
338+
begin
339+
{ 実行中のプロセスを停止(直接起動・トレイアプリ) }
340+
Exec('taskkill.exe', '/IM ollama.exe /F', '', SW_HIDE, ewWaitUntilTerminated, RC);
341+
Exec('taskkill.exe', '/IM "ollama app.exe" /F', '', SW_HIDE, ewWaitUntilTerminated, RC);
342+
343+
{ 公式サービスとフォールバックサービスを停止・削除 }
344+
Exec(ExpandConstant('{sys}\sc.exe'), 'stop Ollama', '', SW_HIDE, ewWaitUntilTerminated, RC);
345+
Exec(ExpandConstant('{sys}\sc.exe'), 'delete Ollama', '', SW_HIDE, ewWaitUntilTerminated, RC);
346+
Exec(ExpandConstant('{sys}\sc.exe'), 'stop ShineosOllama', '', SW_HIDE, ewWaitUntilTerminated, RC);
347+
Exec(ExpandConstant('{sys}\sc.exe'), 'delete ShineosOllama', '', SW_HIDE, ewWaitUntilTerminated, RC);
348+
349+
{ 公式アンインストーラで Ollama 本体を削除(Inno製のため unins000.exe が存在する) }
350+
OllamaUnins := ExpandConstant('{localappdata}\Programs\Ollama\unins000.exe');
351+
if FileExists(OllamaUnins) then
352+
begin
353+
Exec(OllamaUnins, '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART', '', SW_HIDE, ewWaitUntilTerminated, RC);
354+
end;
355+
356+
{ 残ったモデル・データ・プログラムを確実に削除 }
357+
DelTree(ExpandConstant('{userprofile}\.ollama'), True, True, True);
358+
DelTree(ExpandConstant('{localappdata}\Programs\Ollama'), True, True, True);
359+
DelTree(ExpandConstant('{appdata}\Ollama'), True, True, True);
360+
end;
361+
318362
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
319363
var
320364
RC: Integer;
@@ -324,8 +368,13 @@ begin
324368
{ サービス停止 → 削除(ファイル削除前に実行される) }
325369
Exec(ExpandConstant('{sys}\sc.exe'), 'stop ShineosLocalAI', '', SW_HIDE, ewWaitUntilTerminated, RC);
326370
Exec(ExpandConstant('{sys}\sc.exe'), 'delete ShineosLocalAI', '', SW_HIDE, ewWaitUntilTerminated, RC);
327-
{ Ollama のサービス不在時に登録したフォールバックサービスの削除 }
328-
Exec(ExpandConstant('{sys}\sc.exe'), 'stop ShineosOllama', '', SW_HIDE, ewWaitUntilTerminated, RC);
329-
Exec(ExpandConstant('{sys}\sc.exe'), 'delete ShineosOllama', '', SW_HIDE, ewWaitUntilTerminated, RC);
371+
if UninstallRemoveOllama then
372+
RemoveOllamaCompletely
373+
else
374+
begin
375+
{ Ollama を残す場合はフォールバックサービスのみ削除 }
376+
Exec(ExpandConstant('{sys}\sc.exe'), 'stop ShineosOllama', '', SW_HIDE, ewWaitUntilTerminated, RC);
377+
Exec(ExpandConstant('{sys}\sc.exe'), 'delete ShineosOllama', '', SW_HIDE, ewWaitUntilTerminated, RC);
378+
end;
330379
end;
331380
end;

0 commit comments

Comments
 (0)