PR

FreeBSD アプリケーションメンテナンス パート3

FreeBSD
記事内に広告が含まれています。

上海のオフィスに出張したときにオフィスと宿の間にあった道しるべです。宿とオフィスの間は1km程度の距離だったので、毎日お散歩がてらに歩いて移動していました。取ってもらった宿は高層階の部屋で結構見晴らしがいいはずなのですが感動した記憶がありません。なぜなら、宿の足もとしかはっきり見えなかったと記憶しています。初めて上海のオフィスに出張したのはかれこれ15,6年くらい前で、今の会社に転職した直後くらいだったと記憶しています。当時の中国の GDP は日本の 1/3 程度で、当時世界6位とか7位であったと記憶しています。当時はまだ iPhone なども持っておらず、iPhone3 を初めて持ったのはその後数年してからであったと思います。ですのでこの写真はGDP が日本の2倍くらいになって世界2位の時に撮った写真です。まぁ、至る所工事中で工事中の鉄の壁ばかりが続いている感じでした。まだまだ日本での爆買いという言葉がはやりだすずっと前でした。これはたまらんと思ったことが、信号を守っている人を見たことがなかったことです。信号が赤のうちから広い交通量の多い道路の1車線辺りのところまで進出し、青になる前から渡りだすという状況で、日本でおっとりと過ごしてきた私にはまねできませんでしたし、わたる人数が少なかったら横断歩道を渡るのも怖かったと記憶しています。当然のことながら車の方も信号を遵守じゅんしゅはしませんので 🙂

portupgrade

さて、前回アプリケーションのメンテナンスをして久しくなりますので、一通りアップデートしておこうと思います。基本的にはパッケージではなく、ポーツを使用してメンテナンスをしてゆきたいと思います。パッケージを使えば、最新である事と、必要なコンパイルオプションが使用されているという確証はありませんが、時間が大幅に短縮されますので、そのほうが良いと思われる方はパッケージでメンテナンスしてください。以前の記事でもお話ししましたが、portupgrade で最新のポーツに置き換えてゆきます。簡単です。ところが、今回は何度 portupgrade を行っても完了せず、エラーで終了します。

エラーで止まるのは py38-xxxxx のポーツなので、python に何かあったのか確認してきます。

インストールされている python が複数のバージョンあります。エラーメッセージの多くは py38-xxx と py39-xxx の間にコンフリクトがあるという内容が多かったので、たぶんこれが元凶であると思われます。何故 python39 がインストールされたのかを調べるのに、デフォルトのバージョンが記されたファイルを見てみます。

ファイルを開いて、python のバージョン定義を見てみるとデフォルトが 3.9 になっています。ですのでアップデートなので新たにコンパイルしようとすると py39-xxx となり、python38 を使用するようになっていた同じポーツの py38-xxx と競合していることがわかりました。

python38 用にコンパイルされたポーツを見てみると、結構な数あります。1つ2つなら手動でインストールしなおしでも我慢できますが、ちょっと多すぎなので自動でやらせたいところです。

pkg コマンドには /usr/ports 配下のどのディレクトリのポーツなのかを簡単に確認できますので、全ての python38 関連のポーツを消して、作り直せるようにします。

portmaster

こんな感じで、py38 関連のポーツのディレクトリをずらずらと1行にしてそれを portmaster に喰わせてやります。

まず、依存関係に問題がないかどうかを確認します。

python38 を削除してみると、依存関係のある他のポーツも削除するが大丈夫かと聞いてきます。

全て python38 関連であることを確認して削除を実行します。もし、python38 以外の依存関係があるようであれば、それも別途インストールしなければならないのでそのポーツが何なのかをメモしておきます。

依存関係に python38 以外のポーツもあるようであれば、 portmaster の引数に加えるか、別途 make install を行います。

portmaster で削除したポーツをもう一度入れてゆきます。py38-abc を入れなおすと、py39-abc としてインストールされてゆきます。

エラーなく終了することを確認します。

portmaster の引数に依存関係のあるポーツを入れなかったのであればここでそれらを make install します。その後、pkg コマンドでアップデートが済んでいないポーツの有無を確認して、あれば、portupgrade でアップデートしておきます。

これで python のデフォルトバージョンが変わったことによる問題は解決しているはずです。


中国へは1月最終週に訪問したので、あちこちにお正月仕様の飾りが取り付けられていました。ご存じかもしれませんが、中国の正月は太陰暦の正月なので、2月にお祝いすることになります。”福”の字をひっくり返したこの飾りも縁起が良いということらしいのですが、中国語がわからないので、私にはいまいち理解できませんでしたが、中国語の発音が縁起の良い他の言葉に似ているということらしいです。勿論ひっくり返してのはずです 🙂

この日はとっても寒かったので、温まるものを食べようと現地の IT の方と現地でもちょっと高級なレストランへ連れて行ってもらいました。”火鍋”という料理をご存じでしょうか?口から火が出て、体からは汗が止まらない料理です 🙂 結構おいしかったので、これ以外にも値の張る料理をいくつも頼んだので、現地 IT の方は支払いの心配をしてくれました。

中

おい、こんなに喰って支払い大丈夫か?会社出張の

晩飯代の枠をはるかに超えてる気がするぞ?

日

えっ?うっそぉ?ちょっと計算してみるわ。日本円

にして2人で …….程度だから ”モーマンタイ” 🙂

中

マジか?決済がいる値段に見えるぞ?

日

マジか? iPhone の電卓と通貨変換がまともに動いて

いるとすると、普通に飲みに行ってもこんなに安くは

済まんぜよ?2回計算したけど大丈夫っぽい?

中

任せた。ごちそうさん。

日

どういたしまして。今度日本でごちそうしてね 🙂

中

無理と思う …

確か、2人で 9000円程度でした。今は爆買いという言葉がはやるくらいなので、状況は逆になっているのかな?

日本へ帰る前日に地元の人しか行かないような怪しげなお土産屋ばかりが入ったショッピングモールに連れて行ってもらいました。店の感じが感じなだけに、高価なものは買いたい気持ちににはならず、うろうろウインドウショッピングをしながらいいものはないかいな?と歩いていると、麻雀パイを見つけたのでこれ買おうかな?と品定めしていると、彼が中国語で店の主とあーでもないこーでもないと話しているようです。何してたん?と聞くと値切ってたんや。ですと。。。おかげでお安く手に入れることができました 🙂 シェーシェー!

宝石や衣料品、地元の食料品など、たくさんのお土産があったのですが、結局嫁さんに何もないなぁ?と思いながら空港へ。空港のお土産屋さんで安全なものを購入して家へのお土産にしました 🙂 普段から中国と韓国にはいきたくないといっている人なので、下手なもの買うよりずっとましと思いました 🙂

ヨーロッパから来た私のボスもほぼ同じ時間に北向きの便で飛んでゆきました。関空行きの飛行機の窓から見えたのでパチリ!天気が悪そうなので、到着した時まで晴れていてくれ!と思いながらこちらも滑走路へ taxing。ごく普通の速度で滑走路へ向かって移動していたのですが、かれこれ20分くらいは走り回りました。どんだけ大きいねん!こちらも東向きへ離陸。

離陸後2,3分で雨の心配はないことがわかりました。単に空気が汚れていただけで、上空は快晴でした 🙂 今はもっとひどいんだろうなぁ。。。

以下広告


コメント