日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
ラジコン
2024年5月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

[2024] cygwinオワコン臭・・・

カテゴリー: General
2024-04-03 16:15
タイトル

執筆:2024.04.03
編集:2024.04.03


うちの仮想マシン内で WSL2は動かないので
cygwinで代用しているわけですが

git bashシェルにはないアプリなので

cygwinの git で pre-commitフック利用しようと思って
実行するアプリの最新版を調べたんですが ない!

cygwin

ORPHANED

だらけ

buildする時間くらい待てるので
srcのcygportを書き換えてみたけど
エラー出る

普通にappのsrcからbuildすればいいかなと
手動でbuildしようと思うとライブラリが古いエラーアタック。
なるほどですね。そこでこけていたんですね

unixは他のツールを利用して成り立っているものが多いので
必要なツールを更新したい
依存ライブラリを更新
さらに依存ライブラリを更新
負のツールチェインが待っている。

そもそもcygwinというOSは協調性がない。オープンソースのパクリでなりなっているくせに
ほかのディストリビューションと変数名やパスを合わせとしないから結果として自動ビルドシステムが構築できない→過疎化が加速

メンテされていないOSはもう復活は不可能


調査してみましょう

curl https://cygwin.com/cygwin-pkg-maint -o cygwin-pkg-maint.txt

全体
cat cygwin-pkg-maint.txt | grep -v '^#' | wc -l
4069

メンテなし
cat cygwin-pkg-maint.txt | grep -v '^#' | egrep '(OBSOLETE|ORPHANED)' | wc -l
2280

メンテあり
cat cygwin-pkg-maint.txt | grep -v '^#' | egrep -v '(OBSOLETE|ORPHANED)' | wc -l
1789

パッケージの半分終わってますね
cygwin オワコン寸前ですね


メンテナ数
cat cygwin-pkg-maint.txt | grep -o ' .*' | grep -o '[^ ].*' | \
egrep -v '(OBSOLETE|ORPHANED|package)' | sort | uniq | wc -l

85
連名で重複がいくつかあるようなので、実際はもっと少ないです

undefined reference to `zip_encryption_method_supported'

$ apt-cyg show | grep zlib-devel
zlib-devel 1.3.1-1

https://libzip.org/documentation/zip_encryption_method_supported.html
zip_encryption_method_supported() was added in libzip 1.7.0.

The current release: libzip-1.10.1

Released libzip 1.3.1 November 19, 2017
Released libzip 1.10.1 August 23, 2023

2024年なのに各種アプリから利用される基本的なツールが更新されていない
相当前からオワコンだったのでしょうか?
2018年には、すでにオワコンだったのでしょう。 WSL2がでてきたころですね。

cygwin ツールが古すぎて使えないコになってしまったので

cygwinのアンインストール検討します。

その前に、ホストOSから操作できる準備をする

・ 共有フォルダに設定する
・ NASのネットワークドライブで作業する
・ クラウドフォルダを直接操作する
・ クラウドに同期する / (ディスクの無駄が発生)

なにが最適解なのかは今後脳内シミュレーションして決めます。

ゲストOS内のフォルダ配置などを変更して
共有フォルダ指定して、ホストOSの WSL2から操作しないといけないよう。

  • ホストOSに保存先を作る
    vmwareで共有フォルダとして指定
    ゲストOS:ドライブレーターを割り当てる
  • ホームネットワークのNASに保存する
くらいが妥当でしょうか

ホストOSを開発環境にするという最終手段もあります。


CygwinからみたWindowsのドライブ


ドライブ名 Cygwin
C:\ /cygdrive/c

WSL2(ubuntu)からみたWindowsのドライブ

/mnt/[ドライブレーター小文字1字]

ドライブ名 WSL2(ubuntu)
C:\ /mnt/c

web関連は

dockerとかに移動したほうがよさそう

設定とデータだけバックアップしておけば済むようになる

gitのフック処理

ブランチ分けしているものは
gitはリビジョングラフなしではまともに使えないので
TortoiseGit なしでは操作できません!!

Linuxのファイラーだと操作性悪すぎるんですね

TortoiseGit のフックはどちらで動くのだろう?
dos? unixシェル?
dosなら解決できるんですけど・・・

まずはここからですね。

設定:フックスクリプト:フックスクリプトの設定

実行するコマンドライン

プレコミットフック
登録できました!

sandboxブランチを切って
コミット実行

DOSとして動くみたい

なんかパスが違うと怒られた
どこのパスで実行してるの?
echo %CD% > "%~dp0err.txt"
exit 1
パスはあっている

echo %* > "%~dp0err.txt"
exit 1

うわわーーー
変なコマンドライン増やしてる

"C:\Users\ユーザー名\AppData\Local\Temp\TortoiseGit\git8B7E.tmp"
"C:\Users\ユーザー名\AppData\Local\Temp\TortoiseGit\git8B7F.tmp"
"リポジトリの作業パス"

え? 勝手に付与しないでよ。

どうするよ?
勝手に追加された引き数を捨てる必要があるので
専用のバッチファイルを一度介してから処理する以外無理でしょ。

hook\precommit.bat
を作成

実行するコマンドライン
%root%\hook\precommit.bat

OK

シェルからの git commit の プレフックはアプリが起動できないので諦めます。

cygwinいじる必要なくなりました!!

結果はどうであれ cygwin終い は必要。


追記

cygwin終い 完了!

2024年 さようならCygwin!!

ブログ内 関連記事: cygwin linux


ブログ内 関連記事: cygwin linux

トラックバック
トラックバックはありません。
PR

[PR]