Cygwinとの違い

Windowsを使うことになった場合でも、Linux/Unixコマンドを使いたい時のまとめ。

1.CygwinはWinカーネルのsyscallをPOSIX変換して使っている
2./var/log/packages/ は、/etc/setup/ にほぼ相当する。/etc/setup/setup.rcに状態記述
3.pkgをインストールすると自動的に依存libや他の依存pkgもインストールされる
4.Slackとはpkg名やlib名が微妙に違っている事が多い
5.Cygwinは2系統あるらしいが、ここでは昔からあるPOSIX互換重視の方をメモる
もう1つとは多分MinGwの事でDOS窓からLinuxコマンドが実行できて便利ではある。(2024.04)
6.Cygwinはcurrentしか無い (ローリングリリース)
あっても1つ前のVerくらい。野良BackUpは探せばあるかも。一度DLしたpkgのtxzは、pkgの削除後
もずっと残っているのかどうかは未確認。
そのため、後からコマンドを追加インストールしようとすると、最初のInstから時間が経っている
場合、大量に入れ替えが起きてしまう。使っていたコマンドが動くか保証は無い。(2023.09)
このため、オレオレVerで固定したい場合は、一旦ローカルに当面使わないような物も含めて全部
をDLして取っておくことになる。(2023.09)
とは言え、Slackは十年に一度くらいしかリリースVerを出さないとなると、時間が経ち過ぎたVer
は古すぎて開発環境として、そのままでは使い物にならないレベルになる。いずれCygwinの様に
オレオレVerで固定してcurrentを使うことになりそうだ。(2025.02)

十数年ぶりに最新のCygwinをinstallしてみた件: 2023.02
「Cygwin 3.5」はWindows 7/8をサポートせず ~32bit対応も間もなく終了
https://forest.watch.impress.co.jp/docs/news/1401719.html
\
UTF-8の文書をemacsで見たり、Slackと同期をとりたかったため、十数年ぶりに最新の
Cygwinをinstallしたが、やっぱり細かい点でメンドクサそうな件。
https://oldcygwin.web.fc2.com/zatsukiroku.html
あと、さくさくメモしたい時に、文書を見やすくHTML化するのはメンドクサなんだ
なと思った件、まだまだHTML文書を書き慣れてないという事なんだなぁ。
やっぱ後から書き直すtemp文書だとしてもCSSくらい使わないと見づらいよな。
https://seesaawiki.jp/lifewithslackzaurus_15_0/d/H
で最近の書き方学んでも自分で作ってみると<div>職人になってしまうという。。

Cygwinでstartxする時に、serverargs=”-rootless”だと起動するが、-multiwindowだと落ちる。
xwin -multiwindow とやると、起動できてXWinのWMを使える。scriptを改造するか、手動でやるか。
OldCygwinではdefで-multiwindowだったが最新のXはdefではXWinのWMと共存させないらしい。
https://ja.wikipedia.org/wiki/Cygwin/X
https://docs.google.com/document/d/1Gkl7HiuCVs98k5…
今はscript見る気ないので当面は手動でいく。
Win10$ xwin -multiwindow &
Win10$ DISPLAY=:0.0 xterm -bg black -fg lightgreen -fs large &
Win10$ DISPLAY=:0.0 emacs -bg black -fg lightgreen &

emacs set-default-coding-systems utf、でググった
http://yohshiy.blog.fc2.com/blog-entry-273.html

