目次

ここは

Solairs関連のメモ置き場w

vimspell on Solaris

ここに書くのが適当か分からないけど、ここにしてみた。 英文を書く時は一旦 vimで下書きしてからにしているので、spell checkerとして aspell + vimspellを使っている。で、vim7.x + aspellの場合、E484で一時ファイルが 作れないことがある。原因は調べてないが shell設定されているのが cshだとダメぽ。 vimrcの設定上、set shell=/usr/bin/bashとかにしておけばok。(無論、shもおk)

ssh keygen

いつ版からか知らないが、少なくとも s10s_u8(10/09)に関してはsshdの初期鍵が 無い状態になっているので、installするだけでは sshで接続できないぽい。 対応としては /lib/svc/method/sshd -c を実行すると裏で create_keyで ssh_host_<rsa or dsa>_key が作成される。

build apr/apr-util/apache2.2.9 on Solaris10/x86

ビルドにシクりまくりなので、理由をメモ
  • 1.apr-1.3.3調べ
    • testsockは /etc/servicesに http 80/tcp の行がないとエラーになる
    • testsocketsは configureで --disable-ipv6しておかないと、::1(inet6のlo0)が無くても udp bindする試験をするから、エラーになる
  • 2.apr-util-1.3.4調べ
    • Berkeley DBは--with-berkeley-dbで設定していても、LD_LIBRARY_PATHに存在しないと configureが -ldbで loadしようとして無いからエラーになる orz

DTrace

長いコードを読みたくないからと言うことで、前からマニュアル読もうと思ってたDTraceのマニュアルを読みつつ、メモってみた

usbメモリとかの使い方

マニュアルはここ
ざっくりした手順は以下の通り。
  • 1. 指して、/var/adm/messagesに出力される指したUSBデバイスの物理デバイスパス名をチェック
  • 2. 対応するデバイスファイルを調べる
  • # ls -l /dev/dsk/c*0 | grep "1.で見たパス名文字列"
  • 3. mount -F pcfs /dev/dsk/cXtXdXsX:c [マウントポイント]
  • 4. つかう
  • 5. umount [マウントポイント]
  • 6. eject /dev/dsk/cXtXdXsX
  • 7. 抜く

手順6のejectはホントか怪しい。抜き差しに併せてmsgはとりあえず出力されている。ejectは無くてもUSBメモリなら大丈夫ぽぃ。

zfs

前から気になっていたのを、遅まきながら使ってみた。とりあえずメモ程度の試運転。
雰囲気としては、sdsやらvxやらと一緒な感じ。以下は使えるまでの手順。
  • 1. デバイスを管理対象に登録。
    • 使う前にデバイスをpool(管理対象の集合)に登録する必要がある。コマンドはzpool。zpoolもzfsもどっかの製品と一緒で、sub commandがたくさんある。
    • # zpool create zfs c1t1d0
    • 実行すると、ちょっと時間がかかる。何してるのかはなぞ。これが終わった時点で、/zfs というディレクトリに、zfsファイルシステムとしてマウントされている。vfstabにはエントリは無い。設定ファイルにテキストのは無いが、/etc/zfs/zpool.cacheが用意されている気がする。
  • 2. 結果の確認
    • # zpool list
  • 3. ファイルシステムを作成する
    • /zfs のpoolを分割して、ここのvolumeをzfsとして利用できる。 /zfs配下に見えるようになり、zfsのproperty mountpointで mountする場所を指定できる。雰囲気は、zpoolがvolumeで、zfsがsub volumeを作ると言う感じか。ファイルシステムの設定はattributeを変更する。一覧はここにある。結構、いろいろ指定できる。変わったのはマニュアルにもある compression option。storeする際に圧縮をかけられるみたい。圧縮用ライブラリを別途指定できる i/fは考えているみたいなので、zfsをベースに3ppが出てると面白いね。
    • # zfs create zfs/archives
    • # zfs set mountpoint=/archives zfs/archives
    • # zfs set compression=on zfs/archives

これで一通り終了。性能がいいなら管理が楽だし、無料だし言うこと無い。sdsとvx、HP-UXのlvの3個しかvolume managerを知らないけど、この3点より遥かに UIはいいと思う。

smpatch(1M)

TBD

Subversion 1.3.2 セットアップ

