Skip to content

Instantly share code, notes, and snippets.

@aminophen
Last active January 17, 2020 18:58
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aminophen/22f5f346b7d4e7d0d452708f2b0aad2c to your computer and use it in GitHub Desktop.
Save aminophen/22f5f346b7d4e7d0d452708f2b0aad2c to your computer and use it in GitHub Desktop.

TeX Live のネットワークインストールで発生する問題のリスト

(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 も次に参照できるように取っておく。

@aminophen
Copy link
Author

(1) インストール途中に CheckSum が一致しないと即終了してしまう。

これの原因は多分 https://github.com/TeX-Live/installer/blob/4fd7750/tlpkg/TeXLive/TLUtils.pm#L1482 だと思う。このコードがある for ループの手前で

  my @packs_again;

で空リストを用意しておいて

    if (!$fromtlpdb->install_package($package, $totlpdb)) {
      push @packs_again, $package;
    } else {
      $donesize += $tlpsizes{$package};
    }

で登録しておき,この for ループを抜けた後にもう一回再挑戦として

  foreach my $package (@packs_again) {
    if (!$fromtlpdb->install_package($package, $totlpdb)) {
      return 0;
    }
    $donesize += $tlpsizes{$package};
  }

とすればいいかも。(2回同じパッケージのダウンロードに失敗するとやはり「最初から」になるが,確率は低そう)

@doraTeX
Copy link

doraTeX commented Jan 7, 2020

(1) の改良をマージして頂き,r53343 で svn に反映して頂けました。

@aminophen
Copy link
Author

いつかやろうと思って忘れてました。ありがとうございます。

@aminophen
Copy link
Author

aminophen commented Jan 14, 2020

2回同じパッケージのダウンロードに失敗するとやはり「最初から」になるが,確率は低そう

起きないと思っていたけど起きてしまった。全部で3935個のパッケージの中で1個だけ失敗した(しかもそんなに重要ではないパッケージの失敗)だけで,また最初からになってしまう…orz

※ svg パッケージはちょうど今日 (r53389) アップデートが起きている。 → もしかして,時間的に「ミラーサーバに置かれている tlpdb をローカルにダウンロード」より後に「ミラーサーバ内の svg.tar.xz がルートサーバと同期」が起こって,tar.xz のチェックサムが必然的に tlpdb と食い違っている…??? もし当たりだとすると,まだ改善の余地あり?

Installing [3305/3935, time/total: 01:43:33/02:02:54]: susy [2k]
Installing [3306/3935, time/total: 01:43:34/02:02:55]: svg [1095k]
TLUtils::check_file: checksums differ for C:\Users\winuser\AppData\Local\Temp\PlsnPwV5zV\Gl05l938Q2/svg.tar.xz:
TLUtils::check_file:   tlchecksum=9996c9d7bb018bf4526f91aef707192f748a04e3dda7cb61b27c9d69e44cb1492f08fb658d599ab2800224c9dc475305c747d433b14284144b73dbecf4f4a2cc, arg=19f33e2f22fa6b021843402e9925fc7770e8b2755bd587cbed20c7400ecdb9d2e56b1d2a0665459d2fc11e586f55c1f194041da1b23fc0e27ef17339cccf0e12
TLUtils::check_file:   removing C:\Users\winuser\AppData\Local\Temp\PlsnPwV5zV\Gl05l938Q2/svg.tar.xz, but saving copy in tlcheckfilejwsYrTIa
TLPDB::_install_package: downloading did not succeed (check_file_and_remove failed)
TLUtils::install_packages: Failed to install svg
Will be retried later.
Installing [3307/3935, time/total: 01:43:34/02:02:55]: svg-inkscape [194k]
Installing [3308/3935, time/total: 01:43:35/02:02:56]: svgcolor [5k]
Installing [3934/3935, time/total: 02:00:20/02:00:23]: zxjafont [147k]
Installing [3935/3935, time/total: 02:00:21/02:00:24]: zxjatype [142k]
Retrying to install: svg [1095k]
TLUtils::check_file: checksums differ for C:\Users\winuser\AppData\Local\Temp\PlsnPwV5zV\R6FbBuLafk/svg.tar.xz:
TLUtils::check_file:   tlchecksum=9996c9d7bb018bf4526f91aef707192f748a04e3dda7cb61b27c9d69e44cb1492f08fb658d599ab2800224c9dc475305c747d433b14284144b73dbecf4f4a2cc, arg=19f33e2f22fa6b021843402e9925fc7770e8b2755bd587cbed20c7400ecdb9d2e56b1d2a0665459d2fc11e586f55c1f194041da1b23fc0e27ef17339cccf0e12
TLUtils::check_file:   removing C:\Users\winuser\AppData\Local\Temp\PlsnPwV5zV\R6FbBuLafk/svg.tar.xz, but saving copy in tlcheckfileneinbFjA
TLPDB::_install_package: downloading did not succeed (check_file_and_remove failed)
Installation failed.
Rerunning the installer will try to restart the installation.
Or you can restart by running the installer with:
  install-tl-windows.bat --repository http://ftp.yz.yamagata-u.ac.jp/pub/CTAN/systems/texlive/tlnet --profile installation.profile [EXTRA-ARGS]
or
  install-tl-advanced.bat --repository http://ftp.yz.yamagata-u.ac.jp/pub/CTAN/systems/texlive/tlnet --profile installation.profile [EXTRA-ARGS]
C:/Users/winuser/Downloads/install-tl/install-tl-20200113/install-tl: Writing log in current directory: C:/Windows/system32/install-tl.log

@aminophen
Copy link
Author

試しに

  • 初回 は install-tl で scheme-infraonly だけを選択してインストール
  • 次に tlmgr install scheme-full を実行

してみた。

→ 特に致命的なトラブルなく終了。

  • install-tl の時点では updmap-sys が失敗するが,そのあと tlmgr の時に成功した。
  • スタートメニューに「Uninstall TeX Live」が発生しない。コントロールパネルには表示される。
    • 以前 install-tl で scheme-full をインストールした時はスタートメニューに発生した記憶だが…
  • チェックサムの不一致では落ちずに続行される。
    • 何も考えずもう一回 tlmgr install scheme-full を実行すればまったく問題なし。
[3377/3925, 01:14:42/01:26:32] install: texlive-cz [1126k]
[3378/3925, 01:14:43/01:26:31] install: texlive-de [1270k]
[3379/3925, 01:14:45/01:26:31] install: texlive-docindex [155k]
TLUtils::check_file: checksums differ for C:\Users\winuser\AppData\Local\Temp\9X6Fi_o_3R\y0G7UfakQ0/texlive-docindex.tar.xz:
TLUtils::check_file:   tlchecksum=79f38e8357a14858427c739774b8012ca43e6dd1ac35a8e5e4fcd004ffe9c19abb5301acab6e05b758c5ad396c64150626e512e0061eb45b3efb0f4962ae9088, arg=8aa5c9b85252c87cf069d9fae4505842049312c2e9f295342ad965a065fda01e55047c4a8be731f46e3577580d59186287160de967094ba431ff04b8b27fdf4c
TLUtils::check_file:   removing C:\Users\winuser\AppData\Local\Temp\9X6Fi_o_3R\y0G7UfakQ0/texlive-docindex.tar.xz, but saving copy in tlcheckfile7Y8wKkR7
TLPDB::_install_package: downloading did not succeed (check_file_and_remove failed)
[3380/3925, 01:14:45/01:26:31] install: texlive-en [1815k]
[3381/3925, 01:14:47/01:26:30] install: texlive-es [2227k]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment