FreeBSDのPorts collection運用

FreeBSDにはpkgというパッケージシステムがあるんですが、更新が遅いのとmakeオプションを変えられないので長年Portsで運用してきました。

また、一時期portsのビルドが面倒になってpkg運用一本に切り替えようかともしたのですが、長期運用で少しづつ各パッケージのバージョンを上げていこうとすると、パッケージ間で参照しているライブラリのパッケージバージョンが不一致で、どちらかしかインストールできないなんて状態になったりで結局あきらめました。
※バイナリpkgが導入された直後の昔のことなんで、今は良くなってるんでしょうかね?

そもそもFreeBSDのports/pkgの更新も「portsコード→バイナリパッケージ(pkg)」の順番に更新される訳なんですが、このタイムラグが結構あって、最新のセキュリティパッチとか、ただでさえportsコードに取り込まれるのが遅かったりするので、pkgだと相当遅かったりします。

そんなわけでひたすらPorts運用一筋。教科書?に載ってないようなPorts運用のノウハウをちょっと書いてみたいと思います。

更新作業について

各パッケージは日々バージョンアップされていきます。昨今ではセキュリティ関連の更新が多く「安定稼働しているから」と、古いバージョンのまま放置するわけにもいきません。

そんなわけで定期的に各portsの、アップデート作業を行うのがPorts運用の基本となります。

とりあえず/usr/ports/UPDATEは読みましょう。大規模なアップデートが有る時に、必要な作業が載ってます。読んでないと嵌まることあります。

基本的にportupgradeを使ってます。rubyのいらないportmasterが好まれるようですが、あっちは良く分かりません。

portupgrade -R <port name>

とか、-Rオプションおすすめです。

依存パッケージも更新してくれるのですが、依存パッケージが古くてコンパイル通らないとか良く有るので。

make uninstall or pkg delete/make installとかすると、ちょいちょい大変な目に遭います。と言うのも、新しいPortsのビルドが通らないことが、困ったことに「結構良く」あります。

原因は様々ですが、その原因の一つが、以下に挙げる/usr/local/lib/comat/pkgだったりします。

/usr/local/lib/compat/pkgの管理

昔は共有ライブラリのバージョンを上げたら、ライブラリのI/Fが変わってて、依存しているパッケージが軒並み動作がおかしくなるなんて事がありました。

今では共有ライブラリのパッケージを更新すると、古いバージョンがこのディレクトリに置かれて、そして新しいバージョンがインストールされるようになっています。

それはそれで互換性の面でありがたいのですが、古いライブラリは自動的には消してくれないんですよね。さらに、残った古いライブラリが悪さして、別のパッケージのビルドが通らないなんて事も起こります。

ライブラリのパッケージ自体を削除しても、移動された古いライブラリはそのまま残ってしまうんですが、それが悪さをすることもしばしば…。

なので、定期的にチェックして手動で消す必要があります。

pkg shlib <shard library>

ってすると、その古いライブラリを参照しているパッケージを教えてくれます。依存しているパッケージを再ビルドすると新しいパッケージを参照するようになります。

それらのパッケージを一つずつ、portupgrade -fで再ビルドしましょう。全てのパッケージを再ビルドして、古いライブラリを参照しているパッケージが無くなったら、ようやく消すことが出来ます。

portupgrade -f `pkg shlib -qR <shard library>`

ってやって、一括してアップデートするのも手です。

再ビルドひつようなのにうっかり消してしまったり、その他の要因で必要なライブラリが無くなっていたりしないか?を確認するにはこちら。

portmaster --check-depends

それでも新しいportsがビルドできない

ports運用上の最大の障害がこれ。クリーンインストールなら問題なくても、長年アップデートを繰り返してきた環境だと、わりと遭遇します。

組み合わせると動かないパッケージがある

よく似た機能のパッケージで、普通はどちらかしか使わないのを両方入れてたら、それらに依存しているパッケージがビルドできないパターンがあります。

netatalkとavahi/mdnsあたりだったかな。

機能のかぶるパッケージが入ってないかチェックしましょう。

依存関係が機能不全

依存パッケージが入ってるのに「無い」って言われてビルドできなかったり、逆に無いのに自動的にインストールされずにビルドエラーで終わってしまうパターン。

ports側で依存関係が変わったりとか、パッケージの構成変更や、ports名の変更とかだったりします。

普通は/usr/ports/UPDATEをよく見てると注意喚起が載ってたりするんですが、載ってないこともあります。

関連するパッケージを一度消してから、再インストールすると上手くいくことが多いです。

それでもどうしてもビルド出来ない

まだ古いパッケージをアンインストールしていないなら、とりあえず待ちましょう。ports側で修正されることがあります。

依存関係を疑って、一度消しちゃった場合は、portsを古いバージョンに戻してビルドします。

そのために、portsはportsnapではなくSubversionで更新するのがおすすめです。該当するportsのディレクトリだけ古いバージョンに戻してビルドします。

カテゴリー: 未分類 | タグ: , | コメントする

蔑視と差別は違う

別に女性の人権とか差別とか、そういうのに熱心なわけじゃぁ無いです。ただ、歯車の合わないような気持ち悪さがあったので。

「女性がたくさん入っている理事会の会議は時間がかかります」

これ見たときどう考えても差別的発言やん…と。ここまで明らかな発言なのに、日本国内のマスコミの初動は鈍かった。

最終的には、海外の反応に押し切られた感じ。そしてその波に後のりする国内マスコミ。

「私は女性を蔑視するという気持ちは本当にありませんし…」

マスコミの文章には「女性蔑視」という言葉が多く使われているけれど、この件は「差別(客観的視点)」ではあるけど「蔑視(主観)」とは違うと思う。

Wikipediaさんによると差別とは以下の通り。

特定の集団や属性に属する個人に対して、その属性を理由にして特別な扱いをする行為である。

国際連合は、「差別には複数の形態が存在するが、その全ては何らかの除外行為や拒否行為である。」としている。

一方で「蔑視」については本質的には「侮蔑」にあたるということで、同じくWikipediaさんではこんな感じ。

他者を侮り、蔑み、馬鹿にしたり、罵ったり、ないがしろにすること。

侮蔑は、言葉や態度に現れるものに限らず、「彼の表現には侮蔑の意図があったのか」などの用法に見られるように、侮蔑感情を含めて考察・記述されなければならない。

この件について、森さんに侮蔑の意図は全くないんでしょうね。でも差別なんですよ。本人の意図とは関係なく、女性という集団を除外する手助けとなる発言であって、紛れもない差別的発言。

蔑視してないから差別じゃ無いなんて、筋違いすぎるんです。一方で女性差別だからといって、必ずしも女性蔑視というわけでもない。

そして、多様性を認める「オリンピック」という場で、多様性とは相反する差別行為をどうどうとやっちゃった。ただですむわけが無い。

海外はその「差別」を問題にしてる。

しかし国内のマスコミはその本質を理解してないし、そして本人は周りのマスコミに「女性蔑視だ!」と言われながら、頭の中でハテナが増えるだけ。

ウチも上手く言えないけど、誰かその違いを教えてあげてやってくれ…。

カテゴリー: 未分類 | コメントする

冷凍うどんヤバい

今更ながらに冷凍うどんヤバいと言うことを知りました。

ご飯と比較して、圧倒的に手軽に作れる。炊かなくても良いし、電子レンジでチンするだけ。

他の麺類(中華麺・和そば)と比較しても、和洋中どんな料理も合う。汁物作って、うどんぶちこんだら料理として完成。

あと安い。生米と比較したら割高だけど、米は炊かないといけない。パックご飯(¥100前後/パック)と比較したらほぼ半額位(¥50前後/玉)。

あれ?うどん県民はうどんの食べ過ぎで糖尿病なんじゃ無いの?って思って調べたらうどん無罪みたい。

https://www.m3.com/open/iryoIshin/article/761452/

  • うどん県民は、うどん+ご飯物というのが普通だから、カロリー&糖質過多になりやすい。
  • ご飯のおかずがうどんなので、メニュー的に野菜不足に陥りやすい

そんなわけで、糖尿病リスクも他の糖質とそんなに変わらない。というかむしろ、ご飯よりリスク低い。グルテンがあーだこーだ言うのも、特定疾患だけの話で一般人にとっては関係ない。

冷凍うどんヤバい。(2回目)

カテゴリー: 未分類 | コメントする

雪を見に行った

折角冬場はスタッドレス履いてるんでね。昨今の大雪立ち往生みたいなことが無いように、事前に下調べはした上で。

国道161で滋賀から福井へ山越えしたんですが、一面銀世界ながら路面はアスファルトは黒いまま剥き出し。ほぼ全線、消雪パイプが設置されていました。

そんなわけで、雪の上を走ったのは除雪が行き届いてない駐車場くらいでした。

天気も良く、風も弱く、気温も2〜3℃くらいあってそんなに寒くなかったので、波の音と、雪が溶けてぽたぽたと落ちる音聞きながらしばらくぼーっとしてました。

柴犬だか秋田犬の子犬だかを連れてきてる人がいて、雪の上で遊ばせていたんですが、すごい楽しそうに駆け回る犬を見てるだけでこっちまでほっこり。

海鮮市場

ここにも「日本海さかな街」という海鮮市場があるんですが、店内で自分以外の客は探さないと見当たらない…みたいな惨状。

ここ数年のインバウンド需要で、この手の海鮮市場は、概ね、価格は上がり質は落ちた傾向だと思ってます。

まぁそれでもインバウンド向けには売れてたんだから、それで良かったんでしょうね。商売として、それを悪く言うつもりはありません。ただ、国内客の期待するところでは無いです。

ここのは買ってないので質までは分かりませんが、ざっと見た感じ、どれも安くなくて「別にココで買わなくてもええやん…」ってな感じ。

ほとんど客いないのに大量に並べてる蟹、今日売れ残ったら明日もまた並べるんかい?みたいな。生鮮なのに。

店内放送もインバウンド向けの内容そのまんま流してました。居ないのにね。

どんな商売もやっぱり「潮目」ってのがあるんでしょうね。人ごとじゃ無いと、ちょっと考えさせられました。

カテゴリー: 未分類 | タグ: | コメントする