ラベル mingw-w64 の投稿を表示しています。 すべての投稿を表示
ラベル mingw-w64 の投稿を表示しています。 すべての投稿を表示

2023年4月30日日曜日

MSYS2/pacman のパッケージアップデートでのファイルダウンロード速度エラー

Windows上でのUnix環境ととして MSYS2/MinGW64 を常用しています。

今日、過負荷状態であるPC上で MSYS2/MinGW64 のパッケージアップデート:

pacman -Syu

を行っていた所、以下のメッセージが出て、アップデートが終了しました:

エラー: ファイル 'libxml2-2.10.4-1-x86_64.pkg.tar.zst.sig' を mirror.archlinux.tw から取得するのに失敗しました : 

Operation too slow. Less than 1 bytes/sec transferred the last 10 seconds

このエラーに初めて遭遇したので、「ほう」という感じでした。

確かに超過負荷状態でしたが、「10秒間に10バイト未満しか取得できなかった」というのは「エラー」という程の状態なのですかね。。。

まだ「100秒間に100バイト未満しか取得できなかった」とか「300秒(5分)間に300バイト未満しか取得できなかった」という方が、なんとなくしっくりくる時間窓枠なのですが。。。

因みに実行していたのは「ディスクのクリーンアップ」での「Windows Updateのクリーンアップ」です。この処理はCPU利用率というよりはディスクアクセスが100%になるという状況でして、CPU利用率はさほど高くないですがIOアクセスが一杯で通信 and/or ディスクへのファイル保存ができない状態かと思います。

過去の経験上、Windows Update のクリーンアップが5分で終了するのは難しいかもしれませんが、pacman の方も、エラーで停止するよりは、「ダウンロードに時間かかっているけど継続する?」と確認メッセージを出して、一時停止してもらう方が状況的にもユーザインタラクション的にも合ってそうな気がするのですが。

ダウンロードに時間がかかるのが「エラー」と言われると、少し「うん?」と思いますし、「エラーの発生」に対してこちらのリアクションを思うと、もう少しフレンドリな扱いでも良さそうな気はします。

もちろん、そんなアップデートを行うのは一般にはシステム管理者(の位置づけの人)なので、

そういう過負荷状態でアップデートを敢行しようとは普通のシステム管理者はしないだろうから、その様な状況は想定外であり、エラー表示が適切

と言われるとそれまでなのですが笑、MSYS2/MinGW64であり、頻繁にパッケージアップデートがあることを考えると、もう少し軽い感じでも良さそうな気はします。

特に、一番最後の

警告: 複数のファイルの取得に失敗しました

エラー: 処理を完了できませんでした (予期しないエラー)

エラーが発生したため、パッケージは更新されませんでした。

という部分で、俺はそのぐらいの転送速度にはなるかもな、と予期はしていましたし笑

誰が予期してなかったのでしょうね。

2023年1月25日水曜日

LuaLaTeX には MSYS2 MinGW 64-bit がお勧め

自分は文書作成環境として LuaLaTeX を使うことが多いです。
理由は、
  • LaTeXの様々なパッケージを使うことで効率的に文書を仕上げることが可能
  • 文書の最終フォーマットはpdfで良いことが多く、LuaLaTeXにより直接pdfを出力可能であり、また pdf の機能を直接操作可能なパッケージも存在していること
  • 日本語の入力やフォントをうまく扱うことが出来ること(utf-8入力という制約がありますが、逆に自分としては、新規に起こす文書は utf-8 なので問題ありません)
です。
ただ1つだけ難点がありました。
それは
Windows向けの texlive で普通にインストールすると、32bit実行形式の LuaLaTeX がインストールされ、デフォルト以外の日本語フォントを使用すると、メモリエラーでLuaLaTeXが落ちる
です。
「64-bit実行形式の LuaLaTeXなら、メモリエラーの問題は回避可能」というのは知っていまして、対策として「別途 64bit版のLuaLaTeXを差分インストールする」という手もあるのですが、インストールの手間は増やしたくないですし、なんか良い手はないかと思っていました。
因みに 64bit LuaLaTeX でデフォルト以外の日本語フォントを使用した場合のメモリ使用量の増減は、以下のようになっています:


縦軸の一目盛がだいたい1.5GBでして、LuaLaTeXのフォント処理時はトータルで二目盛ぐらいのメモリが必要となり、 3GB 程度、メモリを使用している模様です。64bitアプリということで、幾分かメモリ使用量が増加する所はあるかもしれませんが、32bit LuaLaTeX で扱うのは厳しいか、という印象ですね。

それとは別に、Windows上で C/C++ のコンパイル環境として
MSYS2 MinGW 64-bit」
を使っていたのですが、ふと、
MSYS2(64-bit)に texlive は入ってないのかな?
と思い、確認した所、ありました!

mingw-w64-x86_64-texlive-full
です。
MSYS2のパッケージインストーラ pacman を使い、

$ pacman -S mingw-w64-x86_64-texlive-full

とすれば普通に 64-bit版 LuaLaTeX が使えるようになりますし、メモリエラーは発生しません。

自分としては「Eclipse + texlipse」の環境で使うことが多いのですが、任意の日本語フォントを使用しても途中でメモリエラーで止まることがなくなり、大変重宝しています。






GNU Emacs for Windows における最近の IMEパッチ問題

自分は GNU Emacs 使いなのですが、Windows版の Emacs を使用する場合、IMEパッチの問題がありました。 ざっくり言うと、FSFの正規のリリースバイナリだと日本語変換のIMEに切り替えた時、インラインで候補文字が表示されないという問題です。そのために有志の方々...