FreeBSDインストール備忘録

関連:Computer/UNIX? / Computer/Linux? 関連:UNIX / Linux

cvsup導入

まずはcvsup導入。これは必須。

# cd /usr/ports/net/cvsup
# make install clean

この後のやり方は2通りに分かれる。

supfileを書き換える方法

その後、/usr/share/examples/cvsup にある ports-supfile、stable-supfile、doc-supfile を以下のように編集する。具体的には、hostを近いサーバーへと変更する。

*default host=CHANGE_THIS.FreeBSD.org

*default host=cvsup3.ja.FreeBSD.org

make updateを使う方法

/etc/make.confにパラメータを指定しておくと、上記のような修正作業は不要。この場合の、これより↓にあるcvsupコマンドを使わず、以下のように作業する。

# cd /usr/src
# make update

make.confにちゃんとport-supfileのことまで指定してあれば、上記のように/usr/srcで作業すれば/usr/portsまで更新してくれるらしい。あたまいいー。

stableへの更新

要はOSを最新版へとアップデートする作業。RELEASEからSTABLEになる。

cvsupとstable-supfileを使ってソースコードをアップデートする。

# cvsup -g -L 2 stable-supfile

その後は以下のように入力。

# cd /usr/src
# make clean
# make buildworld
# make buildkernel
# make installkernel
# reboot

ここでシングルユーザーモードへ。shellの入力を求められるので/usr/local/bin/zshと入力(zshの場合)。

# mount -a
# cd /usr/src
# make installworld

FreeBSD6.1へのアップデートの場合、installkernelでエラーが出ることがある。この場合、/etc/groupにauditというグループを加えてやればよい。

この時点で/etcはまだ変更が反映されていないので、mergemasterを実行。

# mergemaster -siva
# mergemaster -sivr 

sivaで新規追加ファイルを確認無しでインストールするため作業量が軽減できる。mergemasterのコマンドは以下の通り。

  • i 新バージョンのファイルをインストール(基本はコレ)
  • d 旧バージョンのファイルを残す(passwdやhostsなど)
  • m 新旧を比較してマージする(変更を加えた設定ファイル)
    • l 左側を採用(古い方)
    • r 右側を採用(新しい方)

バージョンが上がっているかどうかは以下のコマンドで確認できる。

% uname -a

関連サイト

portsとportupgrade

アプリケーションを簡単にインストールできちゃうシステム。ただしportsを最新にしとかないと古いアプリケーションがインストールされてしまう。portupgradeはその補助ツールであって最初にいれておくべきもの。portupgradeはRubyで書かれているのでrubyも最新にすべき、というか依存関係のおかげでまとめてインストールされる。 まず、cvsupとports-supfileを使ってportsツリーをアップデートする。
# cvsup -g -L 2 ports-supfile
次に、portsを使ってportupgradeを導入。
# cd /usr/ports/sysutils/portupgrade
# make install clean
それからports ツリーのインデックスを更新。インストール直後はcommand not foundになることがあるので、その場合は再起動する。このコマンドは長時間かかるので根気よく待つ。
# portsdb -uU
portupgradeの使い方。まずはアップデートが必要なものの一覧の出し方。出力結果で 『<』 となっているものは更新する必要があるもの。
# portversion -O
アプリケーションのアップグレードは以下の通り。アプリケーション名は /var/db/pkg にあるものを指定するらしいが、portversionで表示されたアプリケーション名でも問題ないみたい。
# portupgrade -cC apache

fastest_cvsup

CVSupのサーバーで、自分から見て一番速いサーバーを見つけてくれるコマンド。インストール方法は以下。
# portinstall sysutil/fastest_cvsup
コマンドの実行方法と、2006/09/22時点でのうちのサーバーの結果。
% fastest_cvsup -c jp
>>  Querying servers in countries: jp
--> Connecting to cvsup.jp.freebsd.org [210.224.172.75]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 3019.26 ms
--> Connecting to cvsup2.jp.freebsd.org [203.216.196.85]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 4.49 ms
--> Connecting to cvsup3.jp.freebsd.org [210.188.224.44]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 3.98 ms
--> Connecting to cvsup4.jp.freebsd.org [133.1.44.1]...
    - server replied: OK 17 0 SNAP_16_1f CVSup server ready
    - time taken: 15.07 ms
--> Connecting to cvsup5.jp.freebsd.org [210.161.150.4]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 3007.17 ms
--> Connecting to cvsup6.jp.freebsd.org [210.188.224.44]...
    - server replied: OK 17 0 SNAP_16_1h CVSup server ready
    - time taken: 4.18 ms

>>  Speed Daemons:
    - 1st: cvsup3.jp.freebsd.org
    - 2nd: cvsup6.jp.freebsd.org
    - 3rd: cvsup2.jp.freebsd.org

普段のアップデート作業

# cd /usr/share/examples/cvsup/
# cvsup -g -L 2 ports-supfile
# portsdb -uU

その他関連サイト

apache

インストールは以下の通り。

# portinstall www/apache2

/etc/rc.confに以下のように指定する。

apache2_enable="YES"

apacheの起動は以下のように指定する。

# /usr/local/etc/rc.d/apache2.sh restart

もしくは

# apachectl restart (start/stop)

アップグレードは以下の通り。

# portupgrade -RcC apache

Rは依存関係にあるアプリケーションのアップグレード(これを指定しないと「依存関係にあるアプリが古いためアップグレードをやめました」と表示されアップグレードせずに終了することがある)、cCはコンパイル前後のclean。

バーチャルホスト

http://www.atmarkit.co.jp/flinux/rensai/apache08/apache08a.html

http://httpd.apache.org/docs/2.0/ja/vhosts/name-based.html

各種ファイルの配置

/usr/local/etc/apache2/httpd.conf

/usr/local/sbin/httpd -l

Compiled in modules:
 core.c
 prefork.c
 http_core.c
 mod_so.c

関連サイト

ProFTPD

# portinstall ftp/proftpd

設定画面では好きなのを選べるが、とりあえずはデフォルトで良いみたい。

同時接続数を増やす

proftpd.confのMaxClientsPerHostの数字を増やす。

関連サイト

samba

portsからインストールした場合の設定ファイル:/usr/local/etc/smb.conf

再起動:/usr/local/etc/rc.d/samba.sh restart

emacs

使い方などに関してはComputer/Emacs?参照 使い方などに関してはEmacs参照

zsh

インストール方法

# portinstall zsh+euc_hack

この下は各ユーザーで作業。

% chsh -s /usr/local/bin/zsh

以下のコマンドで現在のシェルを確認できる。

% echo $SHELL

インストールされているシェルの一覧は以下の通り。

% less /etc/shells

便利な機能

ESC-q
コマンドラインスタック機能を使って、今打ち込んだコマンドを一時的にスタックしてくれる。やりかたは。これで今打ち込んだコマンドが消えて新しいコマンドを入力でき、次にコマンドプロンプトが表示されるときに自動的に先ほどのコマンドが表示される。
ESC-h
今打ち込んでるコマンドのmanページが見られる。manを終了すると打ち込んでる途中の状態に復帰する。
Ctrl-r
でインクリメンタルサーチモードへ入れる。繰り返しCtrl-rを押すとさらに検索結果をさかのぼれる。

プロンプトに色を付けるには以下の通り。.zshrcに書いておくと良い。

% autoload -U colors
% colors

関連サイト

screen

インストール方法は以下の通り。

# portinstall screen
使い方などに関してはComputer/Screen?参照 使い方などに関してはScreen参照

webalizer

portinstall www/webalizer
portinstall japanese/webalizer

設定ファイルは/usr/local/etc/jawebalizer-dist。これをwebalizer.confにして、内容を編集する。実行方法は以下の通り。

webalizer -o (出力先) (解析するログの位置)

crontab

日本語ファイル名の取り扱い

lsで日本語ファイル名が「??」と表示される場合

lsは標準では日本語ファイル名を表示しない(「できない」ではなく「しない」)ように設定されている。ls -wもしくはls | catで正しく表示されるはず。これはaliasに設定しておくとよい。jlsをインストールし、aliasでlsとして動くよう設定する方法もある(おそらくこっちの方が安全)。

ftpdと日本語ファイル名

ftpdは日本語のファイル名を変換したりなんかはしないので、FFFTP等から日本語ファイル名のファイルをアップロードするとそのファイル名はShift_JISになる。この場合、コンソールからはls | nkfとすることで正しく表示ができる。

sambaと日本語ファイル名

sambaのバージョンは3.0系として話を進める。

dos charset = CP932
unix charset = EUCJP-MS
display charset = CP932

以上のような設定にした場合、Windowsから日本語ファイル名の読み書きは問題なく行われるし、BSD上でもファイル名はEUC-JPになっている。unix charsetをEUC-JPにしても同様のようだ。