Cygwinのxtermがcalコマンドで日本語表示できている。Slackでは表示できてない。fontが無い?
Cygwinではxtermを使うかSlackやspitzに合わせてurxvtを使うべきか悩む。
Cygwinでurxvt起動したらdefのfontサイズ小さすぎ。xtermもそうだったがxtermはメニューから
簡単にサイズ変更できた。Cygwinではxtermの改良に走ったのか。
Slackでurxvtのfontサイズは気にならなかったが、Cygwinでどうやってfontサイズ変えるか、
spitzでどうだったか見たら、https://seesaawiki.jp/lifewithslackzaurus/d/X%a4%c…
https://wiki.archlinux.jp/index.php/Rxvt-unicode
メンドクサくなったのでCygwinはxtermでいいか。
Slack-15.0$ xterm &
[1] 1563
xterm: cannot load font “-misc-fixed-medium-r-semicondensed–13-120-75-75-c-60-iso10646-1”
https://dba010.com/tag/misc-fixed-medium-r-semicon…
となるが、
Slack-15.0$ sudo installpkg /mnt2/slackware64/x/*misc*.txz
とやって、misc_font全部入れたが治らない。Cygwinの方は/etc/X11/app-defaultsのファイルは同じ
なのにエラーは出ていない。
Cygwinの /usr/share/X11/fonts/misc をSlackの /usr/share/fonts/misc にコピーしたらエラー出なく
なって日本語で表示できた。pkg化しよう。どうせPC使う時はいつもCygwim/SlackのDualだし、毎回
コピーでもいいかな。参考? https://gihyo.jp/lifestyle/serial/01/ganshiki-sous… (2023.12)

Slackは、/usr/share/fonts にfontがあるが、
$ ls /usr/share/fonts/
100dpi 75dpi TTF Type1 misc util
(100dpi,75dpi,Type1,はxtermでfontが表示されなかったので試しに入れた。そのうち消すかも)
Cygwinの方はfontが2箇所あって、
$ ls /mnt2/cygwin64/usr/share/fonts/
TTF bitstream-vera dejavu microsoft
$ ls /mnt2/cygwin64/usr/share/X11/fonts/
100dpi 75dpi Type1 encodings misc util
となっていて、X依存とXft2とでfont使い分けてるってか?。CygwinのXはencodingsなんてのもある。
$ zcat /mnt2/cygwin64/etc/setup/xorg-x11-fonts-misc.lst.gz | grep enco
usr/share/X11/fonts/encodings/
usr/share/X11/fonts/encodings/adobe-dingbats.enc.gz
usr/share/X11/fonts/encodings/adobe-standard.enc.gz
usr/share/X11/fonts/encodings/adobe-symbol.enc.gz
usr/share/X11/fonts/encodings/armscii-8.enc.gz
usr/share/X11/fonts/encodings/ascii-0.enc.gz
usr/share/X11/fonts/encodings/dec-special.enc.gz
usr/share/X11/fonts/encodings/encodings.dir
usr/share/X11/fonts/encodings/ibm-cp437.enc.gz
usr/share/X11/fonts/encodings/ibm-cp850.enc.gz
usr/share/X11/fonts/encodings/ibm-cp852.enc.gz
usr/share/X11/fonts/encodings/ibm-cp866.enc.gz
usr/share/X11/fonts/encodings/iso8859-11.enc.gz
usr/share/X11/fonts/encodings/iso8859-13.enc.gz
usr/share/X11/fonts/encodings/iso8859-16.enc.gz
usr/share/X11/fonts/encodings/iso8859-6.16.enc.gz
usr/share/X11/fonts/encodings/iso8859-6.8x.enc.gz
– – –
usr/share/X11/fonts/encodings/large/encodings.dir
– – –
usr/share/X11/fonts/encodings/large/jisx0201.1976-0.enc.gz
usr/share/X11/fonts/encodings/large/jisx0208.1990-0.enc.gz
usr/share/X11/fonts/encodings/large/jisx0212.1990-0.enc.gz
– – –
よく見たらSlackにもあるなあ。Cygwinに合わせて入れるか?
$ ls -l /mnt3/slackware64/*/*encod*.txz
-rw-r–r– 1 root root 58388 2月 13 2021 /mnt3/slackware64/l/qrencode-4.1.1-x86_64-3.txz
-rw-r–r– 1 root root 581184 2月 13 2021 /mnt3/slackware64/x/encodings-1.0.5-noarch-3.txz

2023.03
Cygwinとの共通化のため、startxをやらずに直接Xorgをコマンド起動するか、どうするか。
$ ps ax (抜粋)
969 tty1 S+ 0:00 /bin/sh /usr/bin/startx
990 tty1 S+ 0:00 xinit /home/ore/.xinitrc — /usr/bin/X :0 vt1 -keeptty -auth /home/ore/.serverauth.969
991 tty1 Sl 1:10 /usr/libexec/Xorg :0 vt1 -keeptty -auth /home/ore/.serverauth.969
まいいか、SlackのstartxはXorgと.xinitrcコールしてるだけ、と分かっていれば。
CygwinのstartxもXwinと.xinitrcコールしてるだけ。

