関連:Computer/UNIX / Computer/Linux
まずはcvsup導入。これは必須。
# cd /usr/ports/net/cvsup # make install clean
この後のやり方は2通りに分かれる。
その後、/usr/share/examples/cvsup にある ports-supfile、stable-supfile、doc-supfile を以下のように編集する。具体的には、hostを近いサーバーへと変更する。
*default host=CHANGE_THIS.FreeBSD.org
↓
*default host=cvsup3.ja.FreeBSD.org
/etc/make.confにパラメータを指定しておくと、上記のような修正作業は不要。この場合の、これより↓にあるcvsupコマンドを使わず、以下のように作業する。
# cd /usr/src # make update
make.confにちゃんとport-supfileのことまで指定してあれば、上記のように/usr/srcで作業すれば/usr/portsまで更新してくれるらしい。あたまいいー。
要はOSを最新版へとアップデートする作業。RELEASEからSTABLEになる。
cvsupとstable-supfileを使ってソースコードをアップデートする。
# cvsup -g -L 2 stable-supfile
その後は以下のように入力。
# cd /usr/src # make clean # make buildworld # make buildkernel # make installkernel # reboot
(ここでシングルユーザーモードへ)
# mount -a # cd /usr/src # make installworld
※FreeBSD6.1へのアップデートの場合、installkernelでエラーが出ることがある。この場合、/etc/groupにauditというグループを加えてやればよい。
この時点で/etcはまだ変更が反映されていないので、mergemasterを実行。
# mergemaster -siva # mergemaster -sivr
sivaで新規追加ファイルを確認無しでインストールするため作業量が軽減できる。mergemasterのコマンドは以下の通り。
バージョンが上がっているかどうかは以下のコマンドで確認できる。
% uname -a
アプリケーションを簡単にインストールできちゃうシステム。ただし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
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
インストールは以下の通り。
# portinstall www/apache2
/etc/rc.confに以下のように指定する。
apache2_enable="YES"
apacheの起動は以下のように指定する。
# /usr/local/etc/rc.d/apache2.sh restart
アップグレードは以下の通り。
# portupgrade -RcC apache
Rは依存関係にあるアプリケーションのアップグレード(これを指定しないと「依存関係にあるアプリが古いためアップグレードをやめました」と表示されアップグレードせずに終了することがある)、cCはコンパイル前後のclean。
# portinstall ftp/proftpd
設定画面では好きなのを選べるが、とりあえずはデフォルトで良いみたい。
portsからインストールした場合の設定ファイル:/usr/local/etc/smb.conf
再起動:/usr/local/etc/rc.d/samba.sh restart
# portinstall zsh+euc_hack
この下は各ユーザーで作業。
% chsh -s /usr/local/bin/zsh
以下のコマンドで現在のシェルを確認できる。
% echo $SHELL
インストールされているシェルの一覧は以下の通り。
% less /etc/shells
コマンドラインスタック機能を使って、今打ち込んだコマンドを一時的にスタックしてくれる。やりかたはESC-q。これで今打ち込んだコマンドが消えて新しいコマンドを入力でき、次にコマンドプロンプトが表示されるときに自動的に先ほどのコマンドが表示される。
Ctrl-rでインクリメンタルサーチモードへ入れる。繰り返しCtrl-rを押すとさらに検索結果をさかのぼれる。
インストール方法は以下の通り。
# portinstall screen
Ctrl-aが標準のキーバインドになっているが、これはemacs等で使用しているので変更した方がよい。自分の場合はCtrl-zにしている(Ctrl-tにしているサイトが多いけど、zの方が指が近くて押しやすい)。この場合は.screenrcに以下のように記述する。
defencoding eucJP escape ^z^z
新しい仮想画面の生成
^z c
仮想画面の切り替え
^z [SPACE] / ^z n / ^z [DEL] / ^z p
仮想画面のウインドウ名変更(Aは大文字のA→Shift + a)
^z A
仮想画面の一覧表示
^z w
仮想画面を一時的に保存して閉じる場合(screenを抜ける)
^t d
保存されているscreenの一覧表示
% screen -ls
閉じてしまったscreenの復活
% screen -r
画面分割
^z S
分割した画面同士の移動
^z [Tab]
lsは標準では日本語ファイル名を表示しない(「できない」ではなく「しない」)ように設定されている。ls -wもしくはls | catで正しく表示されるはず。これはaliasに設定しておくとよい。jlsをインストールし、aliasでlsとして動くよう設定する方法もある(おそらくこっちの方が安全)。
ftpdは日本語のファイル名を変換したりなんかはしないので、FFFTP等から日本語ファイル名のファイルをアップロードするとそのファイル名はShift_JISになる。この場合、コンソールからはls | nkfとすることで正しく表示ができる。
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でアップロードしたファイルなどがこれに該当する。
これの解決案は、
のどれか。2と3はあまり現実的ではないので1の方法を用いる。具体的には、ProFTPDにiconv()を用いて文字コード変換機能を付け足すパッチを適用します。これで、鯖上ではEUCなファイル名で保存され、FTPクライアント側ではShift_JISで表示されます。完璧じゃまいか!
http://www.hakusan.tsg.ne.jp/tjkawa/software/misc/proftpd-iconv/index.jsp
パスワードを間違えた時はバックスペースをいっぱい押さないでもCtrl-uでやり直しできる。
Top以外でシステム情報を見る方法