びみょーにはまってたのでメモメモ。φ(。。

事前に入れてみたもの一式

  • httpd-2.0.58.tar.gz
  • db-4.4.20.tar.gz
  • libtool-1.5.22.tar.gz
    • 本来必要ないですが、何となく。
  • expat-1.95.8.tar.gz
 -- apr-utilで使っているのですが、無くてもcofigureでは何も言われず、buildのldがこけます。
  • gdbm-1.8.3.tar.gz
  • libxml2-cvs-snapshot.tar.gz
  • libiconv-1.9.2.tar.gz
    • libxml2に必要

svnのびるど

  • 1. subversion-1.3.2.tar.gzを解凍
  • 2. 抱き込みのライブラリを差し替え
  • 2.1 展開ディレクトリにある arpと apr-utilディレクトリを差し替え
    • apr-1.2.7.tar.gz、apr-util-1.2.7.tar.gzを展開して、差し替えます。
    • svn1.3.2には0.9系が同梱されてますが、最新版にしておきました。
  • 2.2 展開ディレクトリにある neonを差し替え
    • neon-0.26.1.tar.gzも展開して、neonディレクトリを差し替えしてみたら、0.25.5以外は許されませんでした。
  • 3. configureに渡すオプションはBerkeleyDBのパスだけ。--with-berkeley-db=/usr/local/BerkeleyDB.4.4
  • 4. subversion/include/svn_types.hの書き換え
    • /usr/sfw/bin/gccでコンパイルすると、なぜかgccが持ってるstdlib.hと/usr/include/stdlib.hのgetopt(3C)の宣言がかち合うので、<stdlib.h>を消して、諸々/main.cとかでコンパイルエラーが出る毎にincludeを書き加えました。orz
    • 対象ファイルは以下5点です。
      • svnadmin/main.c
      • svnlook/main.c
      • svnserve/main.c
      • svnversion/main.c
      • tests/libsvn_subr/target-test.c

SunOS Specific make

ちと長いので別立て

ISO imageのmount

ちょっと長くなったので別立て

Solaris10の <sys/siginfo.h>関連コンパイルエラー

sunfreewareからgccのpkgをinstallして、その後のcompileに使っていると
/usr/include/sys/siginfo.h:259: error: parse error before "ctid_t"
/usr/include/sys/siginfo.h:292: error: parse error before '}' token
/usr/include/sys/siginfo.h:294: error: parse error before '}' token
/usr/include/sys/siginfo.h:390: error: parse error before "ctid_t"
/usr/include/sys/siginfo.h:392: error: conflicting types for `__proc'
/usr/include/sys/siginfo.h:261: error: previous declaration of `__proc'
/usr/include/sys/siginfo.h:398: error: conflicting types for `__fault'
/usr/include/sys/siginfo.h:267: error: previous declaration of `__fault'
/usr/include/sys/siginfo.h:404: error: conflicting types for `__file'
/usr/include/sys/siginfo.h:273: error: previous declaration of `__file'
/usr/include/sys/siginfo.h:420: error: conflicting types for `__prof'
/usr/include/sys/siginfo.h:287: error: previous declaration of `__prof'
/usr/include/sys/siginfo.h:424: error: conflicting types for `__rctl'
/usr/include/sys/siginfo.h:291: error: previous declaration of `__rctl'
/usr/include/sys/siginfo.h:426: error: parse error before '}' token
/usr/include/sys/siginfo.h:428: error: parse error before '}' token
/usr/include/sys/siginfo.h:432: error: parse error before "k_siginfo_t"
/usr/include/sys/siginfo.h:437: error: parse error before '}' token
In file included from /usr/include/sys/procset.h:24,
                 from /usr/include/sys/wait.h:25,
                 from stream.c:32:
/usr/include/sys/signal.h:85: error: parse error before "siginfo_t"
と出て、終了する場合がある。gccの持ってるheaderファイルと かちあってる気がするが、詳細は未調査。
この場合の対応だが、s10からは /usr/sfw/bin/gcc (3.4.3)があるので、 こっちでcompileすると通ると思われ。

SCSIとデバイス名

よく見かける話ですが、Solaris上でHDDを使うと、デバイスファイル名は cXtXdXsXと いう形になります。で、これらですが、以下の通りです。
prefixなにか
cコントローラID。ホストに刺してあるコントローラ(=HBAとか組込ものとか)に振られたID
tターゲットID。SCSIの場合、ケーブルで繋いだSCSI Bus initiator(=HBAとか)とtarget(=CD-ROMとかHDDとかその他周辺機器)に割り振られ、Initiatorには7が振られます。targetには0から順次番号が振られます。今時の仕様でどこまで数字が上がっていいかはよく知らん。
dLUN(Logical Unit Number)。SCSIの仕様上、0-7(8個まで)の装置がひとつのtargetの配下に存在していい。今時の仕様でどこまで数字が上がっていいかはよく知らん。
sスライス番号。Solarisの場合、通常、0-7のpartitionに分けてdiskを利用し、スライス毎にsXが振られる。

例えば、こんなんだと

            SCSI                    箱の中
	 (自分で結線)           (結線は見えない)
 [host c1]+---+----+[ディスク箱 t0]+--+---+[HDD@A d0]
              |                       |
              |                       +---+[HDD@B d1]
              |
              +----+[ディスク箱 t1]+以下、省略

HDD@Bはhost上では c1t0d1s2が全体を指すデバイスファイルの名前になります。

CDEのfrontPanelを消す

色々方法はあるが、私が採用する方法はこれです。
 $HOME/.Xdefaultsに、以下を1行追記。
 Dtwm*useFrontPanel: False

Last-modified: 2010-03-09 16:50:07