Top > MyMachine&Tips

BSD関連ちょっとしたメモ (というか、不定期日記?)

Last update : Mar. 25, 2004

NetBSD-currentでpsのエラー表示?(2004/02/03)

psしたら、ps: warning: /var/run/dev.db: No such file or directoryという表示が出たりする。
そういうときは、とりあえずdev_mkdbすると、なんだか直る。

特定のports用のmake.conf(2004/01/30)

FreeBSDで、特定のportsにだけ有効なオプションの指定を/etc/make.confに書いておくと、バージョンアップの際にも忘れない。

# apache .if ${.CURDIR} == ${PORTSDIR}/www/apache13 || ${.CURDIR} == ${PORTSDIR}/www/apache13-modssl WITH_APACHE_SUEXEC=yes WITH_SUEXEC=yes .endif # w3m .if ${.CURDIR} == ${PORTSDIR}/www/w3m JAPANESE=yes .endif

webminをinetd経由で動かす(2004/01/30)

webminの待ち受けるminiserv.plは、なんだか重いので、inetdから必要なときだけ起動したい。
公式ページによると、
  • /etc/webmin/stopする
  • /etc/webmin/miniserv.confから、session=1を消してinetd=1を追加する
  • /etc/servicesにwebminのポートを追加
  • /etc/inetd.confには、webmin stream tcp nowait root /usr/local/webmin/miniserv.pl miniserv.pl /etc/webmin/miniserv.conf

vim6で、ちゃんとコード判別する(2004/01/30)

libiconvが入ってない場合、libiconvをインストールするわけだが、それでも自動判別してくれないというときは、忘れていることがいくつかある。
  • ldconfigしてなくて、実は使われていない
  • 環境変数LANGが日本語になってない
とくに、LANGがja_JP.EUCじゃなく、ja_JP.eucJPだったりとかすると、ちゃんと判別しててもカーソル移動がシングルバイトになったりとか…(2004/03/25)

OpenBSDのports(2002/09/03)

OpenBSDでXなしのmakeをする場合は、env FLAVOR="no_x11" makeなどとするようだ。
tcshなど静的リンクで作りたい場合はFLAVOR="static"とする。
各ディレクトリのpkg/DESCRに使用できるflavorsが書かれている。

portupgrade関連のメモ(2002/08/30)

portversionで正しくない表示がされる場合pkg_versionも確認する。
そのとき表示が違えば、portsのINDEXを作り直さなければならない。
portsdb -uU とすると、INDEXとINDEX.dbを再構築してくれる。とても時間がかかる。

pkg_deinstallは、pkg_deleteと違って依存関係も含めて消してくれる。

portinstallは、名前はわかるけどディレクトリを見つけられないものでもインストールしてくれる。

portsclean -Cですべてのportsをmake clean状態に。portclean -Dで現バージョンでは使用しないdistfilesを削除してくれる。

FreeBSDのOpenSSHを置き換える(2002/07/07)

FreeBSDのreleaseの場合は、標準のOpenSSHがちょっと前のものなので、安心なバージョンにしたい。

portsで入れて、/etc/rc.confでopenssh=noでもいいんだけど、同じものが二つあると、どっちが動いてるかもわかんないし、危ないのを残したくない。という人もいると思う。
というわけで、普通に上書きする方法もあるが、もっと安心にportsから置き換えが可能なことが判明。

/usr/ports/security/openssh-portable
これはOpenBSD以外への移植向けのOpenSSHだ。portableってのは移植版ってことね。
opensshってディレクトリのは、そのOpenBSD向けをそのまま使うもののようなので、portableってのを使ったほうがいいと思う。

# make WITH_OPENSSL=yes OPENSSH_OVERWRITE_BASE=yes
とすると、/usr/local/sbin/sshdではなく/usr/sbin/sshdとして作成される。

(2002/07/24追記)portsが新しくなったときは
# portupgrade -m "WITH_OPENSSL=yes OPENSSH_OVERWRITE_BASE=yes" openssh-overwrite-base

NetBSDでもJapanized ls(2002/06/24)

FreeBSDにはjlsというportsがあって、日本語文字のコードが混ざっていてもちゃんとリストしてくれる。
ls | nkf でもかまわないという気がしないでもないが、共有用ディレクトリになると、ひとつのディレクトリにShift-JISとCAPが混在しているときがある。
こうなると、ファイル単位でデコードしてもらわなければならない。
しかも、FreeBSDのjlsは標準でCAPのデコードにも対応しているのだから、NetBSDでも使いたいことがある。

そういうわけで、FreeBSDのportsの中から、jls-0.4.tar.gzをもってきてmakeれっつごー。
いきなりエラーです。いくつかdefineされてないようで、その行を削るか自前でdefineしてしまえばいいのか。どうせNetBSDじゃ使わない部分だろう。あとはcharがconstじゃないとダメなところがある? それでもダメなところは、NetBSD標準のls.cを参照だ!

というわけで、できました。NetBSD-1.5.2のi386とsparcで確認してます。パッチ置いときます

portsでX非依存で入れたい(2002/02/01)