この場合、BSD上に存在するShift_JISのファイル名が含まれるディレクトリをWindowsから見ようとすると、sambaが無理矢理EUC→Shift_JIS変換をかけて表示しようとするため、文字化けが発生する。具体的にはFTPでアップロードしたファイルなどがこれに該当する。

これの解決案は、

  1. ftpd側でEUC←→Shift_JISの変換が実装されるのを待つ
  2. samba側でShift_JISファイル名ならファイル名変換しないという実装がされるのを待つ
  3. FFFTP利用者にEUCでアップロードするよう設定を変えて貰う

のどれか。2と3はあまり現実的ではないので1の方法を用いる。具体的には、ProFTPDにiconv()を用いて文字コード変換機能を付け足すパッチを適用します。これで、鯖上ではEUCなファイル名で保存され、FTPクライアント側ではShift_JISで表示されます。完璧じゃまいか!

http://www.hakusan.tsg.ne.jp/tjkawa/software/misc/proftpd-iconv/index.jsp

MRTG

xorg

Xorgインストール完了後の手順

# Xorg -configure

→xf860OpenConsole: KDSETMODE KD_GRAPHICS failedと表示される

http://mxpj.net/item/1650/catid/14

カーネルを新しくすれば直るらしい……。

subversion

インストール

# portinstall devel/subversion

とりあえずダウンロードしたいとき

% svn checkout (trunkのURL)
まるごとDLができる。
% svn update
checkoutしたやつを最新版にする(差分を落としてくる)
% svn commit
ローカルで変更したファイルをサーバーにうp(やったことない)
% svn status
サーバーとローカルの違いを表示(ファイル一覧)
% svn diff
サーバーとローカルの違いを表示(具体的にファイルの中身まで)

commit、status、diffはファイル名指定も可能。

gnome

http://sakura.take-labo.jp/freebsd/x11_gnome2.html

.xinitrcのtwm &以下をコメントアウトし、

exec gnome-session

を追記する。

cpan

# cpan -i hoge::fuga
インストール
# perl -MCPAN -e 'CPAN::Shell->r'
古くなったモジュール一覧
# perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'
古くなったモジュールを一括アップデート

関連

Plagger

インストール

# portinstall textproc/p5-Plagger

convmv

ファイル名の文字コードを変換する。

  • ProFTPd+FFFTPの組み合わせで作られたShift_JISのファイルを変換しようとするとうまくいかない。特にUTF8にすると--no-testが付いて無くてもファイル名を破壊するので注意。必ずバックアップを取ること。

関連サイト

HDD増設

HDD情報取得

karia@momoist[3]% sudo atacontrol list                            ~:14868 21:19
Password:
ATA channel 0:
    Master: acd0 <LITE-ON CD-ROM LTN-4891S/NDS3> ATA/ATAPI revision 7
    Slave:       no device present
ATA channel 1:
    Master:      no device present
    Slave:       no device present
ATA channel 2:
    Master:  ad4 <WDC WD800JD-75MSA2/10.01E03> Serial ATA II
    Slave:   ad5 <ST3320620AS/3.AAJ> Serial ATA v1.0
ATA channel 3:
    Master:  ad6 <ST31500341AS/CC1H> Serial ATA II
    Slave:   ad7 <ST31000340AS/SD15> Serial ATA II
karia@momoist[3]% sudo atacontrol cap ad7                         ~:14869 21:19

Protocol              Serial ATA II
device model          ST31000340AS
serial number         9QJ1SM07
firmware revision     SD15
cylinders             16383
heads                 16
sectors/track         63
lba supported         268435455 sectors
lba48 supported       1953525168 sectors
dma supported
overlap not supported

Feature                      Support  Enable    Value           Vendor
write cache                    yes      yes
read ahead                     yes      yes
Native Command Queuing (NCQ)   yes       -      31/0x1F
Tagged Command Queuing (TCQ)   no       no      31/0x1F
SMART                          yes      yes
microcode download             yes      yes
security                       yes      no
power management               yes      yes
advanced power management      no       no      65278/0xFEFE
automatic acoustic management  no       no      0/0x00  254/0xFE
karia@momoist[3]%  
参考: http://www.sssg.org/blogs/naoya/archives/tag/linux-freebsd-hdd

HDD上の不良セクタをさがす

ddで全セクタ読み出し。

関連サイト


リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS