(1) インストール途中に CheckSum が一致しないと即終了してしまう。
install-tl-windows.exe を公式サイトからとってきて実行したとする。
Installing [1348/3742, time/total: 01:52:51/05:30:13]: fonts-churchslavonic [1970k]
Installing [1349/3742, time/total: 01:53:18/05:30:52]: fonts-tlwg [12389k]
TLUtils::check_file: removing C:\Users\winuser\AppData\Local\Temp\oQa4p4EP1F\0BKbEClhmT/fonts-tlwg.tar.xz, checksums differ:
TLUtils::check_file: TL=5f9eb96fcafd4711708daa463b7c90d5fb75e537fded63cfe84afed833500096d67a5e970468d1cbc425c2cb729c3e0ceac34b7d20b3b6911cf244a88be63585, arg=2cbe177b590d3502592755983f19e8026aa2098a2a552ac121cffbf122d5858e6d69056f5f0eebe4946618ed348fbd4b924002974eb341e19b423d100e69f06f
TLPDB::_install_package: downloading did not succeed
Installation failed.
Rerunning the installer will try to restart the installation.
Or you can restart by running the installer with:
install-tl-windows.bat --profile installation.profile [EXTRA-ARGS]
or
install-tl-advanced.bat --profile installation.profile [EXTRA-ARGS]
C:\Users\winuser\AppData\Local\Temp\nsi613C.tmp\install-tl-20190227\install-tl: Writing log in current directory: C:/Users/winuser/AppData/Local/Temp/nsi613C.tmp/install-tl.log
Completed
改善案:ダウンロードに失敗したパッケージだけリストに書いておき,それはスキップして次のダウンロードを試みる。そして最後にもう一回ダウンロードすれば十分では?
(2) このメッセージが現れる黒い画面を消してしまうと,TEMP フォルダ内の installation.profile もろとも消えてしまい,再開できないのは罠。
改善案:消す前に installation.profile やバッチファイル,perl 関連を C:\texlive\20xx に移動させておく。
(3) 仮にこの罠にはまらなかったとしても,installation.profile には「どこのリポジトリからインストールしようとしたか」の情報が含まれないので,明示的に --repository で指定する必要がある。
改善案:リポジトリ情報を installation.profile に書き出す。
(4) 黒い画面を残したままコマンドプロンプトで
install-tl-windows.bat --profile installation.profile [EXTRA-ARGS]
ができたとしても,実質的に最初からインストールしようとしているのと同じになるので無意味。
理由:さっきまでダウンロードしていた tar.xz は,「TEMP/ランダム文字列1/ランダム文字列2/パッケージ名.tar.xz」にいったん落ちてきて,展開するとすぐにそのアーカイブが消されるため,「どこまでダウンロードしたか」がわからない。 ちなみに,サーバから最初に取得される tlpdb は「TEMP/ランダム文字列1/ランダム文字列3」というファイルであり,インストーラが落ちた瞬間にこれも削除されている。
改善案:インストール完了したパッケージ名をリスト化する。前回の tlpdb も次に参照できるように取っておく。
これの原因は多分 https://github.com/TeX-Live/installer/blob/4fd7750/tlpkg/TeXLive/TLUtils.pm#L1482 だと思う。このコードがある for ループの手前で
で空リストを用意しておいて
で登録しておき,この for ループを抜けた後にもう一回再挑戦として
とすればいいかも。(2回同じパッケージのダウンロードに失敗するとやはり「最初から」になるが,確率は低そう)