Textlive のインストールに失敗した

Textlive のインストールに失敗した

- Matsu NekoYama の投稿
返信数: 8
環境:Windows 10

インストール時のエラーメッセージ:
---------------------------
Error in startup script
---------------------------
error writing "file5aca170": broken pipe
while executing
"chan puts $::inst "startinst""
(procedure "run_installer" line 5)
invoked from within
"run_installer"
(procedure "main_prog" line 144)
invoked from within
"main_prog"
(file "D:\DTLFolder\install-tl-20230201\tlpkg\installer\install-tl-gui.tcl" line 2117)
---------------------------
OK
---------------------------

更にインストール先を変更しようと、以下のエラーになります:
error writing "file5113570": broken pipe
error writing "file5113570": broken pipe
while executing
"chan puts $::inst "checkdir""
(procedure "update_full_path" line 6)
invoked from within
"update_full_path"
(procedure "texdir_setup" line 88)
invoked from within
"texdir_setup"
invoked from within
".tdirb invoke "
invoked from within
".tdirb instate !disabled { .tdirb invoke } "
invoked from within
".tdirb instate pressed { .tdirb state !pressed; .tdirb instate !disabled { .tdirb invoke } } "
(command bound to event)

管理者権限の実行やインストール先の権限変更などを試したけど、ダメでした。
このようなエラーの解決策をご存知の方はいないでしょうか?

追記:--no-gui によるインストールはできました。おそらくGUIインストーラ関連の問題だと思います。
Matsu NekoYama への返信

Re: Textlive のインストールに失敗した

- 和田 勇 の投稿
もしかして anti virus 動かしていませんか?
報告いただいた内容だけでは確証はないのですが、
Windows で texlive インストール失敗の場合、
かなりの割合でウィルスチェックが関係していることがあるので。
(じゃ no-gui が OK なのはというツッコミには今は説明できません)

なお試しに gui インストールし始めましたが、とりあえず動いているようです。

失敗した時のインストールディレクトリに install-tl.log が残っていれば
それをアップロードしていただけませんか?
和田 勇 への返信

Re: Textlive のインストールに失敗した

- Matsu NekoYama の投稿
Windows 10 のセキュリティとウィルスチェックを全部外したけど、同じエラーです。

install-tl.log の中身:
TeX Live installer invocation: C:/texlive/2022_install/install-tl-20230201/install-tl -from_ext_gui
Trying to verify cryptographic signatures!
Loading https://ftp.kddilabs.jp/CTAN/systems/texlive/tlnet/tlpkg/texlive.tlpdb
Installing TeX Live 2022 from: https://ftp.kddilabs.jp/CTAN/systems/texlive/tlnet (not verified)
Platform: win32 => 'Windows'
Distribution: net (downloading)
Using URL: https://ftp.kddilabs.jp/CTAN/systems/texlive/tlnet
Directory for temporary files: C:\Users\NekoYama\AppData\Local\Temp\Bes2q_4_l6
Installer revision: 63919
Database revision: 65711

インストール先選択時のエラーlog の中身:
error writing "file5122960": broken pipe
error writing "file5122960": broken pipe
while executing
"chan puts $::inst "checkdir""
(procedure "update_full_path" line 6)
invoked from within
"update_full_path"
(procedure "texdir_setup" line 88)
invoked from within
"texdir_setup"
invoked from within
".tdirb invoke "
invoked from within
".tdirb instate !disabled { .tdirb invoke } "
invoked from within
".tdirb instate pressed { .tdirb state !pressed; .tdirb instate !disabled { .tdirb invoke } } "
(command bound to event)
Matsu NekoYama への返信

Re: Textlive のインストールに失敗した

- 和田 勇 の投稿
報告された情報からはログなどの「書き込みができない」ことによるものと思っているのですが。

ところで TeXLive は環境変数 TEMP ないし TMP か作業ファイル等を以下のような
パス上に書こうとします。

> Directory for temporary files: C:\Users\NekoYama\AppData\Local\Temp\Bes2q_4_l6

「NekoYama」というのは実際のユーザ名ですか?

もしユーザ名が非ASCII 文字(わかりやすく言えば「和田」などの日本語)だと
インストールに失敗することが知られています。
ただ、その場合は文字化けした情報が表示されるのですが、
その情報が無いので、この推測が妥当か否か今の所判断しかねています。

情報が少ない回答ですが、ユーザ名に含まれているか否か教えてください。

環境変数としては TMP TEMP USERPROFILE などを表示すると明らかになります。
和田 勇 への返信

Re: Textlive のインストールに失敗した

- Matsu NekoYama の投稿
対応ありがとうございます、環境変数は以下のようになります。

ユーザ名は「NekoYama」となっています。
ユーザ環境変数:
TEMP: %USERPROFILE%\AppData\Local\Temp
TMP: %USERPROFILE%\AppData\Local\Temp
%USERPROFILE%: C:\Users\NekoYama>
システム環境変数:
TEMP: %SystemRoot%\TEMP
TMP: %SystemRoot%\TEMP
Matsu NekoYama への返信

Re: Textlive のインストールに失敗した

- 和田 勇 の投稿
今回も、原因は未だ特定できていませんが ....

状況報告ありがとうございました。

さて ... ということは Path かな?

今回のエラーメッセージは
tcltk というプログラムを実行した際に
書き込みができないために発生していると
想定しています。

このtcltk のパッケージは通常はシステムにはインストールされていないので
インストーラの中に同梱されているものを利用するよう
インストーラは設計されています。

同梱されている tcltk パッケージのバイナリプログラムは以下の通り。

  ./tlpkg/tltcl/bin/tclsh.exe
  ./tlpkg/tltcl/bin/tclsh86.exe
  ./tlpkg/tltcl/bin/wish.exe
  ./tlpkg/tltcl/bin/wish86.exe

逆に言えば独自に tcltk パッケージを導入されていると
何らかの原因でエラーを発生する可能性があります。
tcktkは最近はほとんど更新されていないので、
独自にインストールされていても問題はないとは思いますが ...

なのでコマンドプロンプトで 以下の結果を教えてください。

  which -a tclsh tclsh86 wish wish86

関連する情報として把握したいので環境変数 Path も教えてください。

これに似た問題としょて perl 関連もありますが、
no-gui でインストールできていることから
こちらは問題はないと思います。

和田 勇 への返信

Re: Textlive のインストールに失敗した

- Matsu NekoYama の投稿
MSYS2のbin を環境変数PATHに指定しましたので、
which コマンドだと、msys2の相対パスになります。
C:\Users\NekoYama>which -a tclsh tclsh86 wish wish86
/mingw64/bin/tclsh
/usr/bin/tclsh
/mingw64/bin/tclsh86
/mingw64/bin/wish
/mingw64/bin/wish86

where コマンドの結果は以下です。
C:\Users\NekoYama\AppData\Local\Temp>where tclsh tclsh86 wish wish86
D:\msys64\mingw64\bin\tclsh.exe
D:\msys64\usr\bin\tclsh.exe
D:\msys64\mingw64\bin\tclsh86.exe
D:\msys64\mingw64\bin\wish.exe
D:\msys64\mingw64\bin\wish86.exe

ですが、環境変数PATHからMSYS2関連のPATHを削除したが、同じエラーになります。
Matsu NekoYama への返信

Re: Textlive のインストールに失敗した

- 和田 勇 の投稿
mingw とは相性が悪いようですね。

 https://emoken.net/blog2/category_6/archive/2020-01-10/
 https://tex.stackexchange.com/questions/445086/error-installing-latest-version-of-tex-live-on-windows-10
  後者では xz が影響していたとのこと。

Path から除外されても同じ現象が出るというので、徹底的に
以下のデフォルトパスだけにしてみましょう。

   C:\Windows\system32;
   C:\Windows;
   C:\Windows\System32\Wbem;
   C:\Windows\System32\WindowsPowerShell\v1.0\;
   C:\Windows\System32\OpenSSH\;

コマンドプロンプトで以下の設定で Mingw のパスなどを除外してください

   set Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;


インストーラがあるディレクトリへ cd で移動し以下を実行してみてください。

    ./install-tl-windows.bat
和田 勇 への返信

Re: Textlive のインストールに失敗した

- Matsu NekoYama の投稿
set Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\; 後、
GUIによるインストールはできました。
この問題の解決、誠にありがとうございます。