MAC OS Montereyアップグレードの顛末
どうやら解決したようである。
僕はPerlでwebアプリの開発をしている。キャノン販売の子会社に転職した1987年当時、MACでは4thDimensionというRDBMSがあり、大変世話になった。インターネットを日本で利用出来る前である。windowsはまだなかった。MS-DOSの時代である。エクセルはMAC上で動く表計算で、MS-DOSはマルチプランであった(笑)。
当時からAppleは独自路線を走るという悪い癖があった。オープンになろうとしては、クローズになるの繰り返しであった。
OSXになって、linuxの路線に入り、少しは良くなったかと思ったが、どうも駄目なようである。
perl大好き
僕はperlでwebアプリを作っているが、OSやら、perlのアップグレードやらにはとんと疎い。そちらの勉強は最低限にして、使える技でお金いただく方に徹することにしたのである。もう還暦なのでそんなに金もいらない(少しはいる)。幾つかのお客さんがいるので、もうあまり新規のことをする必要もない。
perl(=ラリー・ウオールさん)のモットーが僕は好きだ。
What You Don't Know Won't Hurt You
今回はへっちゃらではなかったが。
今年は国体のスコア集計システムに大きな変更があったので直さないといけないのだが、4月までに結論が出ていなければならないところであった。
まあ、国体が開催されるとしてであるが。
もし、エラーが続くようだったら、大幅な開発環境の変更が必要であった。
「Doker」を始めようかと思っていたのである。
apple嫌いである。
しかし動くようになった。まずは安心である。
だが、これから、MACはappleの物となってしまうので、dockerを導入することにした。セキュリティの要請からということで、root userでも変更できない部分が出来たのだ(ややこしいことをすると変更可能のようなのだが、上手く行かなかった)。これって意味がわからない。
昔からいつも思っている。appleはパソコンを売っていないのだ。ユーザーに使わせているだけなのだ。LinuxベースのOSでベンダーとしては一番だというが、ハードウエアを囲い込むのは素敵ではない。
Linuxを利用して、自社のハードウエアを売っておる。
自由に変更できない、物を与えられてもそれは自分で所有したということではない。セキュリティの問題は各自の問題とすべきである。先進的な機能を入れようとするからセキュリティホールは開く。
そんなに便利にいいしなくていいし。
パソコンは手軽に乗れる自転車でいてくれればいいのに。
かつて、MSを僕は悪の帝国のように考えていたが、MS Codeを使い始めてから好きになってきている。
アップグレードでperlのモジュールはそのままにして、perlのみがアップされたのだが、それはいいとして、perlで使っているモジュールがある場所が変更できなくなっていたのである。
/System/Library]/perl/5.30/Extra
perlが勝手にアップグレードされたのはいいとしても、これは気に入らない。もしかしたら一般的なのかもおしれないが、新しいモジュールを入れたいときはどうするのだろうか?
モジュールはユーザーが勝手に変更できるべきものだと言うのに、OSのアップグレードで変更ができなくなったのである。
「sudo」が効かないのだ。
[saito-mini:/System/Library] saito% sudo chmod 777 perl/
chmod: Unable to change file mode on perl/: Operation not permitted
[saito-mini:/System/Library] saito% cd ..
まあ、そもそも、apachをネイティブの環境で動かしてアプリの開発をMACでしなければいいのだといえば、そのとおりなのだが、やはりmacは慣れているから便利なのだ。
もう一つはperlの仕様変更であった。何と2017年のバージョンアップのお話なので、随分前のことである。
とは言っても僕のサーバーで動いているのは誰にでも類推可能なパッケージ名のものが呼び出すプログラムの真横にあると下手なもの入れられると困るということなのだ。
これは、確かにあると思う。
実は前回のトラブルの時にこれは回避できていたのだが、CGIと言うモジュール群の一部がひかかっていたのである。その辺がわからずに、アッチをいじりこっちをいじっている間にトンデモナイ迷宮に入っていたあのである。
結局はCGIモジュールが新しいperlに合っていなかったのである。
エラーの原因はそこであった。
地道にテスト用のプログラムくんでちまちまとコード移植して、落ちるところまで進んで特定した。
ややこしいことに、すべての場合に起こる問題ではなかった。モジールの特定の所がやばかったのかなと思う。
100本とは言わないが、これまでに作った作品の大多数に影響が出る部分であった。
CGIのversion4.48とperlのv5.30.3は駄目である。
CGIのversionを4.54にあげたら上手く行った。@INC の読み込み順を変えてサーバのCGIより先に読むようにした。
サラリと治って嬉しいことである。
そもそも、アップグレードでhttpd.confが書き換わったのが大騒ぎの始まりであった。confの構成も変えないといけなかった。勉強にはなった。さすがにconfはsudoが効いたので助かった。
当初「web共有」という形でユーザーに開放して、突然消して、今度はこうである。そう言えば、昔はOSXサーバーっていうのがあったなあ。一度お客さんに収めたことがある。IntelMACになる前の話である。flash+perlで一本組んだ。すでにFlashも過去の遺物である。
やっぱ、弁当屋さん始めないといかん。
もちろん、業務システムもperlで組む予定である。
今夜はちらし寿司とおもったが、売り切れていたのでお寿司。あんかけ焼きそば作った。
二軒目は「継ぎ足しおでん」と「かなり強いお酒」フルーティな白酒であった。
少し休んでDockerに挑戦である。
62歳と3日目である。
厨房研究に使います。世界の人々の食事の価値を変えたいのです。