iPhone?

ずいぶん前から噂のあるiPhone
去年辺りから話自体はあったのではないでしょうか。
最初はネタとしか思えなかった訳ですが、最近になってずいぶんと現実味を帯びてきましたね。
今年になってAppleがSoftBankへiTuneを提供すると発表はしたものの、現状では影も形もありませんし、アプリとして出したとしてもコンテンツの保護とか各電話機メーカへ対応もしないといけないので、現状では厳しいところも有るのでしょう。
それよりも自分で電話機作った方が早いよ!っていうことなのかも知れませんね。
海外のWebでよく見かけるiPhoneっぽい物はどれも画面が大きいです。
これはおそらく「今年の始めに出る」と噂されていた第6世代iPodに準じているんでしょう。
本当に出てくれると、かなり心揺らぐ製品になること間違いなし!
出来ればPDA([w]携帯情報端末[/w])機能も実装してくれれば嬉しいんですけどね。
Jobsがいる限りMessagePad([w]アップル・ニュートン[/w])の復活はないでしょうけれど………

だめな人

終わりよければ全てよし、年末に向かってちゃんと出勤しよう。
12/28 午前年休
‥‥‥‥‥‥
一年の慶は元日にあり。年始こそちゃんと出勤しよう。
1/4 午前年休
挙げ句の果てに休み明けなんて仕事になんないよねーとかのたまう。
あぁ‥‥‥‥‥‥
だめだ‥‥‥‥‥‥

DiskSuite(ミラー)

口頭で説明するのが面倒なのでメモ
前提条件として、
・同容量のディスクが2発有る事。
・マスターとなるディスクにRAID情報を書き込むパーティションが有る事(専用)
・この例ではs0が/で有る事。
・vtocで有る事。
パーティションの準備

# /usr/sbin/prtvtoc -h /dev/rdsk/c1t0d0s2 | grep -v '^ *2' | /usr/sbin/fmthard -n mirror -s – /dev/rdsk/c1t1d0s2
※上記は改行なしでだらだらと書いてください

DB作成(s7がRAID情報専用パーティションの場合)

# metadb -a -c 2 -f c1t0d0s7 c1t1d0s7

マスター側のサブミラーを設定

# metainit -f d11 1 1 c1t0d0s0
# metainit -f d21 1 1 c1t0d0s1
# metainit -f d31 1 1 c1t0d0s3
# metainit -f d41 1 1 c1t0d0s4
# metainit -f d51 1 1 c1t0d0s5
# metainit -f d61 1 1 c1t0d0s6
※s7以外の使用しているパーティションのみ実施

マスター側のサブミラーをミラーへ接続

# metainit d10 -m d11
# metainit d20 -m d21
# metainit d30 -m d31
# metainit d40 -m d41
# metainit d50 -m d51
# metainit d60 -m d61
※s7以外の使用しているパーティションのみ実施

障害時用にバックアップ

# cp -p /etc/system /etc/system_nometa
# cp -p /etc/vfstab /etc/vfstab_nometa

ブートデバイス変更

# metaroot d10
# lockfs -fa
※metarootした時点でsystemとvfstabが書き変わってます
# vi /etc/vfstab
※metarootによって自動で書き変わるのはs0(/)のみ。それ以外のs3〜s6までをs0に見習って変更

デバイス変更のため再起動

# shutdown -r now

スレーブ側のサブミラーを作成

# metainit d12 1 1 c1t1d0s0
# metainit d22 1 1 c1t1d0s1
# metainit d32 1 1 c1t1d0s3
# metainit d42 1 1 c1t1d0s4
# metainit d52 1 1 c1t1d0s5
# metainit d62 1 1 c1t1d0s6
※s7以外の使用しているパーティションのみ実施

スレーブ側のサブミラーをミラーへ接続

# metattach d10 d12
# metattach d20 d22
# metattach d30 d32
# metattach d40 d42
# metattach d50 d52
# metattach d60 d62
※s7以外の使用しているパーティションのみ実施

確認

# metastat

DiskSuiteで何か言われた

「ラベル付きサブミラーをラベルなしサブミラーへ接続する事は出来ません。」
んむふー。
後輩に呼ばれてコンソールを見たらこんな事言われてました。
なんのこっちゃ。
docs.sun.comで調べると一発まさにそれ!って言うのがあったんですが、きっとまた忘れるのでメモ。

「can't attach labeled submirror to an unlabeled mirror」というエラーメッセージは、ミラーに RAID-0 ボリュームを接続できなかったことを意味します。ラベル付きボリューム (サブミラー) とは、その最初のコンポーネントがシリンダ 0 から始まるものをいいます。一方、ラベルなしボリュームの最初のコンポーネントはシリンダ 1 から始まります。Solaris ボリュームマネージャでは、ラベル付きサブミラーのラベルが壊れるのを防ぐため、ラベル付きサブミラーのラベルなしミラーへの接続を許可しません。

あー。なるほどねー。
2つのディスクをそれぞれprtvtocしてみたら案の定、相手ディスクのs0とs1の開始シリンダが違うじゃないですか。
まー。普通はそんな事はないですけどね。

SolarisでのISOイメージをマウント

SolarisでISOイメージをマウントする方法
毎度毎度忘れるので備忘録行き

# /usr/sbin/lofiadm -a `pwd`/filename.iso
/dev/lofi/3

lofiadmコマンドを上記の様に実行すると勝手に/dev/lofi/NNが割当られるので、

# /sbin/mount -F hsfs -o ro /dev/lofi/3 どこかのマウントポイント

smpatch後の…

パッチによりApache2のバージョンが2.0.55から2.0.58になりました。
マイナーアップなので大丈夫だろうと思っていたのですが、リスタート後にどうもWebが見えない。
でもプロセスは上がってる。
んー、まぁまずはログでもとerror_logを見たら…