2023.07
CygwinからDosコマンド(ipconfig)を入力したくなったがPATHが通っていない。以下をやった、
Win10$ PATH > ~/path.txt (Dos窓から実行した。以降はCygwinから実行)
Win10$ emacs ~/path.txt
C:を/cygdrive/C/に、\を/に、;を:に、’ ‘を’\ ‘に、(を\(に、)を\)に、変換。(そのうちsedでやりたい)
Win10$ cat path.txt
PATH=/cygdrive/C/Program\ Files\ \(x86\)/Intel/iCLS\ Client:/cygdrive/c/Program\ Files/Intel/iCLS\ Client:/cygdrive/C/Windows/system32:/cygdrive/C/Windows:/cygdrive/C/Windows/System32/Wbem:/cygdrive/C/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/C/Windows/System32/OpenSSH:/cygdrive/C/Program\ Files/dotnet:/cygdrive/C/Program\ Files\ \(x86\)/Intel/Intel\(R\)\ Management\ Engine\ Components/DAL:/cygdrive/C/Program\ Files/Intel/Intel\(R\)\ Management\ Engine\ Components/DAL:/cygdrive/C/Program\ Files\ \(x86\)/Intel/Intel\(R\)\ Management\ Engine\ Components/IPT:/cygdrive/C/Program\ Files/Intel/Intel\(R\)\ Management\ Engine\ Components/IPT:/cygdrive/C/Program\ Files/Intel/WiFi/bin:/cygdrive/C/Program\ Files/Common\ Files/Intel/WirelessCommon:/cygdrive/C/Users/User/AppData/Local/Microsoft/WindowsApps
\
linux コマンド DOS コマンド 対応表、でググった:
https://qiita.com/asmin/items/d53e71ed98a377ca7823
(pwd=>cd、which=>where)
linux DOS 環境変数 対応表、でググった: 2025.09
https://jp.xlsoft.com/documents/intel/compiler/19…
(> echo %PATH%)

2023.09
失敗した。今回のInst、全ファイルのDLをやってなかった。オレオレVerで固定できない。改めてInst
するかどうするか。オレオレVerのベストタイミングはSlackの新Verリリースの時か。さすがに待って
られない。個別Instできないだろか。
cygwin install tar.zst、でググった:
https://so-zou.jp/software/tech/tool/compatibility…
(ちょっと古そうだが、今も使えるのだろか。ダメだ、svnを入れてなかった)
https://github.com/transcode-open/apt-cyg
(gitは入っている、行けるか?)
apt-cyg install old version、でググった:
https://github.com/transcode-open/apt-cyg/issues/142
\
https://www.quora.com/Why-doesnt-Cygwin-use-Pacman…
https://wiki.archlinux.jp/index.php/%E3%82%AA%E3%8…
\
https://shirakawa.weblike.jp/blog-page/2023/07/18…
(apt-cygで個別Instできたらしい)

2024.04
ncftpとinetutils
https://win.just4fun.biz/?%E9%96%8B%E7%99%BA%E3%83…
を個別installしようとした時に、
Win10$ ./apt-cyg download libtool
が失敗した。仕方なくブラウザでDLしてx86_64/releaseの下に置き、setup-x86_64.exeでローカル
からinstallした。そしたら、/usr/share/fonts/TTFが削除されてしまった。xtermで日本語表示
できなくなった。BackUpからコピーしてX起動し直したら戻った。

2025.03
何故かemacsからsshできるサーバとできないサーバがあり、よく見たらできる方は authorized_keys
があった。鍵を渡してやってみたが変わらなかった。https://shirakawa.weblike.jp/blog-page/2022/03/08…
仕方ないのでVSCodeのRemote-SSHでやった。VMのLinuxだけどAzureだからとかないだろうな~。
Win11$ cp -a ~/.ssh /cygdrive/c/Users/ore/
https://qiita.com/nlog2n2/items/1d1358f6913249f3e186

2025.04
Winコマンド(例:mklink)を使いたくなった時。
$ /cygdrive/c/Windows/System32/cmd.exe
>
> “c:\Program Files\Git\bin\git.exe” —version //TortoiseGitのgitコマンド.

2025.09
Win11$ wget https://ftp.abc.net/lftp-4.9.1-tar.xz
Win11$ ./apt-cyg install lftp-4.9.1-tar.xz -nodeps
Installing lftp-4.9.1-tar.xz
Unable to locate package lftp-4.9.1-tar.xz
Cygwinのpkgツールを使ったDLで失敗する場合は、個別にDLしてきて入れるという事ができない。うまく
いかない。もうメンドクサイからSlackのpkgtoolを入れてしまうか。

 

参考情報:
https://ja.wikipedia.org/wiki/Cygwin
https://www.m-craft.com/2017/07/xpcygwin/
INSTALL_ORIG_GCC (Cygwin64)
https://seesaawiki.jp/lifewithslackzaurus_15_0/d/I…
ローリングリリース (2023.12)
https://linuc.org/study/knowledge/2550/
図解 Cygwin、MinGW、MSYS、WSL系列
https://qiita.com/ueno-t/items/6556eabedde5508a58fa
\
Cygwinにて、DISPLAY=:0.0を実行する場合、2つ目はDISPLAYを変えなくてよいのか? (->ChatGPT)
同じで問題ない。:0.0は「ローカルマシンの最初のディスプレイとスクリーン」を意味する。全ての
xtermはDISPLAY=:0.0を使って同じ画面に表示される。環境によっては、127.0.0.1:0.0にする場合
がある。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です