portsやなんかで、いれようと思ったツールが、かってにXのライブラリまでいれちゃうことがあって、ports使わずに入れてた。
どうやら、「make install clean WITHOUT_X11=yes」などとWITHOUT_X11を明記すると回避できるらしい。
さらに、WITHOUT_X11=yesってのは/etc/make.confに書いておけばいいとか。
portsもいろいろ作法?があるんですねえ。

バージョンアップは消してから入れるとか、納得のいかないところがあって、いままであまりportsを使ったことがなかったけど、vim6だとかjlessといった、すごい数のパッチを当てながらmakeってのがmake install一発ですんじゃうので、とっても楽です。
気づいてませんでした。

FreeBSDのports(2002/01/31)

portsのバージョンを管理するというか、バージョンアップ支援のportsが増えているようだ。
sysutils/portupgradeがそれ。
portupgrade hogeで、hogeがバージョンアップできる。
portversionとすると、現在のバージョンを、ローカルのportsツリーと比較して、<とか=とかで表示してくれる。
これは便利だ。というか、これでportsを使う気になってきた。

(2002/07/22追記)portupgrade -R 〜で依存関係も含めてバージョンアップ可能

dnscacheとtinydnsの共存(djbdns)(2002/01/25)

  • LAN内のホストの名前はtinydnsが答える
  • LANからの質問には答える
  • LANのIPは192.168.3.xで、このdjbdnsを起動するホストは192.168.3.2。ローカルドメインはangels.home
という条件のもと、dnscacheを192.168.3.x向けに。tinydnsを127.0.0.1向けに起動する。
$DNSSERVICE/dnscache/root/ip/に、192.168.3というファイルを置く。
$DNSSERVICE/dnscache/root/servers/に、tinydnsに向ける情報を置く。
具体的には
# setenv DNSSERVICE /service # touch $DNSSERVICE/dnscache/root/ip/192.168.3 # echo 127.0.0.1 > $DNSSERVICE/dnscache/root/servers/3.168.192.in-addr.arpa # echo 127.0.0.1 > $DNSSERVICE/dnscache/root/servers/angels.home # echo 127.0.0.1 > $DNSSERVICE/dnscache/root/servers/1.0.0.127.in-addr.arpa # unsetenv DNSSERVICE
詳細なやりかたはdjbdnsのマニュアル参照。

NetBSDのバージョンアップ(2002/01/12)

gnusrc.tgz,sharesrc.tgz,src.tgz,syssrc.tgzをすべて/usr/src以下に展開し、make build
とりあえずカーネルだけならsyssrc.tgzもってきて普通にmakeでも可

Ultra1にBSDをCDからインストールする(2002/01/11)

Ultra1/model140でフロッピードライブなし、NFSサーバもなし。
それでも、なんとかしてBSDをインストールしたい。
CDは東芝の5401ってのが余ってるので付けることは可能。

NetBSD/sparc64のCDがブートに対応していなかったので、いろいろと調べると、SunOSかLinuxしかダメっぽいとあきらめていたが、なんとOpenBSD3.0はCDからのブート、インストールに対応しているらしい。 そこで、OpenBSD/sparc64のファイルをすべてftpからゲットして、ブータブル形式で焼きこむことにした。 最近のmkisofsはsparcのブート用のセッティングまでできるらしい。 -Bでsun4,sun4c,sun4m,sun4d,sun4eで並べるらしい。が、sun4uも大丈夫なのかどうか。
ss10> mkisofs -B floppy30.fs,floppy30.fs,floppy30.fs,floppy30.fs,floppy30.fs \ -d -L -N -o ./openbsd30sparc64.iso -r -T -v -V "OPENBSD30" sparc64/
できたisoイメージをWindowsのNeroで焼いてみた。 ちゃんと起動するようなので、ひとまず安心。 ここまでの作業で気づいたが、実はフロッピーイメージを書き込んでいるだけのようなので、実はNetBSDもできるんではないか?
とも思ったけど、NetBSD/sparc64にある問題は、フロッピーからのブートだからムリか。

minirootを書き込んでみたけど、起動する!
でも起動時にdbに落ちる。そういう不具合なわけか。あきらめてOpenBSDでいっとこう。
…OpenBSDも、起動はするけど、mount_cd9660がない…けっきょくFTPインストールかい!
CDからブートができるだけでも、目的達成なわけで、ぜんぜんOKだけど。(2002/01/13)

OpenBSDでfloppy.fsのかわりにminiroot31.fsを書き込んだら、CDからのインストールもできた。
sparc64/として書き込まずに、/3.1/sparc64になるように書き込むのがデフォルトらしい。(2002/08/26)

Ultra1用の最終的な手順はこうなった。
mkisofs -B 3.2/sparc64/floppy32.fs,3.2/sparc64/floppy32.fs,\ 3.2/sparc64/floppy32.fs,3.2/sparc64/floppy32.fs,3.2/sparc64/floppy32.fs \ -d -L -N -o ../openbsd32sparc64.iso -r -T -v -V "OPENBSD32" .
(2003/01/28)