OpenBSD 2.3(sparc)の使いかた 〜悪魔使いになる方法〜
Copyright(C)1998 by Yamamoto Takanori.<tatyana@miko.org>
All Rights Reserved.
最終履歴 1998/08/20, (随時更新)
>>> 個人的な非商用目的または学術利用に限り、閲覧を許可します <<<
| 最新情報 |
1998/5/21〜
|
| 1998/5/19 ・矢羽々(やはば)さんのページ「Life with BSD」からリンクされました。個人的な備忘録のつもりで書いてますので、見栄えが悪いのは大目に見てくださいね。 |
| Anonymous FTP Server のお知らせ ・ここで紹介しているフリーソフトウェアの殆どは、
ftp://azusa.miko.org/ にも登録しています。 |
=== Contents ==================
1. インストール編
2. 基本操作編
3. ソフトウェアのインストール
〜シェル・ファイラ・テキストビュア〜
〜漢字フィルタ〜
〜アーカイバ・ファイルコンプレッサ〜
〜テキストエディタ〜
〜基本開発環境〜
〜基本ネットワーク関連ソフト〜
〜FTP 関連〜
〜HTTP 関連〜
〜Proxy 関連〜
〜SMTP/POP 関連〜
〜X11 関連〜
〜MIDI 関連〜
〜暗号・セキュリティ〜
〜GhostScript〜
〜TeX〜
〜WindowsNetwork 関連〜
〜Web Browser 関連〜
〜ゲーム〜
=====================================
OpenBSD をインストールするには、大きく分けて以下のような方法があります。
CD-ROM は購入する必要がありますし、ネットブートは設定が面倒なので、ここではフロッピーからインストールすることにします。本体にフロッピードライブが付いていないマシンの場合は、CD-ROM を別途入手するか、ネットブートの設定を頑張ってね。(^-^;
インストール用のフロッピーを作成するには、まずフロッピーのイメージファイルを FTP で入手して、UNIX 上から
# dd if=floppy23.fs of=/dev/rfd0c bs=36b
と実行すると、イメージファイルをフロッピーに書き込むことができます。(フロッピーはフォーマットされている必要があるかもしれません。フロッピーのフォーマットについては、ディスクのフォーマットの項を参照してください)
終わったら、
# eject fd0
で、フロッピーを取り出すことができます。
インストール用のフロッピーには2系統あります。
前者はより新しく、あまりテストされていないとのことですが、本稿では前者によるインストール手順に基づいて解説します。(後者で試して失敗しました…。謎です…。(;_;))
ブートフロッピーが作成できたら、
# shutdown -h now
にてコマンドモードに移り、
boot floppy
でフロッピーからブートを行ないます。(new command mode の場合)
[I]nstall を選んで、新規インストールを行ないます。
インストール先は、内臓 420MB ハードディスク(sd1)とします。
ラベルエディタが起動しますので、適当に設定してやります。
| 簡単なコマンド一覧 |
| >p … 状況表示 >d a … a を初期化 >a a … fs 登録 >q … セーブして終了 |
私の環境では、下記のように設定を行ないました。
| size | offset | fstype | [fsize | bsize | cpg] | ||
| a | 746640 | 0 | 4.2BSD | 1024 | 8192 | 16 | #(Cyl. 0-1036) |
| b | 82080 | 746640 | swap | #(Cyl. 1037-1150) | |||
| c | 828740 | 0 | unused | 0 | 0 | #(Cyl. 0-1150) |
ファイルシステムの登録後、適当に質問に答えていくと、ファイルシステムが作成されます。
ネットワークの設定に移ります。とりあえず以下の設定になりました。
| システムホストネーム | yuugao |
| DNSドメインネーム | nmt.ne.jp |
| ネットワークインターフェース | le0 |
| IPアドレス | 210.160.56.221 |
| シンボリックネーム | yuugao |
| ネットマスク | 255.255.255.224 |
| リンクレイヤディレクティブ | -link0 link1 |
| デフォルトルート | 210.160.56.193 |
| プライマリNS | 210.160.55.1 |
※リンクレイヤディレクティブは、ネットワークインターフェースがAUIの場合「-link0 link1」、UTPの場合「link0 -link1」にて動作すると思われます。
ここでイニシャルパスワード(ルートのパスワード)を聞かれますので、適当に答えます。
インストールは、FTP 経由で行ないます。ftp.jp.openbsd.org の場合、サーバディレクトリは「pub/OpenBSD/2.2/sparc」では動きませんので注意してください。
| インストールフロム | (f)tp |
| FTPプロクシ | none |
| アクティブFTP | n |
| サーバアドレス | ftp.jp.openbsd.org |
| サーバディレクトリ | pub/OpenBSD/2.3/sparc |
| ログイン | anonymous |
インストールするファイルは、とりあえず全部選んでおきましょう。
| 展開後サイズ | zipped | ||
| base23 | 39.7M | 12.7M | 必須 |
| etc23 | 510k | 97k | 必須 |
| comp23 | 27.4M | 8.2M | コンパイラツール |
| game23 | 6.9M | 2.8M | ゲーム |
| man23 | 9.2M | 2.4M | マニュアル |
| misc23 | 5.9M | 1.7M | 雑多なもの |
| text23 | 3.7M | 994k | テキスト処理システム |
| xbase23 | ベースX(プログラム・ヘッダ・設定ファイル) | ||
| xfont23 | Xフォント | ||
| xserv23 | Xサーバ |
各ファイルのダウンロード・展開が終われば、タイムゾーンの設定に移ります。GMT(グリニッジ標準時)ではなくJapan(日本標準時)を選択しておきましょう。
以上で終わりです。
| CONGRATULATIONS! You have successfully installed OpenBSD! To boot the installed system, enter halt at the command prompt. Once the system has halted, reset the machine and boot from the disk. |
と表示されるので、
# halt
としてシステムを停止させます。
ok eject
でフロッピーを取り出した後、
ok boot
として再起動させてみましょう。
OpenBSD が、うまく起動したらおめでとう。:)
アップグレード
OpenBSD 2.2 からのアップグレードを行ないます。OpenBSD 2.3 の配布セットは、アップグレード処理中にFTPにてダウンロードすることにします。
セットアッププログラムをフロッピーより起動後、[U]pgrade を選択して、アップグレードプログラムを実行します。
インストール先は、内臓 420MB ハードディスク(sd0)とします。
このあと、「ネットワーク」「ファイルシステム」等の設定に関する質問が続きますが、基本的にリターンキーを押すだけ(=デフォルト値)で済みます。
「Are the upgrade sets on one of your normally mounted (local) filesystems?」と聞かれたら、「n」と答え、「Install from (f)tp」を選択します。
| インストールフロム | (f)tp |
| FTPプロクシ | none |
| アクティブFTP | n |
| サーバアドレス | athena.nmt.ne.jp |
| サーバディレクトリ | OpenBSD/2.3/sparc |
| ログイン | anonymous |
インストールするファイルは、とりあえず全部(all)選んでおきましょう。
各ファイルのダウンロード・展開が終われば、タイムゾーンの設定に移ります。Japan を選択しておきましょう。
以上で終わりです。
| CONGRATULATIONS! You have successfully upgraded OpenBSD! To boot the installed system, enter halt at the command prompt. Once the system has halted, reset the machine and boot from the disk. |
と表示されるので、
# halt
としてシステムを停止させます。
ok eject
でフロッピーを取り出した後、
ok boot
として再起動させてみましょう。
OpenBSD が、うまく起動したらおめでとう。:)
※/host の /usr/host へのリンクなどが初期化されているので注意しましょう。
ok printenv にて、システムの環境変数が参照できます。このなかの、「boot-file」「boot-device」を変更することで、ブート元を変えることができます。
sd0 , target0, partition0 にあるカーネル bsd を起動させる場合には、
setenv boot-file bsd
setenv boot-device /sbus/esp@0,800000/sd@0,0
と設定します。
(「setenv boot-device disk0」などと設定しても良いかも。)
フロッピーディスクの場合は、以下のコマンドで行ないます。
# fdformat fd0
ハードディスクの場合は、対話的にディスクラベルを作成してから、newfs を行ないます。
# disklabel -E sd0
# newfs sd1a
初回のブート終了後、コンソールから root でログインします。
「man afterboot」にて表示される説明に従い、システムの設定をチェックしていきましょう。
adduser というコマンドを用いて登録する方法もあるのですが、ここでは、よりプリミティブに攻めてみましょう。:)
mv /home /usr/home
ln -s /usr/home /home
/etc/group に「nmtusers:*:1000:」を付け加え、「wheel:*:0:root,yama」を加える。
# vipw にて、「yama:*:1000:1000::0:0:Yamamoto:/home/yama:/bin/csh」を付け加える。
# passwd yama にて、パスワードを登録する。
# mkdir /home/yama
# chown yama.nmtusers /home/yama にて、ホームディレクトリを作成・設定。
※「:」→「SHIFT + ;」
※「*」→「SHIFT + 8」
セカンダリNS等を設定しておきましょう。
| /etc/resolv.conf |
| domain nmt.ne.jp nameserver 210.160.55.1 nameserver 210.160.55.2 search nmt.ne.jp lookup file bind |
環境に合わせ、適宜、不要なデーモンは使わないようにしましょう。
| /etc/inetd.conf |
| #ftp stream tcp nowait root
/usr/libexec/ftpd ftpd -US #shell stream tcp nowait root /usr/libexec/rshd rshd -L #login stream tcp nowait root /usr/libexec/rlogind rlogind #finger stream tcp nowait nobody.nobody /usr/libexec/fingerd
fingerd -ls #comsat dgram udp wait root /usr/libexec/comsat comsat #daytime stream tcp nowait root internal #rstatd/1-3 dgram rpc/udp wait root
/usr/libexec/rpc.rstatd rpc.rstatd |
# kill -HUP (pid_of_inetd)
どんなデバイスが存在するか、まず「dmesg」で調べてみるのも良いかも知れません。
| $ dmesg |
| Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. OpenBSD 2.2 (GENERIC) #112: Thu Oct 30 12:20:14 MST 1997 deraadt@sun4c:/usr/src/sys/arch/sparc/compile/GENERIC real mem = 66760704 avail mem = 60207104 using 200 buffers containing 3334144 bytes of memory bootpath: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@3,0 mainbus0 (root): SUNW,SPARCstation-5 cpu0 at mainbus0: MB86904 @ 110 MHz, on-chip FPU cpu0: 16K instruction (32 b/l), 8K data (16 b/l) cache enabled obio0 at mainbus0 clock0 at obio0 addr 0x71200000: mk48t08 (eeprom) timer0 at obio0 addr 0x71d00000 delay constant 52 zs0 at obio0 addr 0x71100000 pri 12, softpri 6 zs1 at obio0 addr 0x71000000 pri 12, softpri 6 [slavioconfig at obio0] addr 0x71800000 not configured auxreg0 at obio0 addr 0x71900000 power0 at obio0 addr 0x71910000 fdc0 at obio0 addr 0x71400000 pri 11, softpri 4: chip 82077 iommu0 at mainbus0 addr 0x10000000: version 0x4/0x0, page-size 4096, range 64MB sbus0 at iommu0: clock = 22 MHz dma0 at sbus0 slot 5 offset 0x8400000: rev 2 esp0 at dma0 slot 0x5 offset 0x8800000 pri 4: ESP200, 40MHz, SCSI ID 7 scsibus0 at esp0: 8 targets sd0 at scsibus0 targ 0 lun 0: <SEAGATE, ST32550W SUN2.1G, 0416> SCSI2 0/direct fixed sd0: 2048MB, 3511 cyl, 11 head, 108 sec, 512 bytes/sec, 4194995 sec total sd1 at scsibus0 targ 1 lun 0: <SEAGATE, ST32550N SUN2.1G, 0416> SCSI2 0/direct fixed sd1: 2048MB, 3511 cyl, 11 head, 108 sec, 512 bytes/sec, 4194995 sec total sd2 at scsibus0 targ 2 lun 0: <SEAGATE, ST32550N SUN2.1G, 0416> SCSI2 0/direct fixed sd2: 2048MB, 3511 cyl, 11 head, 108 sec, 512 bytes/sec, 4194995 sec total sd3 at scsibus0 targ 3 lun 0: <SEAGATE, ST32430W SUN2.1G, 0666> SCSI2 0/direct fixed sd3: 2049MB, 3992 cyl, 9 head, 116 sec, 512 bytes/sec, 4197405 sec total cd0 at scsibus0 targ 6 lun 0: <TOSHIBA, XM-5401TASUN4XCD, 1036> SCSI2 5/cdrom removable SUNW,bpp at sbus0 slot 5 offset 0xc800000 not configured ledma0 at sbus0 slot 5 offset 0x8400010: rev 2 le0 at ledma0 slot 0x5 offset 0x8c00000 pri 6: address 08:00:20:7d:b6:d3 le0: 8 receive buffers, 2 transmit buffers SUNW,CS4231 at sbus0 slot 4 offset 0xc000000 not configured power-management at sbus0 slot 4 offset 0xa000000 not configured SUNW,hme at sbus0 slot 2 offset 0x8c00000 not configured SUNW,fas at sbus0 slot 2 offset 0x8800000 not configured cgsix0 at sbus0 slot 3 offset 0x0: SUNW,501-2325, 1152 x 900, rev 11 (console) cgsix0: attached to /dev/fb root on sd3a rootdev=0x730 rrootdev=0x1130 rawdev=0x1132 |
# cd /usr/src
# zcat srcsys.tar.gz | tar xvf -
# cd sys/arch/sparc/conf
# cp GENERIC YUUGAO
| /usr/src/sys/arch/sparc/conf/YUUGAO |
| 適宜修正を加える。 |
# config YUUGAO
# cd ../compile/YUUGAO
# make depend
# make
# cp /bsd /bsd.old
# cp bsd /bsd
何かしら失敗して、システムが立ち上がらなくなってしまったら、古いカーネルでシステムを起動したのち、修正をおこないます。
ok boot disk bsd.old
make world
# rm -R /usr/src
# mkdir /usr/src
# chown root.wsrc /usr/src
# chmod 776 /usr/src
# cd /usr/src
# zcat ~/src.tar.gz | tar zvf -
# zcat ~/srcsys.tar.gz | tar zvf -
# make build
#
(失敗…うーみゅ。)
ccdとは、concatenated disk devices、いわゆる「ソフトウェアRAID」を実現する為の機構ですが、現行下では、それほどインテリジェンスではありません(RAID 0/1 のみ。オートリカバリ等の機能は無い)ので、トラブル発生時には相応の技術力が必要となるでしょう。また、ソフトウェアRAIDの限界として、ドライブのホットスワップ等には今後とも対応できないと思われます。ccdの利用については、これらの制限をよく理解した上で行なう必要があるかと思います。
利用するには、カーネルコンフィグにて、以下の設定が加えられている必要があります。この例では、4台のドライブまでccdとして利用可能ということです。
例)pseudo-device ccd 4 # concatenated disk devices
ccdデバイスは、/dev/{,r}ccd* という名称になります。
ccdを設定するには、動的設定ユーティリティ「ccdconfig」を使います。
例)ccdconfig ccd0 32 0 /dev/sd2e /dev/sd3e /dev/sd4e /dev/sd5e
この例では、「ccd0」は「/dev/sd2e /dev/sd3e /dev/sd4e /dev/sd5e」という4つの要素から構成されるディスクとなり、インターリーブは32ブロックに設定されます
インターリーブは、リードに最適化するなら16、ライトに最適化するなら512等、より大きな数を指定します。
当然ですが、各要素は事前に用意されている必要があります。要素をそれぞれ
disklabel にて作成しておきましょう。
また、各要素は、ディスクの先頭のパーティションであってはなりません。("don't
use a partition that starts at a beginning of the slice".)
詳しくは、 ftp://stampede.cs.berkeley.edu/pub/ccd/ccd-960131.README
を参照してください。
# ccdconfig ccd0 16 0 /dev/sd4d /dev/sd2d /dev/sd1d /dev/sd0d
# disklabel ccd0
# newfs /dev/rccd0c
# mount /dev/ccd0c /mnt
# umount /mnt
# ccdconfig -u ccd0
ccdを、ブート時にファイルシステムに組み込むようにします。
| /etc/ccd.conf |
| ccd0 16 0 /dev/sd4d /dev/sd2d /dev/sd1d /dev/sd0d |
| /etc/fstab |
| /dev/ccd0c /ccd0 ffs rw 1 1 |
# mkdir /ccd0
# reboot
※2Gx3で6GBのCCDを構築後、2Gx4に増設して再構築しても、CCDを6GBと誤認識される場合がありました。注意しましょう。
※標準では、sd0〜sd4 までのデバイスが用意されています。sd5
を利用する場合、/dev にてデバイスを作成(./MAKEDEV sd5)する必要があります。
| /etc/hostname.le0 |
| inet asuka 255.255.255.0 210.160.55.255 link0 -link1 |
「inet」「インターフェースに対応するサーバ名」「ネットマスク」「ブロードキャストアドレス」「インクレイヤディレクティブ」
| /etc/hosts |
| 127.0.0.1 localhost 210.160.55.27 asuka asuka.nmt.ne.jp |
「IPアドレス」「サーバ名」「サーバ名(ドメイン付き)」
| /etc/myname |
| asuka |
ネットワークに合わせて、「/etc/resolv.conf」「/etc/mygate」等も必要ならば適宜変更します。
その他サーバプログラムの設定ファイルも必要に応じ書きかえます。
(Ex.「/etc/ftpaccess」)
| /etc/rc |
| # if [ -x /usr/sbin/screenblank ]; then # echo -n ' screenblank'; /usr/sbin/screenblank # fi |
screenblank を使いたくない場合は、起動させないようにしましょう。
# dump -0ua -f /dev/rst0 /
0 … レベル0「フルダンプ」
u … ダンプを取った日付を記録する
a … テープ長の指定「オートサイズ」
f … ダンプ先ファイルの指定「/dev/rst0」
ダンプ源 …
マウントされているファイルシステムならパス名を、マウントされていなければデバイス名を使用。
| ダンプの例(DDS1テープにバックアップした場合) |
| root@nike# dump -0ua -f /dev/rst0 / DUMP: Date of this level 0 dump: Wed Jan 28 18:42:24 1998 DUMP: Date of last level 0 dump: the epoch DUMP: Dumping /dev/rsd3a (/) to /dev/rst0 DUMP: mapping (Pass I) [regular files] DUMP: mapping (Pass II) [directories] DUMP: estimated 325316 tape blocks. DUMP: Volume 1 started at: Wed Jan 28 18:42:51 1998 DUMP: dumping (Pass III) [directories] DUMP: dumping (Pass IV) [regular files] DUMP: 32.24% done, finished in 0:10 DUMP: 68.57% done, finished in 0:04 DUMP: 325954 tape blocks on 1 volume DUMP: Volume 1 completed at: Wed Jan 28 18:57:12 1998 DUMP: Volume 1 took 0:14:21 DUMP: Volume 1 transfer rate: 378 KB/s DUMP: Date of this level 0 dump: Wed Jan 28 18:42:24 1998 DUMP: Date this dump completed: Wed Jan 28 18:57:12 1998 DUMP: Average transfer rate: 378 KB/s DUMP: level 0 dump on Wed Jan 28 18:42:24 1998 DUMP: Closing /dev/rst0 DUMP: DUMP IS DONE |
# newfs /dev/rsd0e
# mount /dev/sd0e /mnt
# cd /mnt
# restore -rv -f /dev/rst0
r…リストア
v…状況表示あり
f…リストア源ファイルの指定「/dev/rst0」
| リストアの例 |
| root@nike# mount /dev/ccd0c /mnt root@nike# cd /mnt root@nike# restore -rv -f /dev/rst0 Verify tape and initialize maps Tape block size is 10 Dump date: Wed Jan 28 18:42:24 1998 Dumped from: the epoch Level 0 dump of / on nike:/dev/sd3a Label: none Begin level 0 restore Initialize symbol table. Extract directories from tape Calculate extraction list. Make node … Make node … Make node … Create hard link … |
そのほか、対話的に操作が可能な「i」オプション等があります。
# restore if foo.dmp
【サーバ側の設定】
・NFSをサポートしたカーネルを構築します。
・「rc.conf」にて、NFS Server としてブートするように設定します。(mountd, nfsd(, rpc.lockd))
| /etc/rc.conf |
| # nfs_server=NO nfs_server=YES |
・エクスポートするファイルシステムの設定をおこなう。
| /etc/exports |
| ファイルシステム「/ccd0」、アクセス権限ユーザ=「nfsuser」、ホスト「nfschild」
に対し公開する場合。 /ccd0 -maproot=nfsuser nfschild ファイルシステム「/ccd0」、アクセス権限ユーザ=「nfsuser」、ホスト「210.160.55.x」
に対し公開する場合。 |
※存在しないホスト名を書くと、万人に対し公開を許してしまう。
※外部 DNS を信頼する場合、注意。DNS ZONE DATA
をを改ざんされると危険。
※IP アドレスで設定するほうが安全。IP
スプーフィング(偽装)に注意。(Ref. "NIS&NFS" Section8.3)
※最も簡単・確実な手段は、ファイルを暗号化することだと思われる。
【クライアント側の設定】
・「rc.conf」にて、NFS Client としてブートするように設定します。(nfsiod)
| /etc/rc.conf |
| # nfs_client=NO nfs_client=YES |
手動マウントの場合、
# mount -t nfs -o nosuid -o -T nfsparent:/ccd0 /mnt
nosuid。TCPによる通信。マウント元は nfsparent の /ccd0。マウント先は
/mnt。
参考)http://www.jp.freebsd.org/www.freebsd.org/ja_JP.EUC/handbook/nfs.html
※NFS(Network File System)は、NFS(Network Failure System)という異名もあるとおり、面倒なトラブル・セキュリティホールの引き金ともなります。最初から使わないようにするか、使う場合には細心の注意をもっておこないましょう。
リミッタとは、シェルにより定められる「システムリソースの利用できる上限」のことであり、ハードリミットとソフトリミットとがあります。ソフトリミットはハードリミットを越えて設定することは出来ず、ハードリミットを増加させることはスーパーユーザの特権となります。
| ハードリミットの状態表示 |
| # ulimit -H -a time(cpu-seconds) unlimited file(blocks) unlimited coredump(blocks) unlimited data(kbytes) 65536 stack(kbytes) 65536 lockedmem(kbytes) 28508 memory(kbytes) 28508 nofiles(descriptors) 892 processes unlimited |
| ソフトリミットの状態表示 |
| # ulimit -S -a time(cpu-seconds) unlimited file(blocks) unlimited coredump(blocks) unlimited data(kbytes) 16384 stack(kbytes) 512 lockedmem(kbytes) 9502 memory(kbytes) 28504 nofiles(descriptors) 64 processes 80 |
OpenBSD の場合、リミッタの設定が少々厳しい傾向がありますので、大掛かりなプログラムを実行するような時には、リミッタを増大させる必要があるかも知れません。
| リミッタの緩和 |
| ulimit -d 65536 ulimit -s 65536 ulimit -l 28508 ulimit -m 28508 ulimit -n 892 ulimit -p unlimited ulimit -a > /tmp/ulimit.log |
Security Advisories
OpenBSD 2.3 に関する勧告。これらの問題は全て OpenBSD-current にて解決済みです。
パッチの当て方については、パッチの中にある記述等を参照してください。
(Ex.)
# cd /usr/src/sys/vm
# patch -p0 < ~/immutable.patch
# cd /
# tar xvfzp ~/Xawfix.tgz
# cd /usr/src/sys/netinet
# patch -p0 < ~/ipsec.patch
# cd /usr/src/sys/kern
# patch -p0 < ~/kill.patch
OpenBSD/sparc では、なぜか 2.02 が「bus error」のため動きません。(2.01.1 を代用可能)
% zcat bash-2.02.tar.gz | tar xvf -
% cd bash-2.02
% ./configure
% make
% make tests ←必要ならば
% su
# make install
【インストールされるファイル】
/usr/local/bin/bash
/usr/local/bin/bashbug
/usr/local/man/man1/bash.1
/usr/local/man/man1/bashbug.1
/usr/local/info/bash.info
root も bash を利用する場合、かつ /usr/local/bin がルートとは別個のパーティションに存在する場合、シェルのあるパーティションがマウント失敗したときのことを考えて、ルートパーティションと同一の /bin 配下にシェルをコピーしておくのが無難かもしれません。(もちろん、しなくても良い)
# mv /usr/local/bin/bash /bin/bash
# ln -s /bin/bash /usr/local/bin/bash
ホームディレクトリに、bash のリソースファイル「.bashrc」を作ります。
| .bashrc |
| # $Id: dot.profile,v 1.10.2.1
1997/03/06 22:27:37 joerg Exp $ # alias h="history 25" alias j="jobs -l" alias la="ls -a" alias lf="ls -FA" alias ll="ls -lA" export PATH="/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin:." export MANPATH="/usr/local/lib/perl5/man:/usr/local/man/ja_JP.EUC:/usr/local/man:/usr/man:/usr/share/man:/usr/X11R6/man" export LANG=ja_JP.EUC export JLESSCHARSET=japanese-euc export EDITOR=mule export PAGER=less export BLOCKSIZE=K #export LD_PRELOAD=/usr/lib/libxpg4.so.2.0 #export XNLSPATH=/usr/local/netscape/nls export PS1="\u@\h\\$ " # A righteous umask umask 22 stty crt erase ^h #if ($?prompt) then # # An interactive shell -- set some stuff up # set filec # set history = 100 # set savehist = 100 # set mail = (/var/mail/$USER) #endif |
「% ln -s .bashrc .bash_profile」にて、シンボリックリンクを張っておきます。
「# echo /bin/bash >> /etc/shells」にて、/etc/shells に bash を追加します。
「% chpass -s /bin/bash」にてログインシェルを変更します。
bash のバージョンチェックは、「$ bash -version」にて行なえます。
$ zcat FD-1.03g.tar.gz | tar xvf -
$ cd FD-1.03g
$ make config
$ make
$ cp _fdrc fdrc
| fdrc |
| SORTTYPE = 1 DISPLAYMODE = 3 SORTTREE = 1 PAGER = less |
$ su
# make install
【インストールされるファイル】
/etc/fdrc
/usr/local/bin/fd
/usr/local/bin/fd-unicd.tbl
/usr/local/man/man1/fd.1
ファイルのオーナーとグループを、root/wheel に直しておきましょう。
$ chown root.wheel /etc/fdrc
$ chown root.wheel /usr/local/bin/fd
$ chown root.wheel /usr/local/bin/fd-unicd.tbl
$ chown root.wheel /usr/local/man/man1/fd.1
$ zcat less-332.tar.gz | tar xvf -
$ cd less-332
$ zcat ../less-332-iso241.patch.gz | patch
$ zcat ../less-332-iso241-242.patch.gz | patch
$ sh configure
$ make
$ su
# make install
【インストールされるファイル】
/usr/local/man/man1
/usr/local/bin/less
/usr/local/bin/lesskey
/usr/local/bin/lessecho
/usr/local/man/man1/less.1
/usr/local/man/man1/lesskey.1
less のバージョンチェックは、「$ less -V」にて行なえます。
for FreeBSD
$ zcat mule-2.3.tar.gz | tar xvf -
$ cd mule
$ ./configure --terminal-face i386-unknown-freebsd
$ make
$ su
# make install
残念ながら、OpenBSD では mule のコンパイルが通らないので、emacs を代用します。
$ zcat emacs-20.2.tar.gz | tar xvf -
$ zcat leim-20.2.tar.gz | tar xvf -
$ cd emacs-20.2
$ ./configure --with-x-toolkit=athena ← X
を使わないなら --with-x-toolkit〜 は不要
[sparc-unknown-openbsd2.3]として認識されます。
$ make
$ su
# make install
【インストールされるファイル】
/usr/local/share/emacs 配下
/usr/local/info 配下
/usr/local/libexec/emacs 配下
/usr/local/man/man1/ctags.1
/usr/local/man/man1/emacs.1
/usr/local/man/man1/etags.1
/usr/local/bin/b2m
/usr/local/bin/ctags
/usr/local/bin/emacs
/usr/local/bin/emacs-20.2
/usr/local/bin/emacsclient
/usr/local/bin/etags
/usr/local/bin/rcs-checkin
emacs を mule というコマンド名でも起動できるように、シンボリックリンクを張っておきましょう。(もちろん、しなくても良い)
# ln -s /usr/local/bin/emacs /usr/local/bin/mule
~/.emacs を設定します。
| ~/.emacs |
| (set-language-environment "Japanese") (set-default-font "-*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard") |
参考)http://www.kdel.info.eng.osaka-cu.ac.jp/~miya/Install/FreeBSD/emacs.html
α. SKK 9.6 on Mule 19.28
$ zcat skk9.6.tar.gz | tar xvf -
$ cd skk-9.6
$ ./condifure
| Makefile |
| #datadir = ${prefix}/share datadir = ${prefix}/lib #EMACS = emacs EMACS = mule #ELISPDIR = $(datadir)/emacs/site-lisp ELISPDIR = $(datadir)/mule/site-lisp |
| etc/Makefile |
| #datadir = ${prefix}/share datadir = ${prefix}/lib |
| lisp/Makefile |
| #datadir = ${prefix}/share datadir = ${prefix}/lib #EMACS = emacs EMACS = mule #ELISPDIR = $(datadir)/emacs/site-lisp ELISPDIR = $(datadir)/mule/site-lisp |
| skkserv/Makefile |
| #datadir = ${prefix}/share datadir = ${prefix}/lib |
| lisp/skk-tut.el |
| ;; (defvar skk-tut-file
"/usr/local/share/skk/SKK.tut" (defvar skk-tut-file "/usr/local/lib/skk/SKK.tut" |
$ make
$ su
# make install
【インストールされるファイル】
/usr/local/lib/mule/site-lisp 配下
/usr/local/libexec/skkserv
/usr/local/bin/skkdic-expr
/usr/local/bin/skkdic-sort
/usr/local/bin/skkdic-count
/usr/local/info/ 配下
/usr/local/lib/skk/SKK.tut
/usr/local/lib/skk/SKK.tut.E
/usr/local/lib/skk/SKK-JISYO.L
β. SKK 10.39 on Emacs 20.2
$ zcat skk10.39.tar.gz | tar xvf -
$ cd skk-10
$ ./configure
$ make
$ su
# make install
【インストールされるファイル】
/usr/local/share/emacs/site-lisp 配下
/usr/local/libexec/skkserv
/usr/local/bin/skkdic-expr
/usr/local/bin/skkdic-sort
/usr/local/bin/skkdic-count
/usr/local/info/ 配下
/usr/local/share/skk/SKK.tut
/usr/local/share/skk/SKK.tut.E
/usr/local/share/skk/SKK-JISYO.L
αβ共通
| ~/.emacs |
| 以下の内容を追加。 (global-set-key "\C-x\C-j"
'skk-mode) |
| ~/.skk |
| 以下の内容を追加。サーバホストは skkserv
を動かしているサーバ名。 (setq skk-server-host
"skkserv.nmt.ne.jp") |
emacs を X 上で起動し、「C-x t」と入力すると、チュートリアルが始まります。
$ zcat perl5.005_01.tar.gz | tar xvf -
$ cd perl5.005_01
$ ./Configure -d
本来は「Makefile」中の「libs = -lm -lc」を「libs = -lxpg4 -lm -lc」と書き換えるところですが、OpenBSD には libxpg4 が無いので、そのまま置いておきます。
$ make
libxpg4 をリンクしない場合、ロケールの解決に失敗します。これは環境変数 LC_ALL に C を設定することで、とりあえず回避できます。
$ export LC_ALL=C
$ make test ←「All tests successful.」と表示されることを確認
$ su
# make install
バージョンは「$ perl -v 」で確認できます。
Network Time Protocol Daemon を使って、ネットワーク経由で時刻合わせを行なうようにします。
$ zcat xntp3-5.93-export.tar.gz | tar xvf -
$ cd xntp3-5.93-export
$ ./configure
「config.h」中の「#define HAVE_TIMER_SETTIME 1」をコメントアウトする。
$ make
$ su
# make install
【インストールされるファイル】
/usr/local/bin/ntpdate
/usr/local/bin/ntpq
/usr/local/bin/ntptrace
/usr/local/bin/xntpd
/usr/local/bin/xntpdc
/usr/local/bin/tickadj
/usr/local/bin/ntptime
「/etc/ntp.conf」を設定します。
| /etc/ntp.conf |
| server yamatohime.nmt.ne.jp server azusa.miko.org |
「rc.local」から起動されるよう設定します。
| /etc/rc.local |
| if [ -f /usr/local/bin/xntpd ]; then echo -n ' ntpd'; /usr/local/bin/xntpd fi |
「xntpd」の起動後は、「ntpq -p」コマンドで、デーモンの動作確認が行なえます。
$ zcat make-3.76.1.tar.gz | tar xvf -
$ cd make-3.76.1
$ ./configure
$ make
$ su
# make install
/usr/local/bin/make
/usr/local/info/make.info*
# mv /usr/local/bin/make /usr/local/bin/gmake
$ zcat wu-ftpd-2.6.0.tar.gz | tar xvf -
$ cd wu-ftpd-2.6.0
$ ./configure --prefix=/usr/local
| config.h |
| /* #define MAIL_ADMIN 1 */ #undef MAIL_ADMIN |
| support/ftw.c |
| 先頭行近くに #if defined(__OpenBSD__) ||
defined(__FreeBSD__) |
| src/extensions.c |
| 先頭行近くに #if defined(__OpenBSD__) ||
defined(__FreeBSD__) |
| src/Makefile |
| ftpd: ${OBJS} gcc -g -O2 -I.. -I../support -o $@ ${OBJS} ../support/ftw.o |
$ gmake
$ su
# gmake install
【インストールされるファイル】
/usr/local/sbin/wu.ftpd
/usr/local/bin/ftpshut
/usr/local/bin/ftpcount
/usr/local/bin/ftpwho
/usr/local/man/man8/ftpd.8
/usr/local/man/man1/ftpcount.1
/usr/local/man/man1/ftpwho.1
/usr/local/man/man8/ftpshut.8
/usr/local/man/man5/ftpaccess.5
/usr/local/man/man5/ftphosts.5
/usr/local/man/man5/ftpconversions.5
/usr/local/man/man5/xferlog.5
【インストールされるファイル(2.5.2-academ-beta15)】
/usr/libexec/ftpd -> /usr/libexec/ftpd-old にリネームされる
/usr/libexec/ftpd
/usr/sbin/ftpshut
/usr/sbin/ftpcount
/usr/sbin/ftpwho
/usr/share/man/cat8/ftpd.0
/usr/share/man/cat1/ftpcount.0
/usr/share/man/cat1/ftpwho.0
/usr/share/man/cat8/ftpshut.0
/usr/share/man/cat5/ftpaccess.0
/usr/share/man/cat5/ftphosts.0
/usr/share/man/cat5/ftpconversions.0
/usr/share/man/cat5/xferlog.0
doc/example/中の ftpaccess, ftpconversions, ftpgroups, ftphosts を /etc/ にコピーする。, ftpusers は、既存のものをそのまま使用する。
# cp doc/examples/ftpaccess /etc/
# cp doc/examples/ftpconversions /etc/
# cp doc/examples/ftpgroups /etc/
# cp doc/examples/ftphosts /etc/
| /etc/ftpaccess |
| class all real,guest,anonymous * guestgroup nmtusers #limit all 10 Any /etc/msgs/msg.dead limit all 100 Any /home/ftp/etc/msgs/msg.toomany readme README* login readme README* cwd=* #message /welcome.msg login #message .message cwd=* message /etc/msgs/msg.login login compress yes all tar yes all log commands real,guest,anonymous log transfers real,guest,anonymous inbound,outbound #shutdown /etc/shutmsg #email user@hostname email ftpadmin@yuugao.nmt.ne.jp |
| /etc/ftpconversions |
| :.Z: : :/bin/compress -d -c
%s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS : : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS :.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP : : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP : : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR : : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS : : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP |
| /etc/ftpgroup |
| #test:ENCRYPTED PASSWORD HERE:archive |
| /etc/ftphosts |
| # Example host access file # # Everything after a '#' is treated as comment, # empty lines are ignored # allow bartm somehost.domain # deny fred otherhost.domain 131.211.32.* |
ftpadmin のメールアドレスを作成します。
MTA が sendmail の場合は、「/etc/aliases」に「ftpadmin:root」と追加し、「newaliases」を実行します。
MTA が qmail の場合は、「# echo \&root > /var/qmail/alias/.qmail-ftpadmin」を実行します。
Anonymous FTP 用のディレクトリツリーを作成します。
# mkdir -p /home/ftp/etc/msgs
# mkdir /home/ftp/bin
# mkdir /home/ftp/pub
# cp /bin/ls /home/ftp/bin/ls
bin ディレクトリに tar 等を入れておくと、「get (dir).tar」というコマンドを使うことができるようになるので、サーバの運用ポリシーに従い、適宜加えます。
(compress, tar, gzip, etc...)
# cp /usr/bin/gzip /home/ftp/bin/gzip
# cp /usr/bin/compress /home/ftp/bin/compress
# cp /bin/tar /home/ftp/bin/tar (FreeBSD
の場合は、「# cp /usr/bin/tar /home/ftp/bin/tar」)
| /home/ftp/etc/msgs/msg.login |
| Welcome to Yuugao archive. An unsupported FTP service of New Media Tokushima Co.ltd, Tokushima, Japan. Use entirely at your own risk - no warranty is expressed or inpressed. If you have any problems using this service, please send E-mail to "%E" All transfers are logged with your host name and email address. If you do not like this policy, disconnect now. Local time is %T (GMT+0900). Current number of users [%N / %M]. |
| /home/ftp/etc/msgs/msg.toomany |
| Sorry, there are too many FTP users
using the system at this time. Please try again later. There is currently a limit of %M FTP users. |
タイムゾーン周りの設定を行ないます。これをしないと、AnonymousFTP等、chroot()を伴うアクセス時に、ファイルのタイムスタンプがJSTでなく、GMTで表示されてしまいます。
# mkdir -p /home/ftp/usr/share/zoneinfo
# cp /usr/share/zoneinfo/Japan /home/ftp/usr/share/zoneinfo/Japan
# ln -s /usr/share/zoneinfo/Japan /home/ftp/etc/localtime
(FreeBSD の場合は、「# cp /etc/localtime /home/ftp/etc/localtime」のみ)
Anonymous FTP を許可する場合には、
「/etc/group」に「ftp」「ftpadmin」を加えます。
| /etc/group |
| ftp:*:21: ftpadmin:*:22: |
「vipw」にて「ftp」を加えます。
| # vipw |
| ftp:*:21:21::0:0:AnonymousFTP:/home/ftp:/sbin/nologin ftpadmin:*:22:22::0:0:FTPAdmin:/home/ftp/pub:/bin/sh |
(FreeBSD の場合は、ftp の shell を /nonexistent に設定します)
ftpadmin 宛ての メールをrootに転送します。
MTA が sendmail の場合は、「/etc/aliases」に「ftpadmin:root」と追加し、「newaliases」を実行します。
MTA が qmail の場合は、「# echo \&root > /home/ftp/pub/.qmail
」を実行します。
# chown -R ftpadmin.ftpadmin /home/ftp
# passwd ftpadmin
nmtusers に属するユーザのFTPログイン時、/home に chroot させたい場合、vipw にてホームディレクトリを「/home/./yama」というふうに設定しなおし、/home/bin/ls, /home/etc/msgs/msg.login を用意します。
# mkdir /home/bin
# cp /bin/ls /home/bin/ls
# cp /usr/bin/gzip /home/bin/gzip
# cp /usr/bin/compress /home/bin/compress
# cp /bin/tar /home/bin/tar (FreeBSD
の場合は、「# cp /usr/bin/tar /home/bin/tar」)
# mkdir -p /home/etc/msgs
# mule /home/etc/msgs/msg.login
| /home/etc/msgs/msg.login |
| Welcome to Yuugao archive. If you have any problems using this service, please send E-mail to "%E" Local time is %T (GMT+0900). Current number of users [%N / %M]. |
# mkdir -p /home/usr/share/zoneinfo
# cp /usr/share/zoneinfo/Japan /home/usr/share/zoneinfo/Japan
# ln -s /usr/share/zoneinfo/Japan /home/etc/localtime
(FreeBSD の場合は、「# cp /etc/localtime /home/etc/localtime」のみ)
inetd を利用する場合
| /etc/inetd.conf |
| #ftp stream tcp nowait root /usr/libexec/ftpd ftpd -US ftp stream tcp nowait root /usr/local/sbin/wu.ftpd wu.ftpd -a |
# ps auxw | grep inetd
# kill -HUP (pid)
ucspi-tcp を利用する場合
| /etc/rc.local |
| /usr/local/bin/tcpserver 0 21 /usr/local/sbin/wu.ftpd -a & |
$ su
# zcat ftpmirror-1.2k.tar.gz | tar xvf - -C /usr/local/lib
# cd /usr/local/lib/ftpmirror
「mkdirinfo」「ftpmirror」の一行目を「#!/usr/bin/perl」に変更する。
# cp config/default-sample config/default
config/default を編集する。
| config/default |
| # ftp-pass = ftp-admin@your.domain.name ftp-pass = ftpadmin@yuugao.nmt.ne.jp #unlink
= rename # for OpenBSD |
# su ftpadmin
$ crontab -e
| crontab -e |
| # DO NOT EDIT THIS FILE - edit the master and
reinstall. # (/tmp/crontab.ThiPMo1834 installed on Sat Dec 13 17:52:54 1997) # (Cron version -- $Id: crontab.c,v 1.11 1997/04/12 17:50:17 millert Exp $) # SHELL=/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # #minute hour mday month wday command # 0 18 * * * /usr/local/lib/ftpmirror/ftpmirror OpenBSD |
$ zcat apache_1.3.0.tar.gz | tar xvf -
$ cd apache_1.3.0
$ ./configure --layout
| パスの確認 |
| Configuring for Apache, Version 1.3.0 Installation paths: prefix: /usr/local/apache exec_prefix: /usr/local/apache bindir: /usr/local/apache/bin sbindir: /usr/local/apache/sbin libexecdir: /usr/local/apache/libexec mandir: /usr/local/apache/man sysconfdir: /usr/local/apache/etc datadir: /usr/local/apache/share includedir: /usr/local/apache/include localstatedir: /usr/local/apache/var runtimedir: /usr/local/apache/var/run logfiledir: /usr/local/apache/var/log proxycachedir: /usr/local/apache/var/proxy Compilation paths: HTTPD_ROOT: /usr/local/apache SUEXEC_BIN: /usr/local/apache/sbin/suexec SHARED_CORE_DIR: /usr/local/apache/libexec DEFAULT_PIDLOG: var/run/httpd.pid DEFAULT_SCOREBOARD: var/run/httpd.scoreboard DEFAULT_LOCKFILE: var/run/httpd.lock DEFAULT_XFERLOG: var/log/access_log DEFAULT_ERRORLOG: var/log/error_log TYPES_CONFIG_FILE: etc/mime.types SERVER_CONFIG_FILE: etc/httpd.conf ACCESS_CONFIG_FILE: etc/access.conf RESOURCE_CONFIG_FILE: etc/srm.conf |
$ ./configure --enable-suexec --suexec-caller=apache --suexec-userdir=public_html
$ make
$ su
# make install
【カスタマイズ】
| /usr/local/apache/etc/httpd.conf |
| #HostnameLookups off HostnameLookups on #User
nobody #ServerAdmin you@your.address #ServerName new.host.name |
| /usr/local/apache/etc/access.conf |
| <Directory /> #Options None Options Indexes FollowSymLinks Includes ExecCGI AllowOverride None </Directory> <Directory /usr/local/etc/httpd/htdocs> |
| /usr/local/apache/etc/srm.conf |
| DirectoryIndex index.shtml index.html index.htm #ScriptAlias /cgi-bin/ /usr/local/apache/share/cgi-bin/ ScriptAlias /cgi-bin/ /usr/local/apache/share/cgi-bin/ #AddHandler cgi-script .cgi AddHandler cgi-script .cgi #AddType text/html .shtml AddType text/html .shtml #AddHandler server-parsed .shtml AddHandler server-parsed .shtml |
| /usr/local/apache/etc/mime.types |
| # This file controls what MIME types are sent to the client for the # given file extensions. Sending the correct MIME type to the client # is important so they know how to handle the content of the file. # Extra types can either be added here or by using an AddType directive # in your config files. # MIME type Extension application/activemessage application/andrew-inset application/applefile application/atomicmail application/dca-rft application/dec-dx application/mac-binhex40 hqx application/mac-compactpro cpt application/macwriteii application/msword doc application/news-message-id application/news-transmission application/octet-stream bin dms lha lzh exe class ccr tad application/oda oda application/pdf pdf application/postscript ai eps ps application/powerpoint ppt application/remote-printing application/rtf rtf application/slate application/wita application/wordperfect5.1 application/x-authorware-bin aab application/x-authorware-map aam application/x-authorware-seg aas application/x-bcpio bcpio application/x-cdlink vcd application/x-compress application/x-cpio cpio application/x-csh csh application/x-director dcr dir dxr fgd application/x-dvi dvi application/x-gtar gtar application/x-gzip application/x-hdf hdf application/x-javascript js application/x-koan skp skd skt skm application/x-latex latex application/x-mif mif application/x-netcdf nc cdf application/x-sh sh application/x-shar shar application/x-shockwave-Flash swf application/x-stuffit sit application/x-sv4cpio sv4cpio application/x-sv4crc sv4crc application/x-tar tar application/x-tcl tcl application/x-tex tex application/x-texinfo texinfo texi application/x-troff t tr roff application/x-troff-man man application/x-troff-me me application/x-troff-ms ms application/x-ustar ustar application/x-wais-source src application/zip zip audio/basic au snd audio/midi mid midi kar audio/mpeg mpga mp2 mp3 audio/x-aiff aif aiff aifc audio/x-pn-realaudio ram ra audio/x-pn-realaudio-plugin rpm #audio/x-realaudio ra audio/x-twinvq vqf vql audio/x-twinvq-plugin vqe audio/x-wav wav chemical/x-pdb pdb xyz image/gif gif image/ief ief image/jpeg jpeg jpg jpe image/png png image/tiff tiff tif image/x-cmu-raster ras image/x-freehand fh4 fh5 fhc fh image/x-portable-anymap pnm image/x-portable-bitmap pbm image/x-portable-graymap pgm image/x-portable-pixmap ppm image/x-rgb rgb image/x-xbitmap xbm image/x-xpixmap xpm image/x-xwindowdump xwd message/external-body message/news message/partial message/rfc822 multipart/alternative multipart/appledouble multipart/digest multipart/mixed multipart/parallel text/css css text/html html htm text/plain txt text/richtext rtx text/tab-separated-values tsv text/x-setext etx text/x-sgml sgml sgm video/mpeg mpeg mpg mpe video/quicktime qt mov video/x-msvideo avi video/x-sgi-movie movie x-conference/x-cooltalk ice x-world/x-vrml wrl vrml |
ccr - MS Comic Chat
tad - TRON tad
【ユーザの設定】
「/etc/group」に「apache」「wwwadmin」を加えます。
| /etc/group |
| apache:*:80: wwwadmin:*:81: |
| # vipw |
| apache:*:80:80::0:0:Apache HTTPd:/usr/local/etc/httpd:/sbin/nologin wwwadmin:*:81:81::0:0:HTDocs Maintenance:/usr/local/apache/share/htdocs:/bin/sh |
# chown -R wwwadmin.wwwadmin /usr/local/apache/share/htdocs
【動作試験】
# /usr/local/apache/sbin/apachectl start …HTTPd起動
「http://localhost/」を参照できることを確認。
| 動作試験 |
| yama@yuugao$ telnet localhost http Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. HEAD / HTTP/1.0 HTTP/1.1 200 OK Date: Mon, 06 Jul 1998 00:35:55 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Wed, 20 May 1998 14:59:42 GMT ETag: "3c093-656-3562efde" Accept-Ranges: bytes Content-Length: 1622 Connection: close Content-Type: text/html Connection closed by foreign host. |
# /usr/local/apache/sbin/apachectl stop …HTTPd停止
【ローカルサーバで wwwadmin 宛てのメールを受け取る場合】
wwwadmin の Alias を作成します。
MTA が sendmail の場合は、「/etc/aliases」に「wwwadmin:root」と追加し、「newaliases」を実行します。
MTA が qmail の場合は、「/usr/local/apache/share/htdocs/.qmail」に「&root」と書きます。
【自動起動の設定】
| /etc/rc.local |
| /usr/local/apache/sbin/apachectl start |
【注意】
ユーザのホームページを設置する場合、ユーザのホームディレクトリがシンボリックリンクを介して指定されるようなときには、アクセスが拒否される。
(Ex.)
/home -> /usr/home のとき、
「yama:*:1000:1000:Yamamoto:/home/./yama:/bin/bash」と登録されているような場合。
「yama:*:1000:1000:Yamamoto:/usr/home/./yama:/bin/bash」ならば問題ない。
# cd /usr/local/apache
# zcat /home/yama/analog3.0.tar.gz | tar xvf -
# ln -s analog3.0 analog
| /etc/group |
| analog:*:85: |
| # vipw |
| analog:*:85:85::0:0:AnaLog:/:/bin/csh |
# chown -R analog.analog analog3.0
# mkdir -p /usr/local/apache/share/htdocs/analog/images
# chown -R analog.analog /usr/local/apache/share/htdocs/analog
# su analog
% cd analog
| analhead.h |
| /* #define HTTPDIR
"/usr/local/etc/httpd/" */ #define HTTPDIR "/usr/local/apache/" /* #define LOGFILE HTTPDIR"logs/access_log" */ #define LOGFILE HTTPDIR"var/logs/access_log" /* #define REQUEST (TRUE) *//* Request report */ #define REQUEST (FALSE) /* Request report */ ←かなり大きくなるので出力抑止
|
% make
| analog.cfg |
| #LOGFILE logfile.log #HOSTNAME "[my organisation]" LOGFILE /usr/local/apache/var/log/access_log* OUTFILE /usr/local/apache/share/htdocs/analog/index.html HOSTNAME "[Yuugao]" |
% cp -R images /usr/local/apache/share/htdocs/analog
( Ref. http://www.statslab.cam.ac.uk/~sret1/analog/docs/Readme.html )
| /etc/crontab |
| 41 18 * * * analog /usr/local/apache/analog/analog |
$ zcat squid-1.1.21-src.tar.gz | tar xvf -
$ cd squid-1.1.21
$ ./configure
$ make all
$ su
# make install
/usr/local/squid 配下
/usr/local/squid/etc/squid.conf を編集
| /usr/local/squid/etc/squid.conf |
| #http_port 3128 http_port 8080 #ftp_user squid@ #cache_mgr webmaster #cache_effective_user nobody nogroup |
「/etc/group」に「squid」を加えます。
| /etc/group |
| squid:*:82: |
「vipw」にて「squid」を加えます。
| # vipw |
| squid:*:82:82::0:0:Squid Proxy:/usr/local/squid:/bin/sh |
# mkdir /usr/local/squid/cache
# chown -R squid /usr/local/squid/cache
# chgrp -R squid /usr/local/squid/cache
# chown -R squid /usr/local/squid/logs
# chgrp -R squid /usr/local/squid/logs
「rc.local」から起動されるよう設定します。
| /etc/rc.local |
| if [ -f /usr/local/squid/bin/RunCache
]; then echo -n ' squid'; /usr/local/squid/bin/RunCache & fi |
# /usr/local/squid/bin/squid -z により、キャッシュの階層を作成します。
※大規模キャッシュを構築する場合、シェルのリミッタに引っかかって、プロセスが強制終了されることがあります。この場合、RunCache スクリプトの中で ulimit を使用し、リミッタの上限を引き上げてやる必要があります。
| RunCache |
| #Appended by Tatyana. ulimit -t unlimited ulimit -f unlimited ulimit -d unlimited ulimit -s unlimited ulimit -c unlimited ulimit -m unlimited ulimit -l unlimited ulimit -u unlimited ulimit -n unlimited |
ハードリミットの上限表示: ulimit -H -a
ソフトリミットの上限表示: ulimit -S -a
【ログのローテート】
logs/squid.pid がロストする場合がある(謎)ので、pid取得ルーチンを作成し使用する。
| /usr/local/squid/getsquidpid.pl |
| #!/usr/local/bin/perl @log = `ps auxw`; $m = @log; while($m--){ @buff = split(/\s+/, $log[$m]); if($buff[10] eq 'squid'){ print "$buff[1]"; last; } } |
cronにて「/bin/kill -USR1 `/usr/local/squid/getsquidpid.pl`」を実行。
(注意:実行中、squidは少々不安定になるようだ)
squid.conf の設定が以下のようになっていないといけないので、適宜修正を加える。
| squid.conf |
| emulate_httpd_log off …デフォルト logfile_rotate 1 |
変更後、squid をリブートする。
| squid の簡単なリブート方法 |
| kill -9 (pid of RunCache) kill (pid of squid) RunCache & |
$ zcat cache-stats-1.4.tar.gz | tar xvf -
$ cd cache-stats-1.4
squidstats.sh を編集する。
| squidstats.sh |
| #HOST=cache1.sbs.de HOST=yuugao.nmt.ne.jp TOPN=50 #LOGDIR=/var/adm/squid LOGDIR=/usr/local/squid/logs #BINDIR=/www/bin BINDIR=/usr/home/yama/cache-stats-1.4 #WWWDIR=/www/cache.sbs.de/pub/stats/squid WWWDIR=/usr/local/etc/httpd/htdocs/squid #PIDFILE=/var/run/squid.pid PIDFILE=/usr/local/squid/logs/squid.pid #GZIP=/usr/local/bin/gzip GZIP=/usr/bin/gzip #FIND=/sbin/find FIND=/usr/bin/find #RM=/sbin/rm RM=/bin/rm $BINDIR/access-summary.pl -m $HOST -p 8080 -n $TOPN -H < $SUMFILE > $WWWFILE |
「access-extract-urls.pl」「access-extract.pl」「access-summary.pl」の先頭行を、
「#!/usr/local/bin/perl」から「#!/usr/bin/perl」に変更する。
スクリプトに実行属性を付与する。
$ chmod 755 access-extract-urls.pl
$ chmod 755 access-extract.pl
$ chmod 755 access-summary.pl
$ chmod 755 squidstats.sh
HTML 関連の設定をおこなう。
# mkdir /usr/local/etc/httpd/htdocs/squid
# chown -R squid /usr/local/etc/httpd/htdocs/squid
# chgrp -R squid /usr/local/etc/httpd/htdocs/squid
# cp -R img /usr/local/etc/httpd/htdocs/img
cron により、一日に一回実行されるように設定する。
# su squid
$ crontab -e
| $ crontab -e |
| # SHELL=/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin HOME=/var/log # #minute hour mday month wday command # 0 0 * * * /home/yama/cache-stats-1.4/squidstats.sh |
統計と同時に、ログはローテートされる。
※qmail with APOP :-)
$ su
# mkdir /var/qmail
group の追加をおこないます。
| /etc/group |
| qmail:*:2107: nofiles:*:2108: |
user の追加をおこないます。
| # vipw |
| alias:*:7790:2108::0:0:qmail:/var/qmail/alias:/sbin/nologin qmaild:*:7791:2108::0:0:qmail:/var/qmail:/sbin/nologin qmaill:*:7792:2108::0:0:qmail:/var/qmail:/sbin/nologin qmailp:*:7793:2108::0:0:qmail:/var/qmail:/sbin/nologin qmailq:*:7794:2107::0:0:qmail:/var/qmail:/sbin/nologin qmailr:*:7795:2107::0:0:qmail:/var/qmail:/sbin/nologin qmails:*:7796:2107::0:0:qmail:/var/qmail:/sbin/nologin |
$ zcat qmail-1.03.tar.gz | tar xvf -
$ zcat qmapop-0.3.tar.gz | tar xvf -
$ cd qmail-1.03
各種パッチを当てます
$ patch -p1 < ../qmail-1.02-popup.c.diff
.... qmapop
0.3 附属のものを qmail 1.02以降に対応させたもの
$ patch -p1 < ../qmail-date-localtime.patch
$ patch -p1 < ../qmail-1.02-smtpd-newline.diff
$ patch -p1 < ../qmail-1.02-zaurus.diff
qmail が動いている場合は、
# kill (pid_of_qmail-send)
# make setup
# make check
設定ファイルの雛形を作成します。
# ./config
雛形を元に、設定を煮詰めます。(Ref. INSTALL.ctl)
| /var/qmail/control/me |
| yuugao.nmt.ne.jp サーバの FQDN を書きます。 |
| /var/qmail/control/defaultdomain |
| nmt.ne.jp ドットのないホスト名に追加されるドメイン名です。(Def: me) |
| /var/qmail/control/plusdomain |
| ne.jp +記号で終わるホスト名に追加されるドメイン名です。(Def: me) |
| /var/qmail/control/locals |
| localhost.nmt.ne.jp yuugao.nmt.ne.jp ローカル配信するサーバ名の一覧です。(Def: me) |
| /var/qmail/control/rcpthosts |
| localhost.nmt.ne.jp yuugao.nmt.ne.jp 受信ドメイン一覧に載っていないドメイン宛てのメールは、拒否するようになります。(Def:
none) 削除すると、全て受諾するようになりますが、反面、第三者からの「予期せぬメール中継」に利用される恐れがあります。 |
| /var/qmail/control/defaulthost (option) |
| nmt.ne.jp のように設定。 ホスト部のないアドレスに追加するホスト名です。ホスト名でなくドメイン名を付けても構いません。(Def: me) |
| /var/qmail/control/virtualdomains (option) |
| town.kainan.tokushima.jp:kainant forest-net.co.jp:alta amaren.co.jp:amaren のように設定。 バーチャルドメイン宛てのメールを転送します。(Def: none) 上記の例の場合、user@amaren.co.jp は、 amaren-user@amaren.co.jp に配信されます。 バーチャルドメインを locals に含めてはなりません。ドメインが locals に含まれていれば、 virtualdomains の処理は起きなくなります。 |
| /var/qmail/control/queuelifetime (option) |
| 86400 のように設定。単位は秒。86400秒=1日。 メールキューの最大滞在時間を設定します。(Def: 7日) |
| /var/qmail/control/databytes (option) |
| 2097152 のように設定。単位はBytes。 SMTPのデータサイズ上限を設定します。 |
| /var/qmail/control/badmailfrom (option) |
| internetuse のように設定。 この発信者名を持つメールは、配信せず、ポイしちゃいます。;-) spammarへの軽微な対処方法。(Def: none) |
※設定ファイル変更後は、諸設定をチェックしてください。
# /var/qmail/bin/qmail-showctl | less
【エイリアスの設定】
「postmaster」「mailer-daemon」「root」宛てのメールを転送するよう設定します。
# echo '&root' > /var/qmail/alias/.qmail-postmaster
# echo '&root' > /var/qmail/alias/.qmail-mailer-daemon
# echo '&yama@yuugao.nmt.ne.jp' > /var/qmail/alias/.qmail-root
「ftpadmin」「wwwadmin」宛てのメールを転送するよう設定します。
# echo '&root' > /var/qmail/alias/.qmail-ftpadmin
# echo '&root' > /var/qmail/alias/.qmail-wwwadmin
「uucp」宛てのメールを受け取らないよう設定します。とりあえず、uucpの権限でホームディレクトリに書き込みが出来ないように設定しておきます。
# chmod 0 ~uucp
※defaultのエイリアス(.qmail-default)を設定すると、宛先不明で戻されるべきメールもaliasが受け取ってしまうようになるので注意。
【動作の確認】
# env - PATH="/var/qmail/bin:$PATH" qmail-start ./Mailbox splogger qmail &
maillog に「Dec 16 14:57:24 yuugao qmail: 882251844.657103 status: local 0/10 remote 0/20」という一行が出れば、qmail は正常に起動したということです。
| ps auxw | grep qmail のディスプレイ |
| qmails 3733 0.0 0.6 92 172 p0 I+ 2:57PM 0:00.43 qmail-send qmaill 17667 0.0 0.4 52 116 p0 I+ 2:57PM 0:00.11 splogger qmail root 27467 0.0 0.4 48 128 p0 I+ 2:57PM 0:00.10 qmail-lspawn ./ Mailbox qmailr 7577 0.0 0.4 40 124 p0 I+ 2:57PM 0:00.10 qmail-rspawn qmailq 9415 0.0 0.4 40 124 p0 I+ 2:57PM 0:00.10 qmail-clean |
qmail を使って、メールを配信してみます。
$ echo to: yama | /var/qmail/bin/qmail-inject
メールは、/home/yama/Mailbox に配信される筈です。
【起動時のqmail常駐】
boot 時に qmail を常駐させるように設定します。
| /etc/rc.local |
| echo -n ' qmail' env - PATH="/var/qmail/bin:$PATH" qmail-start ./Mailbox splogger qmail & |
【Maildir の作成】
各ユーザのホームディレクトリごとに、メールディレクトリを作成します。
$ cd
$ /var/qmail/bin/maildirmake ./Maildir
$ echo './Maildir/' > .qmail
【sendmail の停止&置換】
OpenBSD では、デフォルトで sendmail が常駐しないようになっています。
常駐している場合には、
1) boot 時に sendmail を常駐させないように設定。
2) # kill -STOP (pid_of_sendmail)
sendmail プログラムを sendmail_wrapper に置き換えます。
# mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
sendmail のキューにメールが溜まっていたら、「sendmail.bak -p」にてフラッシュを行ないます。
sendmail, binmail を使用不可にします。
# chmod 0 /usr/sbin/sendmail.bak
# chmod 0 /usr/bin/Mail
# chmod 0 /usr/bin/mail
【SMTP の常駐】
qmail-smtp を常駐させてください。
〜inetdを利用する場合〜
/inetd.conf に smtp での処理を追加します。comsat での処理があれば、削除します。変更後、「kill -HUP (pid_of_inetd)」にてinetdをリブートします。
| /etc/inetd.conf |
| smtp stream tcp nowait qmaild
/var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd #comsat 〜 |
〜tcpserverを利用する場合〜
→ ucspi-tcp の項を参照してください。
| /etc/daily |
| # mailq > $TMP /var/qmail/bin/qmail-qread > $TMP # if ! grep -q "^Mail queue is empty$" $TMP; then echo "" echo "mail:" cat $TMP # fi # sh /etc/security
2>&1 | mail -s "$host daily insecurity output" root |
| # crontab -e |
| # do daily/weekly/monthly maintenance # 30 1 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out | mail -s "`/bin/hostname` daily output" root # 30 3 * * 6 /bin/sh /etc/weekly 2>&1 | tee /var/log/weekly.out | mail -s "`/bin/hostname` weekly output" root # 30 5 1 * * /bin/sh /etc/monthly 2>&1 | tee /var/log/monthly.out | mail -s "`/bin/hostname` monthly output" root 30 1 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out |
sendmail root |
※qmail with APOP :-)
$ cd qmapop-0.3
$ ln -s ../qmail-1.03/compile compile
$ ln -s ../qmail-1.03/load load
| Makefile (FreeBSD の場合) |
| checkpassword: checkpassword.o apopauth.o md5c.o load ./load checkpassword apopauth.o md5c.o -lcrypt |
$ make
| # vipw |
| apopdb:*:7797:2107::0:0:APOPDB:/var/qmail:/sbin/nologin |
$ su
# make install
# /var/qmail/bin/apop -i
【常駐設定】
〜inetdを利用する場合〜
| /etc/inetd.conf |
| pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup yuugao.nmt.ne.jp /var/qmail/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir |
# kill -HUP (pid_of_inetd)
〜tcpserverを利用する場合〜
→ ucspi-tcp の項を参照してください。
【apop設定の方法】
$ /var/qmail/bin/apop
Changing passphrase for mailbox "yama"
Please enter the new passphrase:********
Please reenter this passphrase:********
| apop(1) apop(1) NAME SYNOPSIS DESCRIPTION OPTIONS SEE ALSO |
$ mkdir nkf1.62
$ cd nkf1.62
$ gcc ../nkf.c -o nkf
$ su
# cp nkf /usr/local/bin/nkf
$ zcat lha-114d.tgz | tar xvf -
$ cd lha-114d
「Makefile」中のマクロ「MACHINE」から「-DFTIME」を外し、「MANSECT」を「8」に変更
$ make
# su
$ make install
/usr/local/bin/lha
/usr/local/man/man8/lha.8
$ zcat unzip532.tar.gz | tar xvf -
$ cd unzip-5.32
$ ln -s unix/Makefile Makefile
$ make generic
$ su
# make install
$ zcat bzip2-0.1pl2.tar.gz | tar xvf -
$ cd bzip2-0.1pl2
$ make
$ su
# cp bzip2 /usr/local/bin
# ln -s /usr/local/bin/bzip2 /usr/local/bin/bunzip2
# cp bzip2.1 /usr/local/man/man1
$ su
# cd /usr
# mkdir X11R6
# cd X11R6
# sh /home/yama/X11/preinst.sh
# chmod 755 /home/yama/X11/extract
# /home/yama/X11/extract /home/yama/X11/X331*.tgz
# sh /home/yama/X11/postinst.sh
Do you wish to have this link installed (y/n)?n
# ln -s /usr/X11R6/bin/Xsun /usr/X11R6/bin/X または
# ln -s /usr/X11R6/bin/Xsun24 /usr/X11R6/bin/X
/dev/console にシステムログを出力されると X-Window の表示が乱れてしまいますので、必要ならこれを抑止します。
| /etc/syslog.conf |
| #*.err;kern.debug;auth.notice;authpriv.none;mail.crit
/dev/console *.err;kern.debug;auth.notice;authpriv.none;mail.crit /var/log/messages |
# kill -HUP (pid_of_syslogd)
あるいは、xconsole(1) を使っても良いでしょう。
ワークステーションをX端末として利用するには、以下のようにしてXサーバを起動します。
| /etc/rc.local |
| if [ -f /usr/X11R6/bin/X ]; then /usr/X11R6/bin/X -query wakamurasaki fi |
この場合、dairy, weekly, monthly の各処理は抑止しても良いかも知れません。(必要無いと判断するなら)
# crontab -e
| crontab -e |
| # 30 1 * * *
/bin/sh /etc/daily 2>&1 | tee /var/log/daily.out | mail -s "`/bin/hostname`
daily output" root # 30 3 * * 6 /bin/sh /etc/weekly 2>&1 | tee /var/log/weekly.out | mail -s "`/bin/hostname` weekly output" root # 30 5 1 * * /bin/sh /etc/monthly 2>&1 | tee /var/log/monthly.out | mail -s "`/bin/hostname` monthly output" root 30 1 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out | mail -s "`/bin/hostname` daily output" root 30 3 * * 6 /bin/sh /etc/weekly 2>&1 | tee /var/log/weekly.out | mail -s "`/bin/hostname` weekly output" root 30 5 1 * * /bin/sh /etc/monthly 2>&1 | tee /var/log/monthly.out | mail -s "`/bin/hostname` monthly output" root |
| /etc/rc.local |
| 最後の行に /usr/X11R6/bin/xdm |
| ~/.xsession (実行ファイル) |
| #!/bin/sh /usr/X11R6/bin/xclock & /usr/X11R6/bin/xterm & /usr/X11R6/bin/xterm & /usr/X11R6/bin/xset s off & /usr/X11R6/bin/twm |
$ chmod 755 ~/.xsession
ログイン画面のカスタマイズは、以下のファイルを編集することで可能です。
| /usr/X11R6/lib/X11/xdm/Xsetup_0 |
| #!/bin/sh # $XConsortium: Xsetup_0,v 1.3 93/09/28 14:30:31 gildea Exp $ xclock & xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail |
$ zcat Xaw3d-1.5.tar.gz | tar xvf -
$ cd xc/lib/Xaw3d
$ mkdir -p X11/Xaw3d
$ cp -f *h X11/Xaw3d
| Imakefile |
| # EXTRA_INCLUDES = -I. EXTRA_INCLUDES = -I. |
$ xmkmf -a
$ make
$ su
# mv /usr/X11R6/lib/libXaw.a /usr/X11R6/lib/libXaw.a.orig
# mv /usr/X11R6/lib/libXaw.so.6.1 /usr/X11R6/lib/libXaw.so.6.1.orig
# make install
# ln -s /usr/X11R6/lib/libXaw3d.a /usr/X11R6/lib/libXaw.a
# ln -s /usr/X11R6/lib/libXaw3d.so.6.1 /usr/X11R6/lib/libXaw.so.6.1
$ zcat Xaw95-1.1-src.tar.gz | tar xvf -
$ cd Xaw95-1.1
$ mkdir -p X11/Xaw3d
$ cp -f *h X11/Xaw3d
| Imakefile |
| # EXTRA_INCLUDES = -I. EXTRA_INCLUDES = -I. |
$ xmkmf -a
$ make
$ su
# mv /usr/X11R6/lib/libXaw.a /usr/X11R6/lib/libXaw.a.orig
# mv /usr/X11R6/lib/libXaw.so.6.1 /usr/X11R6/lib/libXaw.so.6.1.orig
# make install
/usr/X11R6/lib/libXaw.a
/usr/X11R6/lib/libXaw.so.6.1
/usr/X11R6/include/Xaw3d/ 配下
# mv /usr/X11R6/include/Xaw3d/ /usr/X11R6/include/X11/Xaw3d/
# ln -s /usr/X11R6/lib/libXaw.a /usr/X11R6/lib/libXaw3d.a
# ln -s /usr/X11R6/lib/libXaw.so.6.1 /usr/X11R6/lib/libXaw3d.so.6.1
$ zcat kterm-6.2.0.tar.gz | tar xvf -
$ cd kterm-6.2.0
$ chmod 644 kterm.h
$ chmod 644 Imakefile
$ chmod 644 ptyx.h
$ chmod 644 KTerm.ad
| kterm.h |
| #undef KTERM_XAW3D /* Xaw3d -DARROW_SCROLLBAR
support */ #define KTERM_XAW3D /* Xaw3d -DARROW_SCROLLBAR support */ |
以下を設定すべきだが、libxpg4 が無いので不要。
| Imakefile |
| #if InstallXtermSetUID SetUIDProgramTarget(kterm,$(OBJS1),$(DEPLIBS1),XkbClientLibs XawClientLibs,$(TERMCAPLIB) $(PTYLIB) -lxpg4) #else NormalProgramTarget(kterm,$(OBJS1),$(DEPLIBS1),XkbClientLibs XawClientLibs,$(TERMCAPLIB) $(PTYLIB)) #endif |
ja_JP なロケールが無いので、とりあえず C を使うようにする。
| ptyx.h |
| #ifdef KTERM_XIM /* # define EUCJPLOCALE "ja_JP.eucJP,ja_JP.ujis,ja_JP.EUC,japanese.euc,Japanese-EUC,ja,japan" */ #define EUCJPLOCALE "C" #endif /* KTERM_XIM */ |
| KTerm.ad |
| !*VT100*kanjiMode: jis *VT100*kanjiMode: euc |
$ xmkmf -a
$ make
$ su
# make install
/usr/X11R6/bin/kterm
/usr/X11R6/lib/X11/app-defaults/KTerm
$ zcat xpm-3.4j.tar.gz | tar xvf -
$ cd xpm-3.4j
$ xmkmf -a
$ make
$ su
# make install
# make install.man
/usr/X11R6/lib/libXpm.so.4.10
/usr/X11R6/lib/libXpm.a
/usr/X11R6/include/X11/xpm.h
/usr/X11R6/bin/sxpm
/usr/X11R6/man/cat1/sxpm.0
qt FreeEdition のインストール
※FreeBSD の場合
# cd /usr/local
# zcat ~yama/qt-1.40.tar.gz | tar xvf -
# ln -s qt-1.40 qt
| ~/.bash_profile に追加 |
| QTDIR=/usr/local/qt PATH=$QTDIR/bin:$PATH if [ $MANPATH ] then MANPATH=$QTDIR/man:$MANPATH else MANPATH=$QTDIR/man fi if [ $LD_LIBRARY_PATH ] then LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH else LD_LIBRARY_PATH=$QTDIR/lib fi LIBRARY_PATH=$LD_LIBRARY_PATH if [ $CPLUS_INCLUDE_PATH ] then CPLUS_INCLUDE_PATH=$QTDIR/include:$CPLUS_INCLUDE_PATH else CPLUS_INCLUDE_PATH=$QTDIR/include fi export QTDIR PATH MANPATH LD_LIBRARY_PATH LIBRARY_PATH export CPLUS_INCLUDE_PATH |
スクリプト変更後、反映させるために再ログイン。
| configs/freebsd-g++-shared |
| #
SYSCONF_LINK_LIB_SHARED = $(LINK) -Bshareable $(LFLAGS) -o $(TARGETD) `lorder
/usr/lib/c++rt0.o $(OBJECTS) $(OBJMOC) | tsort` $(LIBS) SYSCONF_LINK_LIB_SHARED = $(SYSCONF_LINK_SHLIB) -Bshareable \ $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \ `lorder /usr/lib/c++rt0.o $(OBJECTS) $(OBJMOC) | tsort` $(LIBS); \ mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \ cd $(DESTDIR); \ rm -f lib$(TARGET).so lib$(TARGET).so.$(VER_MAJ); \ ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so; \ ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).so.$(VER_MAJ) # Compiling application source |
# make freebsd-g++-shared
# make
# ln -s /usr/local/qt/bin/moc /usr/bin/moc ←KDEのインストールのため
KDE のインストール
※FreeBSD の場合。Ports参照。
※Qt が必要。Mesa と xpm があれば楽しいらしい。
kdesupport RECOMMENDED
This package contains support libraries that have not been written as part of the KDE
project, but are needed
nevertheless. If you are already have the libraries (libgif, libjpeg, libmime, libuu,
libgdbm) in this package in the
required versions, you do not need to install this package. When in doubt, install it.
Note that for the Debian
packages, this package is required.
$ zcat kdesupport-1.0.tar.gz | tar xvf -
$ cd kdesupport-1.0
| ltconfig |
| freebsd2* | freebsd3*) version_type=sunos # library_names_spec='${libname}${release}.so.$versuffix $libname.so' library_names_spec='${libname}${release}.so.$versuffix' finish_cmds='PATH="$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;; |
$ ./configure
$ make; make check
$ su
# make install
(jpeglib6a, gdbm, giflib30, mimelib, uulib, QwSpriteField)
kdelibs REQUIRED
This package contains shared libraries that are needed by all KDE applications.
$ zcat kdelibs-1.0.tar.gz | tar xvf -
$ cd kdelibs-1.0
| ltconfig |
| freebsd2* | freebsd3*) version_type=sunos # library_names_spec='${libname}${release}.so.$versuffix $libname.so' library_names_spec='${libname}${release}.so.$versuffix' finish_cmds='PATH="$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;; |
$ ./configure
$ make; make check
$ su
# make install
kdebase REQUIRED
This package contains the base applications that form the core of the KDE Desktop
Environment like the window
manager, the terminal emulator, the control center, the file manager and the panel.
$ zcat kdebase-1.0.tar.gz | tar xvf -
$ cd kdebase-1.0
| ltconfig |
| freebsd2* | freebsd3*) version_type=sunos # library_names_spec='${libname}${release}.so.$versuffix $libname.so' library_names_spec='${libname}${release}.so.$versuffix' finish_cmds='PATH="$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH ;; |
| kfm/startkde |
| # kaudioserver & |
| kfm/kfmsu2.in |
| # echo "Allowing root user to use this
display" # xhost +local:root echo "Allowing ALL (!) local users to use this display" xhost +local: # su - root -c "export
DISPLAY=$DISPLAY; @kde_bindir@/kfm -sw >/dev/null" |
| kdm/pics/Makefile.in |
| picsdir = $(kde_datadir)/kdm/pics pics_DATA = kdelogo.xpm kdeflower.xpm wallpaper_DATA = kdm_bg.jpg usersdir = $(picsdir)/users users_DATA = default.xpm default2.xpm root.xpm root2.xpm
uninstall-usersDATA: install-data: install-picsDATA install-usersDATA install-wallpaperDATA uninstall: uninstall-picsDATA uninstall-usersDATA uninstall-wallpaperDATA installdirs: .PHONY: default uninstall-picsDATA install-picsDATA uninstall-usersDATA \ |
| kdm/resource.c |
| #ifndef __EMX__ #define Quote(s) #s #define QUOTE(s) Quote(s) #ifndef DEF_SERVER_LINE /* #define DEF_SERVER_LINE ":0 local /usr/bin/X11/X :0" */ #define DEF_SERVER_LINE ":0 local " QUOTE(XBINDIR) "/X :0" #endif #ifndef XRDB_PROGRAM /* #define XRDB_PROGRAM "/usr/bin/X11/xrdb" */ #define XRDB_PROGRAM QUOTE(XBINDIR) "/xrdb" #endif #ifndef DEF_SESSION /* #define DEF_SESSION "/usr/bin/X11/xterm -ls" */ #define DEF_SESSION QUOTE(XBINDIR) "/xterm -ls" #endif #ifndef DEF_USER_PATH /* #define DEF_USER_PATH ":/bin:/usr/bin:/usr/bin/X11:/usr/ucb" */ #define DEF_USER_PATH "/bin:/usr/bin:" QUOTE(XBINDIR) ":/usr/local/bin" #endif #ifndef DEF_SYSTEM_PATH /* #define DEF_SYSTEM_PATH "/etc:/bin:/usr/bin:/usr/bin/X11:/usr/ucb" */ #define DEF_SYSTEM_PATH "/sbin:/usr/sbin:/bin:/usr/bin:" QUOTE(XBINDIR) ":/usr/local/bin" #endif #ifndef DEF_SYSTEM_SHELL #define DEF_SYSTEM_SHELL "/bin/sh" #endif #ifndef DEF_FAILSAFE_CLIENT /* #define DEF_FAILSAFE_CLIENT "/usr/bin/X11/xterm" */ #define DEF_FAILSAFE_CLIENT QUOTE(XBINDIR) "/xterm" #endif #ifndef DEF_XDM_CONFIG /* #define DEF_XDM_CONFIG "/usr/lib/X11/xdm/xdm-config" */ #define DEF_XDM_CONFIG XDMDIR "/xdm-config") #endif #ifndef DEF_CHOOSER /* #define DEF_CHOOSER "/usr/lib/X11/xdm/chooser" */ #define DEF_CHOOSER XDMDIR "/chooser" #endif #ifndef DEF_AUTH_DIR #ifndef DEF_GREETER_LIB |
| kdehelp/man.cpp |
| else { // searchPath[numPaths++] = StrDup("/usr/man"); searchPath[numPaths++] = StrDup("/usr/share/man"); searchPath[numPaths++] = StrDup("/usr/X11R6/man"); searchPath[numPaths++] = StrDup("/usr/local/man"); } |
$ export GL_LDFLAGS=/usr/local/lib
$ export GL_INCLUDE=/usr/local/include/GL
| configure |
| test -z "$GL_LDFLAGS" && GL_LDFLAGS=/usr/local/lib test -z "$GL_INCLUDE" && GL_INCLUDE=/usr/local/include/GL |
$ ./configure
$ make; make check
$ su
# make install
path に /usr/local/kde/bin を追加。
startkde にて実行可能。
$ zcat fvwm-2.0.46.tar.gz | tar xvf -
$ cd fvwm-2.0.46
$ zcat ../fvwm-users-jp-kits.97Oct04.tar.gz | tar xvf -
$ patch < kits/patch/PATCH.i18n-jp
$ xmkmf -a
| 各Makefile |
| FVWM_LIBS=-lxpg4 〜 国際化のためにはxpg4ライブラリが必要になるが、存在しない(?)ので国際化を諦める。 |
$ make
$ su
# make install
# make install.man
/usr/X11R6/bin/fvwm2
/usr/X11R6/lib/X11/fvwm2/*
/usr/X11R6/bin/xpmroot
/usr/X11R6/lib/X11/fvwm2/FvwmBanner
/usr/X11R6/lib/X11/fvwm2/system.fvwm2rc
ほかマニュアル。
# mkdir /usr/X11R6/include/X11/pixmaps
# cp icons/* /usr/X11R6/include/X11/pixmaps/
$ cp /usr/X11R6/lib/X11/fvwm2/system.fvwm2rc ~/.fvwm2rc
$ chmod 644 ~/.fvwm2rc
| ~/.fvwm2rc |
| # be sure to customize these paths for your installation: # ModulePath /usr/lib/X11/fvwm2 # PixmapPath /usr/include/X11/pixmaps # IconPath /usr/include/X11/bitmaps ModulePath /usr/X11R6/lib/X11/fvwm2 PixmapPath /usr/X11R6/include/X11/pixmaps IconPath /usr/X11R6/include/X11/bitmaps # make sure these fonts exist on your
system:
# HilightColor black palevioletred # Styles for your common terminal emulator programs:< |