月別アーカイブ: 2010年7月

PBG4のメンテ

やっと終わった。
いくつかのパッケージでlafilefixerを実行しないと駄目なのがあったのと、libpng12問題があったくらいか。前者は古いパッケージが引き起こす問題か?一通りlaを提供するパッケージを更新してくれればいいのにね。後者は付属のシェルスクリプトを実行すれば解消できる。一応古いライブラリは新パッケージの持ち物らしいから消さないけどリンク先が新しいものになってるからこのまま放置でいいかも。
見た目の問題点はなかったけど、Firefoxを起動すると最新じゃないって警告画面が出てた。最新じゃないとしても閲覧できればいいのでこれも放置。ローカルの設定を消せば解決できるのか?とか思うけど面倒なのでいいや。

PowerBook G4のメンテ

ppc32環境ですが、gcc-4.4とGNOME 2.30(2.28だった気がしたけど、昨日のemerge –syncで2.30が来た)が降りてきました。gccをコンパイルしてgentoo-sourcesも新しくなったのでカーネルを作り直したらモジュールのコンパイルでエラーが出た。
drivers/scsi/ipr.c: In function ‘ipr_mask_and_clear_interrupts’:
drivers/scsi/ipr.c:653: error: implicit declaration of function ‘writeq’
(以下略)
SCSI関係のモジュールなのでOFFにすればいいと思ってメニュー内を「IPR」で探したらIBMのモジュールだった。それをOFFにしたら問題なく通った。それにしてもallでコンパイルするとPBG4で3時間くらいかったか?デフォルトで作成するモジュールが多すぎるのでしょうね。うまく削って見たいところです。
そして、emerge -uDN worldでアップデートと思ったらgcc-configで切り替えを忘れてた。カーネルは前のコンパイラで作ってしまったよ。今度はモジュールを減らしつつリコンパイルを後でやるさ。
アップデート中、glibのコンパイルでautomakeが通らない問題があった。
http://forums.gentoo.org/viewtopic-p-6345743.html?sid=967f46b611539dc1b21afca06ebdb099
ここと現象が同じなので、リンク先のhttp://bugs.gentoo.org/show_bug.cgi?id=327559へ行って#3に書いてあったemerge gtk-doc-amを実行したら問題解消できた。必要だったらアップデート時にコンパイルして欲しいよ。
automakeを再マージとか余計なことをしてしまった。
あとはアップデートが終わったらカーネルを作り直して再起動か。そしたらemerge -e worldで全リコンパイルしよう。このマシンは寝る前にインターネットを覗いたりするマシンなので動くだけでいいし。
改めてPBって使いにくいと思う。Windows系のWheelマウスに慣れてると特に苦痛に感じる。ボタン一個でよく操作できるよね。タッチ部で叩いて対応するのでしょうけどLinuxを入れてしまうと3ボタン系で使いやすくなってるから仕方ないと言えばそれまでですけどもう少し使い勝手をよくする方法とかあるのか?とか思う。もう一台A31pが欲しい気がしてきた。つか、最新鋭のノートを買って寝室にA31pを持っていくのがベストかもしれなが。

emerge -e world

