MSYS2
Table of Contents
e-Tax
国税庁から通達が来た。曰く、スマホでe-Taxしろとな。世間のみんなは、やっ ているんで宜しくとな。
分からない事があったらLINEで教えてやるから、国税庁に友達申請してねだっ て。絶対に友達になんかなりたくない。ってか、そもそもLINEなんてやってな いぞ。最近はスーパーの広告もLINEに流れるぐらいだから、これが当たり前の 事なんかな。オイラーは超絶原始人だな。
大体スマホなんて持っていないし! 否国民であります。スマホは外にでかけて こそ、真価を発揮する。電車に乗るとか、飛行機に搭乗するとか、迷子になっ て地図検索するとか、そんなのオイラーには一切関係ない。引きこもり な人生さ。よって、必要なしが、今の所の結論。
国税庁 確定申告書等作成コーナー and 動画で見る確定申告
マイナポータルアプリに対応しているスマートフォン等を教えてください。
女房のスマホを一時的に利用しようと思ったけど、該当していないぞ。みんな 高級なスマホばかりだ。
msys2
setup
pacmanが何処からパエエージを収集してくるかの設定。なんでも有りなんで不 要な所は除外する設定にした。
cat /etc/pacman.conf : #[mingw32] #Include = /etc/pacman.d/mirrorlist.mingw [mingw64] Include = /etc/pacman.d/mirrorlist.mingw #[ucrt64] #Include = /etc/pacman.d/mirrorlist.mingw
viは無かったのでvimを入れてaliasを設定しておいた。それから思いつくまま に、tmux,man-db,tree とか。
$ cat /etc/fstab # For a description of the file format, see the Users Guide # https://cygwin.com/cygwin-ug-net/using.html#mount-table # DO NOT REMOVE NEXT LINE. It remove cygdrive prefix from path none / cygdrive binary,posix=0,noacl,user 0 0 C:/mine/piki /piki
見なれないフォーマットで設定できる。
$ df -a Filesystem 1K-blocks Used Available Use% Mounted on C:/mine/piki - - - - /piki C:/msys64 248751100 146273268 102477832 59% / C:/msys64/usr/bin - - - - /bin C: - - - - /c
そしてその成果。よく訪問する場所を設定しておけるけど、これぐらいなら、 エイリアスの方が楽かな。
alias wd='cd /tmp' alias piki='cd C:/mine/piki'
cd /pikiと叩くより、piki の方がなんぼか楽だぞ。
後はopensshぐらいを 入れればWSLの代わりは勤まるかな。よりWindowsっぽい環境ならmsys2だな。
try sshd
opensshを入れたらsshdもついてきた。ちょいと使ってみるか。
Windows10タブレットにMSYS2を入れてsshデーモンを立ち …
本格的に使う事はないので、さわりだけね。Windowsマシンにsshする時は、 Windowsのパスワードなのね。
Setting up Windows for Remote Rust Development
Rustで頑張る人もいるんだなあ。
オイラーの場合は無理してやらないけど、壁に穴をあけないと、外から侵入で きないぞ。
管理者権限でPowerShell起動 これ実行 netsh advfirewall firewall add rule name="sshd" dir=in action=allow protocol=TCP localport=22
use devel-tool
WSLでは出来ない素敵な機能。
sakae@atom MINGW64 ~ $ ldd /msys2_shell.cmd ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff9743b0000) KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ff9723f0000) KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ff971ed0000) msvcrt.dll => /c/WINDOWS/System32/msvcrt.dll (0x7ff972e00000) combase.dll => /c/WINDOWS/System32/combase.dll (0x7ff973610000) ucrtbase.dll => /c/WINDOWS/System32/ucrtbase.dll (0x7ff9722f0000) RPCRT4.dll => /c/WINDOWS/System32/RPCRT4.dll (0x7ff972cd0000) $ ldd /mingw64.exe ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff9743b0000) KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ff9723f0000) :
有名なハロワでも確認。
$ gcc test.c $ ./a.exe Hello MSYS2 $ file a.exe a.exe: PE32+ executable (console) x86-64, for MS Windows, 20 sections $ ldd ./a.exe ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff9743b0000) KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ff9723f0000) KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ff971ed0000) msvcrt.dll => /c/WINDOWS/System32/msvcrt.dll (0x7ff972e00000)
こうなると、有名なgolangの作品も確認したくなる。
$ file /c/Users/sakae/nbld.exe /c/Users/sakae/nbld.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows, 13 sections sakae@atom MINGW64 ~ $ ldd /c/Users/sakae/nbld.exe ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff9743b0000) KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ff9723f0000) KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ff971ed0000)
emacs for MSYS2/mingw64
MSYS2でもemacsしたい。pacmanから入れる? いや、既にあるものを使おう。
alias es='/c/app/emacs-28.2/bin/runemacs.exe --daemon' alias ek='/c/app/emacs-28.2/bin/emacsclientw.exe -e "(kill-emacs)"' alias mg='/c/app/emacs-28.2/bin/emacsclient.exe -t'
これ、以前にOpenBSDとかで使った設定。init.elはMSYS2側のものが利用される。 が、下記の所でエラーになって、ロードを諦めていた。コメントアウトしたよ。
(set-face-attribute 'default nil :family "Consolas" :height 104) ;(set-fontset-font nil 'japanese-jisx0208 (font-spec :family "eiryoKe_Console")) (setq face-font-rescale-alist '(("eiryoKe_Console" . 1.08)))
minttyな画面にemacsを鎮座させる事って出来ないのかな?
鎮座と言えばダエモン君になったemacsが、MSYS2を終了しても、そのまま残る 事。すっかりWindowsに同化してる。
Gauche head
新しい環境を 作ったらテストしましょ。gaucheのheadを試してみる。 configureの為にDISTを実行。色々と文句を言われたけど無事に完了。そして configureもできた。次回はオプションをつけよう。
./DIST gen ./configure : This Gauche has been configured with the following parameters: version: 0.9.13_pre2 multibyte: utf8 documentation: Yes slib: /usr/local/slib thread: win32 tls/ssl: CA store: check optional modules: zlib !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! No TLS support is configured. !!! !!! You won't be able to do TLS communication, such as connecting to !!! !!! websites with https. If this is not intended, check --with-tls !!! !!! configure option (type ./configure --help for the details). !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
で、コンパイルを初めたら、古いやつが必要と言われた。Gauche-0.9.12 で、 やってみる。
./configure --with-tls=axtls time make -j 4 : real 9m26.562s user 0m59.430s sys 1m30.598s
インストールしたら mingw64 の下に鎮座した。システム系のソフトと思え ばいいんだな。sudoなんていう接頭語をつけなくても実行できたって事は、強 い権限があるのか。Windowsの領域を侵犯しないように、くれぐれも注意せよ、 ですな。
CPUをフル動員させてみた。速いんだか遅いんだか?
VMWare上のArchLinuxで 確認する。こちらはWindowsと違って2CPUでの実行。
real 6m36.337s user 10m20.843s sys 0m30.430s
ついでなのでVirtualBox上のArchLinux(2CPU)での実行。
real 8m32.970s user 13m53.133s sys 0m16.463s
なんかMSYS2の計測時間って信用出来ない気がする。特にuser時間がね。
まあいいや。出来栄えを確認してみる。
$ gosh -V Gauche scheme shell, version 0.9.12 [utf-8,wthreads], x86_64-w64-mingw32 (version "0.9.12") (command "gosh") (scheme.id gauche) (languages scheme r5rs r7rs) (encodings utf-8) (website "https://practical-scheme.net/gauche") (build.platform "x86_64-w64-mingw32") (build.configure "'--with-tls=axtls'" "'--enable-multibyte=utf-8'") (scheme.path "C:\\msys64\\mingw64\\share\\gauche-0.98\\site\\lib" "C:\\msys64\\m ingw64\\share\\gauche-0.98\\0.9.12\\lib") (gauche.threads wthreads) (gauche.net.tls axtls)
特徴的なのは、
$ ldd gosh.exe ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ff9743b0000) KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ff9723f0000) KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ff971ed0000) msvcrt.dll => /c/WINDOWS/System32/msvcrt.dll (0x7ff972e00000) SHELL32.dll => /c/WINDOWS/System32/SHELL32.dll (0x7ff972580000) msvcp_win.dll => /c/WINDOWS/System32/msvcp_win.dll (0x7ff972250000) ucrtbase.dll => /c/WINDOWS/System32/ucrtbase.dll (0x7ff9722f0000) USER32.dll => /c/WINDOWS/System32/USER32.dll (0x7ff972ff0000) win32u.dll => /c/WINDOWS/System32/win32u.dll (0x7ff972220000) GDI32.dll => /c/WINDOWS/System32/GDI32.dll (0x7ff973970000) gdi32full.dll => /c/WINDOWS/System32/gdi32full.dll (0x7ff971c50000) libgauche-0.98.dll => /mingw64/bin/libgauche-0.98.dll (0x7ff914df0000) ADVAPI32.dll => /c/WINDOWS/System32/ADVAPI32.dll (0x7ff972f40000) sechost.dll => /c/WINDOWS/System32/sechost.dll (0x7ff973ee0000) RPCRT4.dll => /c/WINDOWS/System32/RPCRT4.dll (0x7ff972cd0000) WS2_32.dll => /c/WINDOWS/System32/WS2_32.dll (0x7ff973be0000) NETAPI32.dll => /c/WINDOWS/SYSTEM32/NETAPI32.dll (0x7ff959ae0000) NETUTILS.DLL => /c/WINDOWS/SYSTEM32/NETUTILS.DLL (0x7ff970f80000) SAMCLI.DLL => /c/WINDOWS/SYSTEM32/SAMCLI.DLL (0x7ff965500000)
更に、libgaucheが実行アプリと同じ場所にあること。これがWindows の流儀なのか。
windows app
$ cat hello.c #include <windows.h> int WINAPI WinMain(HINSTANCE ins, HINSTANCE previns, LPSTR cmdline, int cmd) { MessageBox(NULL, "Hello world.", "メッセージボックス", MB_OK); return 0; }
これが一番最小のWindowsアプリになるかな。でも、今時ゴリゴリとC言語で GUIするのは、流行じゃないみたい。
eww
更に調子にのってw3mでもコンパイルしてみようと思ったんだ。そしたら、 forkの所でエラー。よく考えたら、Windowsにはそんなの無いんだった。
いじけて、emacsに付属のブラウザーを試してみる。
Emacs 24.4 の新機能・内蔵ブラウザ eww.el を調べてみた
hでヘルプを参照、r,l でURLを移動、気になる所はbでブックマーク。 Rで、見たい所に集中する、ぐらいからでいいな。