FreeBSDのお約束
今晩は。 樟加陽です。 今日からこちらのページ紹介も行うことになりました。
ネタ切れ、飽き、理由はありますが、今回は「FreeBSDのお約束」って事を書いてみます。
世の中のPC-UNIXは、Linux全盛。 何処も彼処も大手メーカもLinux。
あんなディストビューションの何処がいいんじゃーーーっと思ったりもします。
「良いところ=悪いところ」という事が多分当てはまり、それが支持されているんだと思います。
Linuxとの違いを比較しながらFreeBSDの良い所というのを纏めれば面白いのでしょうが、
面倒くさいので止めておき、ここでは、FreeBSDとかLinuxを使っている人が嫌がる代表である
「FreeBSDのお約束」っぽい事柄を書きつづってみようと思います。
お約束事項
全ては知りません。 ここで挙げる事柄以外にも色々お約束がある筈です。
私が知る限りの事を書いていきます。 知ってる事はこれだけですが、結構便利に使えていますよ♪
そうそう。 以下は「FreeBSD6.2-RELEASE」を前提とした内容になっています。
- ディレクトリのお約束
多分、代表的な嫌がられる点だと思いますが、FreeBSDはファイル配置に一定のルールがあります。
- /etc/
FreeBSD 本体の設定ファイル、システムとして導入しているソフトウェア群の設定ファイルが格納される場所です。
逆に言うとユーザが追加でインストールしたソフトウェアの設定ファイルは、デフォルトだと格納されません。
ザックリ言うとFreeBSD のインストーラで「ports」「packages」としてインストールする物以外の設定ファイルが、
ここに格納される感じで〜す。
「ports」「packages」も使用せずに自力で頑張ってインストールすると、
そのソフトウェアのインストーラに依存しちゃいますから、
追加でソフトウェアを導入しようと頑張る場合、
そのインストーラの説明書をよく読んで使いましょう♪
普通に解らない所に格納されるでしょうから♪
- /etc/rc.conf
お馴染み、FreeBSDの設定ファイル。
最近6.2-RELEASEをインストールしたのですが、「なんですか、これは・・・!?」って位に綺麗さっぱり
しちゃってました。
これだけみても「さっぱり解りません。 設定項目って何があるのよ?」って疑問が湧くはずです。
でも安心。 「/etc/defaults/rc.conf」なるファイルがあって、ここに設定項目とデフォルト値が
書き込まれてます。 これを見るとどんな設定項目があるか解ります。
「えーーっと。設定項目のコメントが英語なんですけど・・・・?」
という質問は却下でーす♪ 頑張って読みましょうね♪
起動するために必要な設定項目はインストーラが作ってくれるので、放置するのも一つの手です。
6.2-RELEASEだと「初期状態は、最低限の機能しか起動しない」様になってるみたいです。
サービス系だと「sshd」「usbd」とか以外は一切起動していないと思います。
inetdも全てのポートがクローズ。
ftpdもtelnetdもクローズでした。 私的には流石、と思いました。
他のお約束的な事柄としては、後者の「/etc/defaults/rc.conf」は直接変更しない。
変更するなら「/etc/rc.conf」に行う。
後は、「midoruuxeamei_enable="YES"」としないと、ports/packagesでソフトウェアをインストールしても
通常手順では起動しない事があります。 通常手順ってのは後述しますが、「/usr/local/etc/rc.d/」に格納
されるスクリプトを使って起動する手順を指してます。「./asterisk start」とかって奴です。
- /etc/motd
看板?ファイル。 ログインするとこのファイルの内容が出力されます。
結構うざいので、嫌なら/dev/nullをコピーしてもいいのかも!?
- /etc/ttys
起動する端末を設定するファイルです。
OSにシリアルポート、ネットワーク、コンソールから接続された時に、どんな端末を割り当てるのか
というのを設定するファイルっぽいです。
実際の所、普通に使う分には弄らないと思いますが、変更する場面があるとすれば、
「コンソールから[ALT]+[F1]とかで切替られるけど、使わないのにこういうのがあるのは嫌やーん」
って時に、さて、どの設定ファイルになるんだろう・・・? って時です。
このファイルを変更すればいいのです! 各行の端末名っぽい行の行末辺りに「on」とかなってる
部分があるじゃないですか、それを「off」にすれば良いみたいです。
- /etc/namedb/
普通に使う人がいるのか微妙な気がしますが、DNSの設定ファイルが格納されている場所です。
シンボリックリンクが「/var/named/etc/namedb」に切られており、実体はそちらです。
これは「chroot」っていう機能を使ってDNSを隔離する為の処置です。
「DNSのセキュリティホールを使って不正にプロセスコンテキストを奪い、やったぜクラッキング成功!
ひゃっほーーい」ってな事があっても「アクセス可能なファイルシステム区画、スーパユーザ特権を
封じている」ので「被害を最小限に防げる」寸法ですね。
注意しないといけないのは、この場合だと「DNSは破壊、又は停止される」事は防げません。
「chroot」を使っても、きちんとマスタファイルのバックアップは取りましょうね♪
- /var/log/
いろんなログファイルが格納される所です。 ports/packagesでインストールした場合、大抵ここに出力されます。
「ログは何処だーーーーーーー!」って思ったら、ここを除くといいのかも。
- /var/log/messages
syslogdが出力するログファイルになります。 大体のsyslog出力はこのファイルに出ると思えばいいと思います。
実際は、他のファイルに出力される物があるので、興味があれば「/etc/syslogd.conf」をチェックしてみてください。
- /var/run/
起動しているデーモンのプロセスIDが記録されたファイル「とか」が格納される所です。
拡張子が「.pid」のファイルが、これに当たります。 この辺りはFreeBSDでも結構いい加減みたいですね。
何かのUnixドメインソケットがあったり、この下にサブディレクトリが作られて、
そこにプロセスIDのファイルが格納されていたりするみたいです。
- /usr/local/
ユーザが追加でインストールしたソフトウェアの格納先になります。
この下に「bin/」「sbin/」「etc/」等があり、ある程度のルールに従ってファイルが配置されます。
「sbin/」ならデーモンやサービスの実行ファイル、「bin/」ならそうじゃない実行ファイル、
「etc/」は設定ファイルという感じです。
このウェブページに迷い込んでいる人なら、興味や必要があるのは「etc/」ぐらいかな。
- /usr/local/etc/
この辺りにports/packagesでインストールしたソフトウェアの設定ファイルが放り込まれます。
設定ファイル数が少ない場合はここ、多い場合はソフトウェアの名前でディレクトリが作られて、
そこに設定ファイルが放り込まれます。
こんな説明、つまんなーい。 てな事で次へ
- /usr/local/etc/rc.d
起動スクリプトが放り込まれる所です。
FreeBSDは、ここにあるスクリプトに「start」「stop」という引数を渡して起動/終了して行くようです。
「インストールしたのに、起動しないな〜。」という現象に遭遇したら、中身をチェックすることをおすすめです。
最初の辺りに「”dhcpd_enable="YES"”って設定を”/etc/rc.conf”に追加せよ」ってな事が書かれていると思います。
「書いていないスクリプト」「そもそもスクリプトじゃない」だった場合は、「ソフトウェア名_enable="YES"」と
書くと良いかもしれません。 起動してくれるかもです。
「書いたけど、なんか起動しない。」「ログが出力されてない。」「スタートアップ時にも起動している雰囲気がない。」
「てかログはどこですか?」という現象に遭遇したら「ソフトウェアに同梱のマニュアル」か「そのソフトウェアのサイト」
で起動の設定方法を探してみましょう。 きっと英語ですが頑張って下さい。
- /usr/ports/
FreeBSDはportsがあるから使っている私です。
利便性が高い分、最新版が追加されるのは遅いですが、それでも便利です。
尚、最近はportsすら億劫になってpackagesで済ませています。
使い方は簡単。
このディレクトリ下で「make」とコマンドを打つと、ここ以下にある全てのportsをコンパイルしてくれます。
実行しちゃいましたか?
きっともの凄い時間が掛かって、全然プロンプトが帰ってきませんよね?
17,500位のソフトウェアがあるから、多分、当分帰ってきませんよ。
普通は、ここから更にディレクトリを潜って「インストールしたいソフトウェアのディレクトリ」で「make」と
打ちます。 (ごめんなさい・・・。)
尚、インストールする場合は「make install」です。
知ってる限りのサブコマンドを以下に記します。
- make fetch
インストールに必要なファイル一式を取りに行きます。
- make install
上記+コンパイルまでを実行します。
- make clean
コンパイルで作成したファイルを全て削除します。 make fetchで取得したファイルは削除しません。
- make distclean
上記+make fetchで入手したファイルを削除します。
- make package
packageファイルを作成します。
ファイルは、portsのソフトウェアのディレクトリ(apache22なら/usr/ports/www/apache22)に作成されます。
※ソフトウェアがコンパイルとインストールされている事が前提となります。
※コンパイル時の生成ファイルがないと作り直したり、インストールされていないと失敗したりします。
- /boot/
OSのブートローダ関係のファイルがあります。
まあ、あんまり使ってないです。
- /boot/loader.conf
ブートローダの設定ファイルです。
/etc/rc.confと同様に、この設定ファイルにも/boot/defaults/loader.confなる設定ファイルがあります。
「config.sys時代からデバイスドライバ関係は超綺麗にして、不要な奴はロードしたくないです。」
って人は、これを頑張って編集して下さい。 私は、もうどうでもいいです。
効果があるのか、無いのか解らない作業は一切放置する事に決めています。
- /sys/
カーネルのソースがあるディレクトリ。 実体は「/usr/src/sys」になります。
この辺りを嫌がる根拠は、砂場は自分で作らせろ♪って事なのかな。
ディレクトリ名を自分で決めるのと、一定のポリシーで配置されるのと、何が違うんだろう。
- そのほか
ファイルシステム構成の合間に色々つらつら書いた結果、他にどんなお約束があるかな〜っと考えたのですが、
何にも思いつきません。 あるとしたら、全体的な傾向ぐらいかな。
FreeBSDのポリシーとして、デーモン系は基本クローズ。 ファイアウォールはデフォルトなし。
インストールしたネットワーク関係の機能については、スタンドアロンで大体一通りの事は出来る。
ipv6は使用するには、先ず、ネットワークアドレスを設定する必要がありそうだけど、
それさえ設定すれば、FreeBSDのインストーラがセットアップするソフトウェアは一通りサポートしてそう。(未確認)
という位です。 無報酬活動の割に「システム」として設計されたOSだなぁ〜と思う限りです。
だらだらと語ってみましたが、現在3:27です。 そろそろ眠いです。 というか目が重いです。
明日出かけるとか言っていたけど、平気なんだろうか・・・。
作成日:2007/09/01