全リコンパイル完了。
そしていくつかハマった。
emerge -eをする場合は事前に–syncを行ったら-uDN worldでアップデートしておかないと失敗する場合があるってわかった。アップデートしつつリコンパイルできると思ったのが甘かった。
リコンパイル中に何故かカーネルソースのシンボリックリンクが古いものに置き換わった点があった。不気味なのでgentoo-sourcesをマージし直しておいた。カーネルのリコンパイルもしたのですけど、nvidia-driversのりコンパイルを忘れてた。これまた古いカーネルのモジュールを作ったのか謎である。xf86-input-*関係はリコンパイルで問題なかった模様。
vmware-playerが起動しなかった。vmmonとかモジュールが何故かロードされなくて、/lib/modules/*/miscを見たけどモジュールはあった。emerge –config vmware-playerを実行してみるとコンフィグレーションがまた新しくなって変わってたので何が何だか。vmmonとかをinsmodでロードしてみたら動くには動いたけどネットワークがうまく認識しなかった。もう一度マージしなおしてリコンパイルし、–configしなおしてみたら何事も無かったように動いたので謎である。
そしてsambaですが、通常通りWindowsから参照したら長い呪文のようなエラーが出てアクセスできず。設定やらデーモンやらは問題なさそうなのですが、いろいろと試すとパスワードなしのパブリックな奴はアクセスできると判明。homesへのアクセスがおかしいとわかった。smbpasswdは問題なかったので前から入れようと思ってたswatフラグを追加してsambaをリコンパイルしたら…最後にメッセージが出て警告があったよ。samba 3.4からpassdb backendが変更されてpassdb backend = smbpasswdを指定するか、pdbedit -i smbpasswd -e tdbsamを実行してユーザー設定を移行しないと駄目らしい。一応前述の方法でsmbpasswdを引き継げるらしいですが、後者がこれからのメインらしいのでコマンドを実行して引き継ぎました。あとはこのコマンドで保守すればいいらしい。設定してsambaを再起動したら何事も無くアクセスできるし。emergeのログを読まない罰なんだろうね。
これでサーバが-O3から-O2 -march=nativeへの変更が出来た。体感でのアクセス速度は変わってないけど恐らくこのマシンでの最速な環境となった”はず”です。あとでswatも試さないと。

続samba

swatは起動できたけど表示が英語のままだった。
display charsetを指定したけどUTF8じゃ駄目なのかも。eucにしてもいいけどunix charsetと同じにするといいとあったのですけど駄目だし。まあ、英語でもいいのでこのまま放置します。
そういえば、rootをsambaのユーザーに追加してなかったので入れなくて焦った。
それと大きな問題が1点。シンボリックリンクされてる先への参照が出来なくなってた。どうやら3.4.6から7に変わったときに変更されたらしい。シンボリックリンクを辿る攻撃があったらしく、その正式対応みたい。
unix extensions = no
wide links = yes
これをglobalに追加すれば問題ない。うちはfollow symlinksも指定しておいた。

サーバのメンテ

仕方ないのでgccのバージョンを上げました。-O3にしてたのも-O2と-march=nativeに変更。これが一番最適化されるらしいので試して見ようかと思って。それと-fno-strict-aliasingも付けた。ポインタの型変換だけで違うタイプのメモリアクセスした場合に警告が出なくするだけですが、unionを使えば警告が出ないといわれてます。しかしunionってシステム依存な部分が多いから移植性に問題がありそうな気がする。恐らく使われることも少ないと思って警告をOFFという形で対処です。この辺りのプログラミングは宗教論争と同じだからなくすなら言語を変えるしかないだろうし。
全部コンパイルしたかったのですが、emerge -e systemを実行したらコンパイルできないのがあった。コンパイルされる順番が悪いのかフラグがいろいろ変わって駄目なのかよくわからず。GNOMEのバージョンも上がってるのでアップデート分のコンパイルを先に行いました。
引っかかったのがgststreamer関係。blockedの問題は軽度ですけど、gst-plugins-pangoのコンパイルがなかなか通らなかったので焦った。cairo辺りのエラーが出てたのでcairoをリコンパイルしても駄目。emerge –syncを実行してもしや?と思ってpangoをリコンパイルしたら通った。何をリコンパイルしたらいいかわからんのがGentooの悪いところというか欠点に思える。関連するパッケージが入ってればどんなコンパイルオプションだろうがある程度通ってしまうから整合性を取るのもむずかしいのでしょうね。これがソースビルド系のつらいところか。

Java

まだ勉強中の言語ですけど、入れておこうと思ったのですが、どうやらライセンスの受け入れでACCEPT_LICENSEをmake.confへ入れないと駄目だった。更にデフォルトだとフリーの奴が入ると思ってたのですが、それが消えてて駄目だし。仕方なくIBMの奴を入れようと思ったけど、IBMから落とせるのはSR8でGentooのSTABLEはSR7だったりする。マスクを外してSR8をインストールするも、BuildOnlyとか訳のわからん状態でげんなり。
まあ、うちのメインは今でもCだからどうでもいいんですけどね。別のスクリプト言語でも勉強しようかとか思ったり。