child pid 727 exit signal Segmentation fault (11)
child pid 733 exit signal Segmentation fault (11)
child pid 734 exit signal Segmentation fault (11)
child pid 735 exit signal Segmentation fault (11)
child pid 736 exit signal Segmentation fault (11)
child pid 737 exit signal Segmentation fault (11)

あー。やはり。
ページを見るたびにfaultしてるし。
という訳で、以前に手動で入れたphp-5.2.0をリコンパイルしてインストール。
とりあえずトップページは見える様にはなりました。
これでOKかな?と思っていたら今度は443が受け付けてない様です。
netstatしてもやっぱりLISTENしてない。
/etc/apache2/*confが上書きされてつぶれたかとも思いましたが確認の結果は問題なし。
うお?apachectlがstartsslされていない?
この間書き換えたmanifestを見てみると、/var/svc/manifest/network/http-apache2.xmlが上書きされていて、SSLがfalseになってました…
そりゃあ上がらないよね。
Sunのパッチはユーザがファイルを書き換えていても相変わらず上書きしていくのですね…
変わってないなぁ

smpatchうまく行かない

どうもsmpatch updateがうまくいかない…
どううまくいかないかというと、ダウンロードの途中でだまてんになっちゃったりします。
何度やっても駄目だったのですが、smpatch analyzeの結果の中にSun Update Connection Client 1.0.8というのがあったので、まずこれを先にあててみました。

smpatch update -i 121118-08

するとどうでしょう!
smpatch updateでさくさくとダウンロードが進みだしたではありませんか!
さては何か不具合でもありましたね!
RedHatのup2dateなどの場合はこのクライアントを別であつかっていて、まず先にup2dateのパッケージをあてたりするのですけどねぇ…
で、実際の処理はぼーっと見ているだけなのですが、このupdateの処理はパッチ対象のプロセスが上がったまま実体をpkgrmしてpkgaddしているみたいです。
でもプロセスのリスタートは行っていないのでパッチ前のバイナリがそのまま走ってます。
基本的にサービスのrestartとかはしない様なので、今すぐ新版を適用したければ個別にHUPしたりstop/startするですね。
「再起動後に有効」と言われているパッチは、実際にshutdownコマンドが発行された段階でpatchaddされます。
結構時間がかかりますが、この間もシステムは動きっぱなしなので基本的にサービスのダウンタイムは短くなる様に考えられているようです。
その間、まともに動いているかどうかは知りませんがw

Solaris10のパッチ

Solarisでパッチというと昔からSunSolveからRecommendedをダウンロードしてシングルユーザでinstall_clusterとかだったわけですが、最近のリリースはネットワークでダウンロードしてきてマルチユーザであてちゃうことができるのですね。
という訳で、いきなりやってみる

# smpatch analyze
システムに必要なパッチを評価しています…
Failure: Cannot connect to retrieve detectors: This system is currently unregistered and is unable to retrieve patches from the Sun Update Connection. Please register your system using the Update Manager.

あー。そう。
登録しないと駄目なのね。
で、docs.sun.comとか見てると、テンプレートがあるからコピーして書き換えて登録しなさいとか言ってます。

# cp /usr/lib/breg/data/RegistrationProfile.properties /tmp
(ちなみに家のSolaris10は06/06です)

いろいろと項目がいっぱいあるんですが、とりあえずの所はuserNameとpasswordで良い様です。
パスワードが生書きなのですごくいやな感じ。
書き換えたらおもむろに、

# /usr/sbin/sconadm register -a -r /tmp/RegistrationProfile.properties
sconadm が実行中です
ユーザーを認証中…
finish registration!

なんかいやに待たされましたがOK。
ところで、さっきのテンプレートに書き込んだuserNameとpasswordはどこに保存されているんだろう…きもちわるい。
あとは、

# smpatch analyze

で、パッチの確認が出来て、

# smpatch update

で、実際にあてる事ができます。
ちなみに、ここで使ったuserNameとpasswordでSunSolveにログインする事が出来ます。

Solaris10に入れたパッケージ

全部コンパイルしているとめんどいのでセキュリティ的&機能的にに問題無さげなやつは有りものを使ってみる。

コンパニオン
system SFWcurl curl – tool for transfering data specified with URL syntax
system SFWgtxt GNU gettext – utilities for software localization
system SFWncur ncurses – new curses library
system SFWpcre PCRE – Perl-compatible regular expression library
system SFWsudo Sudo – superuser do
system SFWtop top – display information about processes
system SFWvim vim – Vi IMproved – a programmers text editor”

sudoはちょっと抵抗あるんだけどね…

SunFreeware
application SMCdb db
application SMCftype freetype
application SMCgcc gcc
application SMCjpeg jpeg
application SMClibpng libpng
application SMCliconv libiconv
application SMClxml2 libxml2
application SMCsasl sasl
application SMCwget wget

php 5.2.0のコンパイル

Solaris10に付属しているphpがコンパニオンかつver4.3なので5.2.0にしてみた。

./configure –with-apxs2=/usr/apache2/bin/apxs –enable-mbstring –enable-trans-sid –enable-mbstr-enc-trans –enable-zend-multibyte –enable-mbregex –enable-sockets –with-gettext-dir=/opt/sfw –with-dom –with-iconv –with-gd –with-png-dir=/usr/local –with-jpeg-dir=/usr/local –with-mysql=/usr/sfw –with-pgsql –with-zlib –with-mime-magic –with-imap-ssl –with-ttf –with-freetype-dir=/usr/local –enable-gd-native-ttf –enable-gd-jis-conv –enable-memory-limit –enable-exif –with-curl-dir=/opt/sfw –with-openssl –with-gnu-ld
make
make install