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

WindowsにSSHサーバーを構築しよう

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

Windows 10で始めるC言語開発

$ 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に付属のブラウザーを試してみる。

EWW/emacs

Emacs 24.4 の新機能・内蔵ブラウザ eww.el を調べてみた

hでヘルプを参照、r,l でURLを移動、気になる所はbでブックマーク。 Rで、見たい所に集中する、ぐらいからでいいな。


This year's Index

Home