HOME/ FreeBSD/ FreeBSD Life

FreeBSDで暮らす

これは、私が ``Windowsを起動せずにFreeBSDだけで一日をすごす'' ことを目標に環境構築した記録です。

この記録は、自分にとって環境構築の手引でもあります。 実際、ハードディスクの内容を失った時に一番役に立ったのがこの文章です。

ちょっと偏った感じですけど、ま、いいですよね。

私はいんちきFreeBSD使いなので、目的を達成するための手段は問いません。 なんとなく動いていてもよしとします。

前提条件

ここではある程度UNIX OSに慣れており、そこそこ知っている人を対象にしてい ます。ようは、しろうとに毛が生えた程度の人を対象にしてます。だから、インス トールとかエディタの使い方とか説明しません。

FreeBSD 4.3 Releaseを対象としています。

FreeBSD 4.1.1 Releaseを対象としていました。

ctwm

ウィンドウマネージャは個人的好みでctwmです。 昔からtwmを使っていた影響で、twm系のWMが好きなんす。 KDEやGNOMEは ``すごいなぁ'' と思うんですが、 シンプルで素朴なものもいいじゃないですか。

ctwmって日本語を表示できるの?

packagesにあるctwm-3.5.2bは国際化オプションがONでコンパイルされてます。 てことで、とくに工夫なく日本語が表示できます。

が、デフォルトの.ctwmrcだとだめっすよね。 これは、TitleFontやMenuFont, IconManagerFont などが日本語フォントになっていないからです。

TitleFont       "-*-helvetica-bold-r-normal--*-120-*-*-*-*-iso8859-1,-mnkaname-*-medium-r-normal--12-*-*-*-*-*-jisx0208.1983-0"

とかやるとタイトルに日本語がでます。 そのほかのアイコンマネージャとかメニューとかも同様のフォント指定で 日本語がでます。もちろん、日本語フォントがないとでないんですけどね。 packagesにあるja-netscape-fontsとかをいれれば大丈夫。 ていうか、Netscapeまずいれときましょう。どうせいれるんだしね。

わしゃ、むかしながらのTWMが使いたいんじゃ!

twmが好きでctwmを選んだなら、3Dのタイトルやメニューはさっさとやめましょう。 ThreeD関係の部分をコメントアウトしましょ。

#UseThreeDMenus
#UseThreeDTitles
#UseThreeDIconManagers
#UseThreeDBorders
#UseThreeDWMap

これで、twmにそっくりです。でもまだ納得いきません。 私がむかしSONY NEWSで使っていたtwm (トムのウィンドウマネージャ) は、 左上隅のアイコンが●ではなくXのロゴでした。

NoDefaults
LeftTitleButton  "xlogo11" = f.iconify

等と書けばいいんですけど、そのほかのデフォルト値が失われてしまうので、 リサイズアイコンとか全部自分で指定しなければならなくて面倒です。

ってことで、ctwmのソースを修正して再コンパイルしてしまいました。 こっちのほうが面倒っていう話もあるが気にせんでくれ。

portsを使ってソースをとって来た後、makeします。

util.cにあるTBPM_DOT, TBPM_ICONIFYあたりが怪しいので、

{ TBPM_DOT,         CreateXLogoPixmap },
{ TBPM_ICONIFY,     CreateXLogoPixmap },

てな感じで、手パッチを当てて再コンパイルして、make install すりゃオッケー。二か所あるから注意しなきゃね。

これで旧き良きtwmになりましたね。まぁ、もっとスマートな方法が あるんだろうけど、たまにはmakeしてみたいじゃん。

キーボードでウィンドウを飛び回ろう

Windowsじゃないんだから、キーボードでいろいろやりたいよねー。 ってことで、そういうカスタマイズしましょ。

こんな感じで書けば[Alt]-Pで前のウィンドウ、[Alt]-Nで次のウィンドウ。 最大化とか、最小化とか、XEmacsの起動とかできますな。 でも、Netscapeのショートカットキーとかとバッティングするんだよなー。 [Alt] + XXXはあんまり良くないかもね。

"p" = m : all : f.function "next-window"
"n" = m : all : f.function "prev-window"
"z" = m : all : f.zoom
"i" = m : all : f.iconify
"r" = m : all : f.raise
"e" = m : all : f.function "xemacs"
"f" = m : all : f.focus
"u" = m : all : f.unfocus

Function "next-window" {f.backiconmgr f.lower}
Function "prev-window" {f.forwiconmgr f.lower}
Function "xemacs" {f.exec "xemacs&"}
Function "netscape" {f.exec "netscape6&"}

あ、もちろんアイコンマネージャは表示しとかなきゃね。 好みもあるけど、ちょっとWindowsっぽくしてみるとこんな感じ。 フォントは自分のお好みで (でも日本語フォントにしとくのがいいかも)。

ShowIconManager
IconManagerGeometry "1024x10+0-0" 10

日本語入力環境

Canna (かんな)

やっぱかんなでしょう。Wnnでもいいけどさー。

portsからでもpackagesからインストールしましょう。

kinput2

kinput2もいるでしょう。ターミナル上の日本語入力以外にも、 ブラウザのフォーム入力でも使いますし。

packagesからバイナリをインストールします。楽だなぁ。 kinput2-cannaをインストールしました。

ktermでkinput2を使うために、.Xdefaultsに次の行を加えます。

*inputMethod:	kinput2

さらに、.cshrcに次の一行を加えます

setenv XMODIFIERS "@im=kinput2"

kinput2はどうせ使うものと思えば、.xinitrcにkinput2 を書いておくのも良いでしょう。

これでkinput2の設定はおしまいです。 ただ、これだけでは設定が正しいかどうかわかりません。 ktermをインストールして設定が正しいかどうか確かめてみましょう。

とおもったんですが、AcrobatReaderなどで.Xdefaultsの*inputMethod: kinput2が悪影響を与えるそうですので、覚えておきましょう。

日本語の表示できるターミナル (kterm)

深く考えずにktermをpackagesからインストールしましょう。 .Xdefaultsに次の一行を書き込んでデフォルトの文字コードをEUCにしましょう。

*VT100*kanjiMode:		euc
KTerm*vt100*translations: \
	#override Shift<Key>space: begin-conversion(_JAPANESE_CONVERSION)

これで、[shift]+[space]で日本語入力の小さなウィンドウが表示されるはず。

もし、これが出ない場合、日本語化されていないtcshを使っているかも。 日本語化されたtcshをインストールするのが吉。 でも、この現象はFreeBSD4.1まで。FreeBSD4.1.1からデフォルトのcshは tcshになり、しかも日本語化された物が入ってます。

そうそう、ちゃんとkinput2が立ち上がっているかどうかは確認しといてね。 立ち上げたければ

kinput2&

と打てばいいから。

Webブラウザ (Mozilla & Netscape)

やっぱWebブラウザは欠かせませんね。 Mozilla, Netscapeについて触れないわけにはいきません。

一世を風靡したNetscapeもすっかり勢いを無くしてしまいました。 Windowsの世界では衰退の一途をたどるNetscapeですが、 UNIX系OSではまだまだ現役ブラウザとして君臨しています。

しかし、いまやNetscape4.Xを使う理由は見つかりません。

それはMozillaがかなりイケてきたからです。

常用するブラウザとしてMozillaはすでに十分な完成度に達しているようです。

ということで、ここではMozillaについて重点的に説明します。

Mozilla 0.9.2 + JLP (日本語化パック)

Mozillaは現在のNetscape4.Xの代わりに常用できるWebブラウザです。 これまでのMozillaは常用するにはちょっと勇気が必要な品質だったのですが、 めきめきと頭角をあらわし、いまやNetscape4.Xを凌駕する勢いです。 現在Mozilla 0.9.2がリリースされています。

Mozillaの日本語リソースの提供を行っている人達がおり、 その成果をJLP (日本語化パック) として提供しています。 http://www.mozilla.gr.jp/の内容とそこからのリンクをみれば、 その凄さがわかるでしょう。

www.mozilla.orgからバイナリをダウンロードして、 JLPを組み込んでもよいのですが、 JLPを組込み済のportsを浅井さんが提供されており、 それを使ってソースからビルドするのが気に入っています。 浅井さんの作成したportsはフォントの指定などが見やすくなっていてGoodです。 ぜひ使うべきでしょう。

インストールに関しては、portsなのでmake; make installで終ります。

Netscape

もうNetscape4.Xは使っていません。 インストールすらしてません。

Netscapeは4.Xならportsを使えば問題なしでしょう。

Netscape6はPR (PreRelease) が出ていますが、 FreeBSDのネイティヴ版はないようです (Mozillaはあるのにね)。 なので、Linuxエミュレーションを使って動かす必要があります。

少なくともPR1はそれで動いたんですが、それ移行のPRは試してません。

まぁ、Mozillaがあるので、それほど気合いを入れてもしょうがないかなぁ。 と思ってますが、Netscape社にFreeBSDネイティヴ版を出してくれと要求するのは 良い運動だと思っています。

XEmacs

これからはXEmacsでしょ。 ということで、XEmacs+Cannaのパッケージをインストールします。

日本語フォントのバランスが悪いので、fixedなフォントを割り当てます。

(set-face-font 'default ;; face
	       "-*-fixed-medium-r-normal--12-*" ;; font
	       'global ;; locale
	       '(mule-fonts) ;; tag-set
	       'prepend) ;; how-to-add

かんなを動かすためには次の二行を加えます。[Ctrl] + oでかんなが起動する のが私の好みです。

(select-input-method "japanese-canna")
(global-set-key "\C-o" 'canna-toggle-japanese-mode)

かんなで[Ctrl] + hがきかないので、.emacsに次の一行を加えました。 なんでそうなのかは、良くわかりませんがとにかく動いてます。

(define-key canna-mode-map [delete] "\C-h")

電子メール (Wanderlust)

メールはWanderlustで読むことにしました。

というのは、IMAP4サーバをローカルにたてたからです。

Wanderlustもportsからインストールします。

設定

.emacsに次の一行を加えます。

(require 'wanderlust-startup)

で、ホームディレクトリに.wlというファイルを作り、 そこにWanderlust固有の設定を書きます。

雛型を/usr/local/share/examples/wanderlust/jaあたりからコピーします。

IMAPの設定では次の二行を加えました。

(setq elmo-default-imap4-server "centaur.tokuda.net")
(setq elmo-default-imap4-authenticate-type 'clear)

SMTPの設定では次の一行を設定しました。

;; メールを送信する先の (SMTP)サーバ
(setq wl-smtp-posting-server "centaur.tokuda.net")

Courier-imapではinboxの下にフォルダが作成されます。 送信済メールやゴミ箱もIMAP上に置きたいので次の設定を行いました。

.wlでは次のように記述しました。

(setq wl-fcc "%INBOX.Sent")	     ;; Folder Carbon Copy
(setq wl-trash-folder "%INBOX.Trash")

ドラフト (草稿) はローカルディレクトリにしか置けないそうなので、 Mewのディレクトリをそのまま使う設定にしました。

(setq wl-draft-folder "+draft")

C-oでの自動振り分けのルールは次のように書きました (一部抜粋)。

(setq wl-refile-rule-alist
    '(
         ("To"
             ("port-powerpc-ja@jp.netbsd.org" . "%INBOX.ML.port-powerpc-ja")
         )
         ("From"
             ("info@freeml.com" . "%INBOX.ML.info")
             ("newml@freeml.com" . "%INBOX.ML.info")
         )
     )
)

ドラフトモードではauto-fill-modeになって文字を折り返してくれます。 しかし、個人的な好みで60文字で折り返して欲しいので、次の設定をしてます。

(add-hook 'wl-draft-mode-hook
	  '(lambda ()
	     (auto-fill-mode t)
	     (set-fill-column 60)
	     ))

低速回線やPDAでメールを読む場合、 デフォルトの設定ではメールヘッダを大量に表示しすぎです。 シグマリオン+Air-H"+TeraTermの場合、メールヘッダだけでメッセージバッファが いっぱいになってしまいます。 で、表示させたくないヘッダは次のように指定します (抜粋)。

(setq wl-message-ignored-field-list
      '(
	"^Received:"
	"^Delivered-To:"
	"^X-UIDL:"
	"^Content-Type:"
	"^Message-Id:"
	"^Mime-Version:"
	))

フォルダの設定

.folders (sを忘れがち) に利用するフォルダの設定を行いました。

最初は最小限INBOX, Sent, Trashだけでも構わないですね。 あとはWanderlustからフォルダを作ったり消したりできます。

こんな感じかな。

%INBOX	"受信箱"
%INBOX.Sent	"送信済み"
+draft	"草稿"
%INBOX.Trash	"ごみ箱"
# end of file.

電子メール (Mew & im)

メールはMewで読むことにしましょう。 Mewはソースからインストールすることにしましょう。

Mew2がリリースされたようなので、 この章は古い情報です。

im

Mewの前にimをいれます。portsでオッケー。

インストールが終ったら、rehashしてimsetupを実行します。 imsetupはインタラクティブに質問して来るので、適宜答えれば良いです。 次の例はvivaというユーザのimsetupの様子です。 ほとんどがデフォルトでオッケーですね。

> imsetup
Where is your home directory? [/home/viva] 
Where is your Mail directory? [/home/viva/Mail] 
/home/viva/Mail does not exist. Create it? [yes] 
Creating /home/viva/Mail directory.
Directory /home/viva/Mail created.
Where is your News directory? [/home/viva/News] 
/home/viva/News does not exist. Create it? [yes] 
Creating /home/viva/News directory.
Directory /home/viva/News created.
What is your E-mail address(es)? [viva@tokuda.net] 
What kind of mail spool do you use? (local/POP/IMAP) [local] POP
What kind of POP authentication mechanism? (POP/APOP/RPOP) [POP]    
What is your POP account name? [viva]
What is your POP server name or IP address? [mail.tokuda.net] 
Do you want to preserve messages?
0 (delete immediately), -1 (preserve forever),
N > 0 (delete messages after N days)  [0] 
What is your SMTP server name or IP address? [mail.tokuda.net] 
Do you want to use value of Content-Length header for delimitation for local
mail? (Answer yes if your OS supports Content-Length header like Solaris 2.x,
otherwise answer no.) [no] 
Does your system can detect write errors without fsync(2)? (You can answer yes,
if your home directory is on local file system, otherwise answer no.) [no] 

Directory /home/viva/.im created.
Setup /home/viva/.im/Config.
> 

Mew

Mewもportsでおしまいです。

むしろ、.emacsの設定の方が重要ですね。 次に示した例は、次のような設定になっています。

(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)
(setq mew-mail-domain-list '("tokuda.net"))

; Mew-cite
(setq mew-cite-prefix-function 'mew-cite-prefix-username)
(setq mew-addrbook-for-cite-label 'nickname)
(setq mew-addrbook-for-cite-prefix 'nickname)

; FCC
(setq mew-fcc "+Backup")

; Auto Fill-mode
(setq mew-draft-mode-hook (function (lambda () (auto-fill-mode 1))))

; Color Message Body
(setq mew-use-highlight-body t)

URLをクリックしてブラウザを起動する

最近のメールはURLが書きこまれていることが多く、 URLをクリックするとブラウザが起動してくれると便利です。

Mewの標準機能としては用意されていないようですが、 Mewのアーカイブを展開するとcontribディレクトリができるはずです。 このcontribディレクトリにあるmew-browse.elを Mewをインストールしたディレクトリにコピーして .emacsに次のような記述を追加します。

;; browser-url
(require 'mew-browse)
(setq browse-url-browser-function 'browse-url-netscape)
(setq browse-url-netscape-program "mozilla")

Mewのアドレス帳

Mewでももちろんアドレス帳が使えます。 ~/.im/Configというimの設定ファイルのAddrBookFileのコメントを外し、 ファイル名を指定します。デフォルトは~/.im/Addrbookですね。 まぁ、このファイルで良いでしょう。

アドレス帳に関しては、Mewのinfoを読めば載ってます。 たとえば、こんな感じで鈴木、高橋、佐藤の三人をアドレス帳に書くとします。

suzuki		suzuki@company.co.jp,
		suzuki@private.ne.jp	鈴木くん	"Taro SUZUKI"
takahashi	takahashi@company.co.jp	高橋さん	"Ichiro TAKAHASHI"
sato		sato@company.co.jp,
		sato@private.ne.jp	さとっち	"Jiro SATO"

最初のフィールドはアドレス帳での識別子になります。ここは重複させないよう にしないといけません。 二つ目のフィールドがメールアドレスです。メールアドレスを複数持っている 人はカンマで区切って複数のアドレスを書くことができます。 三つ目のフィールドがニックネームです。上に示した、.emacsの引用の 指定をそのまま使っている場合には、ニックネームで引用されます。 四つ目のフィールドは、アドレスの展開時にフルネームとして補われるものです。

アドレス帳は、Mewでメールを作成する時にFromやCcのところで、識別子を 入力し、[TAB]を押すと、アドレス帳に登録したメールアドレスに展開してくれます。 複数のメールアドレスをカンマ区切りで登録した人は[TAB] を何度も押すと複数のメールアドレスが表示されます。

Palm/Pilot

もちろんFreeBSDでもPalm/Pilotは使えます。 Palm関係のpackagesを片っ端からインストールして、自分の気に入った ものを使うと良いでしょう。私は、jpilotを使うことにしました。

jpilot

jpilotはWindowsでいうところのPalm Desktopに相当する機能を持つ GUIベースのアプリケーションです。

portsには/usr/ports/palm/jpilotがありますが、 日本語が最初から使える/usr/ports/japanese/jpilotを使います。 portsなのでmake; make installでインストールは完了します。

pilot-linkの設定

jpilotはpilot-linkというCUIベースのアプリケーションを呼び出して HotSyncなどを行います。pilot-linkはjpilotのports をインストールすると自動的にインストールされます。

pilot-linkを利用するために最小限やっておいた方がよい設定は 環境変数PILOTPORT, PILOTRATEでしょう。

PILOTPORTにはPalm/Pilotとクレイドルを接続しているシリアルポートデバイス を指定します。たとえば、COMポート1と2があり、 COMポート1にクレイドルを接続している場合には.cshrcに、

setenv PILOTPORT /dev/cuaa0

と記述します。

PILOTRATEはシリアルポートとPalm/Pilotとの通信速度で、

setenv PILOTRATE 115200

などと記述します。

jpilotを使ったHotSync

HotSyncはjpilotのSyncボタンを押し、クレイドルのHotSyncボタンを押します。 Windowsのようにボタン一発といかない所がちょっとくやしい所です。

HotSync時にパーミッションのエラーが出ることがあります。 これは/dev/cuaa0や/dev/cuaa1などにアクセスする権限がないからです。

これを回避するには/etc/groupのdialer グループに自分のユーザ名を追加すればOKです。

ただし、/etc/groupの変更の反映はログインをしなおす必要があるので、 注意が必要です。

その他のPalm/Pilot関係の設定

Palm/Pilot関係のファイルは/usr/local/pilotにインストールされるので、 これらのディレクトリにパスを通しておく必要があります。

とくに、MANPATHにも/usr/local/pilot/manを追加しておくのを忘れがちですね。

ちなみに、フルリセット後のPalmPilotはHotSyncできませんでした。 端末IDが設定されていないとダメらしく、一回WindowsでHotSyncすれば うまくいきました。本当にこれが正しい方法か良くわからんのですが...

ホイールマウス (インテリマウス)

FreeBSDでもホイールマウスは使えます。わたしはMicrosoftのPS/2版の インテリマウス (バルク品で購入) を使っています。

Netscape, Mozillaなどはデフォルトでホイール機能が使えるようになっており、 グリグリとスクロールさせたりできます。ktermもリソースを設定すれば ホイール機能が使えるようになります。

まず、mousedの設定です。/etc/rc.confでmousedの設定をしている場合には 次のように、フラグとして ``-z 4'' を指定します。

moused_enable="YES"
moused_flags="-z 4"

この設定が終ったら、mousedを再起動します。めんどい人はリブートしましょ。

(XFree86 3.X固有の設定) 次に、/etc/XF86ConfigのPointerセクションを次のように設定します。

Section "Pointer"
   Protocol        "SysMouse"
   Device          "/dev/mouse"
#   Emulate3Timeout 50
   Resolution      100
   Buttons         5
#   Emulate3Buttons
EndSection

(XFree86 3.X固有の設定おわり)

(XFree86 4.X固有の設定)

Section "InputDevice"
    Identifier	"Mouse1"
    Driver	"mouse"
    Option "Protocol"    "auto"
    Option "Device"      "/dev/sysmouse"
    Option "Buttons"     "5"
EndSection

(XFree86 4.X固有の設定おわり)

3ボタンマウスのエミュレーションを行っている場合にはホイールが使えません。 上の例のように、Emurate3関係の設定はコメントアウトしましょう。 ちなみに、わたしはこれでハマりました。

ダイアルアップ接続する

ISDNルータを買いました。 ので、この項目は今後更新されないでしょう (4.1.1Releaseでおしまい)。

と思っていたら、けっこう使うんだよね。PPPって。 なぜかというと、DoCoMoのP-inとかで通信したい時ってやっぱりPPPだしね。

ダイアルアップ環境としては、

を使ってみました。

ppxpの方が設定も楽で、GUIプログラムも付属しており使いやすいのですが、 私のスキル不足のため4.1.1 Releaseからはうまく設定できません。 ので、消極的に標準のpppを使う事にしました。

ppp

pppは標準コマンドなので、特別インストールする物はありません。

早速設定に入ります。

/etc/ppp/ppp.conf の中にある次の三行を見つけて、

set phone PHONE_NUM
set authname USERNAME
set authkey PASSWORD

PHONE_NUM, USERNAME, PASSWORDの部分をプロバイダへの電話番号、ユーザ名、パ スワードに書き換えればオッケーです。

デフォルトルートを設定している場合には、

delete default

も設定する必要があります。

これができたら、接続試験です。

ppp papchap

と入力して、プロンプトが ppp>にかわったところで、

ppp> dial

と入力しプロンプトがPPP>にかわれば成功です。

つながらない場合には、ppp.confの

set device /dev/cuaa1

を確認し、COMポート1ならcuaa0を指定しているか、 COMポート2ならcuaa1を指定しているかどうか確認しましょう。

ホスト名が引けないようなら、/etc/resolv.confの設定を見直しましょう。

/etc/resolv.confが無い人は作成して、 プロバイダのネームサーバを指定しましょう。

ppxp

この内容はFreeBSD 4.1で動作確認した物です。

ppxpをpackagesからインストールし、 各プロバイダへのダイアルアップの設定を行います。

ppxpとコマンドラインから実行し、qdialと入力します。 すると、QUICK DIALUPの画面が表示されるので、必要な項目を埋めます。

Device NameはCOM1にモデムをつないでいる場合には、/dev/cuaa0あたりを 指定しておけば良いでしょう (COM2なら/dev/cuaa1)。 Dial Typeはデフォルトで良いですし、Phone Number, Login Nameとか 普通に指定します。っていうか、これぐらい指定できない人は 出直しましょう。

More...という選択項目があり、ここでは更に詳しい情報を設定できます。 が、おそらくDNS Serversの設定は必須でしょう。 さらに、Create resolv.confもチェックしておくと良いと思います。

で、セーブして、接続の試験をしましょう。 まぁ、ここからが正念場ですね。がんばってください。 ちなみに、私は接続まではうまくいくのにパケットが外に飛ばないという 現象が起こりました。 しかたがないので、routeコマンドでデフォルトルートを プロバイダに向けるという暫定対処で乗り切ってます。 具体的には、/usr/local/etc/ppxp/ip/drouteupの一行目に、 iproute delete defaultという一行を加えてしまいました。 どう考えてもあまりよろしくない対処なんですが、 そのうちに直しましょうね。

お気に入りの音楽に囲まれて暮らす

音楽は人の心を豊かにします。

お気に入りの音楽を聞きながら贅沢なひとときをすごしましょう。

ハードウェアの設定

まずはハードウェアの設定が必要です

デフォルトのカーネルでは、サウンド機能を有効にするためのデバイスが 組み込まれていません。

/usr/src/sys/i386/conf/GENERICを適当なファイル名でコピーして、 サウンド用デバイスpcmを有効にしましょう。

具体的には、device pcmという行を有効にすれば、 PCIのサウンドカードは結構認識するものです。

pcmデバイスを有効にしたら、カーネルをコンパイルしてインストールしましょう。 あとは、デバイスが有効になっているかどうかを確認しましょう。 ブート時のメッセージはdmesgコマンドを実行すれば確認できます。

つぎに、/dev/MAKEDEVコマンドを実行してsnd0を作ります。

cd /dev
./MAKEDEV snd0

これでオッケーです。

MP3形式のデータから音楽を聞く

最近は著作件関係の法律がらみでMP3関係のファイルが配布中止になったりして ますが、そのへんはよくわかりません。

コマンドラインインターフェースのMP3プレイヤー (mpg123)

mpg123はコマンドラインから実行するMP3再生ソフトウェアです。 portsからインストールしましょうね。

引き数にMP3ファイルを与えれば再生することができます。簡単ですね。

GUIを使ったリッチなMP3プレイヤー (xmms)

xmmsはかなり高機能なMP3プレイヤーです。portsからインストールしましょう。

使い方は、適当にさわってればわかるでしょう。

MP3ファイルを作成する (音楽CDからmp3ファイルを作成する)

CDからWAVファイルを作る (dagrab)

CDからデータを取り出す事をリッピングと言うらしいですね。

dagrabを使います。portsからインストールしましょう。

CDに含まれているトラックのリストを出しましょう。

dagrab -i -d /dev/acd0c

1曲目と13曲目をリッピングするには次のようなコマンドを実行します。

dagrab -d /dev/acd0c 1 13
実行が終ると、track01.wav track13.wavというファイルができているはずです。

WAVファイルからMP3ファイルを作る (bladeenc)

WAVファイルをMP3ファイルにエンコードするためにbladeencを使います。 portsからインストールします。

さっき作ったtrack01.wav, track13.wavをMP3ファイルにエンコードするには 次のようなコマンドを実行します。

bladeenc track01.wav track13.wav

これで、MP3ファイルができあがっているはずです。

リッピングとエンコードをまとめてやる (ripenc)

リッピングとエンコードを手動でやってもいいんですが、 ripencを使えばこれらのコマンドを自動的に呼び出してくれるのでラクです。

bladeenc, dagrab, xmcd, ripencをインストールします。 で、ripencを実行して、encoderにbladeenc, ripperにdagrabを指定します。 ATAPIのCD-ROMから吸い出すので/dev/acd0cをCd-Rom deviceに指定します。

ワーク用のディレクトリにでかいファイルを置くので、 1) Change working directoryは適当なディレクトリに変更しておく必要がありま す。

あとは、適当にいじっていればできますよね。

そうそう、/dev/acd0cはrootじゃないと触れないので、ripencはrootで やる必要がありますね。chownすりゃ良いのか?

AVI,Mpeg1の動画を見る

Mpegはsmpeg, mpeg_playなどがportsにあるのでそれをインストールします。 AVIファイルはxanimですね。

最近はsmpegのplaympegコマンドで観てますかね。

あとは、xmpsかな。でも不安定です。

Webオーサリング

HTMLを書く

YaHtml (HTML屋) がよい。なんでかって? 慣れたから。

YaHtmlをいれたきゃPortsからYaTeXをいれるのが早いかな。

って思ってたけど、www.yatex.orgのQ&Aを読んでみると、 1.69からfont-lockが使えるじゃないですか!!

FreeBSD4.3のportsは1.69なので何も考えずportsから入れましょう。

FreeBSD4.2以前のportsは、YaHtmlのバージョンが1.67なので YaTeXのWebページから最新の1.69.2 をダウンロードして自力でコンパイルしてインストールします。

まぁ、tar.gzをほどいて、makefileのEMACSのところをxemacsに修正して make; make installでだいたいうまくいきます。

.emacsに次のように書いています。

(setq auto-mode-alist
      (cons (cons "\\.html$" 'yahtml-mode) auto-mode-alist))
(autoload 'yahtml-mode "yahtml" "Yet Another HTML mode" t)
;;(setq yahtml-www-browser "mozilla")

(setq yahtml-path-url-alist
      '(("/home/tokuda/public_html" . "http://jetworld.tokuda.net/~tokuda")))

;; YaTeX Kanji Code (1: ShiftJIS, 2: JIS, 3: EUC)
(setq YaTeX-kanji-code 3) 
(setq yahtml-kanji-code 3)

で、C-c t p で編集中のファイルをブラウザで表示できるんだけど、 mozillaの場合、このコマンドをいれるたびにmozillaを新しく起動してしまいます。 ここはやはり既に起動しているブラウザを再利用してもらいたいもんです。

で、安直な解決策はMozillaを netscapeという名前でシンボリックリンクしてしまいました。

すいません。

Webを更新する

個人でWebを運営していると、ローカルのディスクから (プロバイダなどの) リモートのディスクにファイルを転送する必要があります。

ローカルのディスクに保存されているファイルを全て転送すれば、 とりあえずすべての変更は反映されます。 しかし、全てのファイルを転送するには時間もかかります、 電話回線を使ったダイアルアップ環境ならばお金もかかります。

さらに、すべてのファイルを転送するだけでは、 ローカルでは不要と判断し、削除したファイルがリモートに残ってしまいます。 これでは、時間が経つにつれリモートのディスクは増加する一方です。

そこで、修正されたファイルだけを転送してくれて、 ローカルで削除されたファイルを検出し、 リモートにあるファイルを削除してくれるようなツールがあると便利です。

そういうツールがsitecopyです。

sitecopyはWebの更新に便利なツールです。 packagesからインストールするだけです。

sitecopyの設定

まず、ディレクトリを作成します。.sitecopyというディレクトリを 0700で作成します。人に見られないようにパーミッションは700で作ります。

mkdir -m 700 .sitecopy

次に、設定ファイル.sitecopyrcを作成します。 このファイルにはパスワードをじか書きしますからパーミッションは600です。

touch .sitecopyrc
chmod 600 .sitecopyrc

.sitecopyrcの中身はこんな感じです。

site jetworld
  server jetworld.tokuda.net
  url http://jetworld.tokuda.net/~viva
  username viva
  password viva
  local ~/public_html
  remote ~/public_html
  symlinks ignore
  exclude "*#"
  exclude "*~"

sitecopyの実行

リモートに何もファイルがない場合 (つまり初めて実行する場合)、

sitecopy -i jetworld

と実行します。これは一回だけやればOKです。 その後の更新は

sitecopy -u jetworld

と入力すれば同期がとれます。

リモートにすでにファイルがある場合、

sitecopy -c jetworld

と実行します。これも一回だけやればOKです。その後の更新は

sitecopy -u jetworld

と入力すれば同期がとれます。

同期したくないディレクトリ

CGIのディレクトリなど同期したくないディレクトリがある場合には、 そのディレクトリをシンボリックリンクにする手があります。 sitecopyはデフォルトでシンボリックリンクを無視します。

と、manには書いてあるような気がするんですが、.sitecopyrcには

symlinks ignore

と明示的に書いておきましょう。

ちなみに、ローカルでシンボリックリンクのディレクトリがあり、 リモートでシンボリックリンクでない同名のディレクトリがある場合、 リモートのシンボリックリンクでない同名のディレクトリは消去されます。 こわいですねぇ。

ということで、わかりやすい運用を目指すならば、 ローカルでもリモートでもシンボリックリンクにしておくと良いでしょう。

Visioライクなドローツール (dia)

ちょっとした図を書きたいことがあります。 こんなニーズには最近だとVISIOがWindowsの世界では人気がありますね。

そんなツールがdiaです。

VISIOのようにステンシルに相当する機能もありますし、 図形と図形をコネクタで接続し、 図形を移動するとコネクタもそれに応じて伸縮します。

しかも、作成した図形をさまざまな形式にエキスポートできるのも魅力です。

Webでちょっと図を入れたいことが良くあるんですが、 diaはPNG形式でエキスポートできるのでとっても便利です。

diaはportsにあります。が、4.2Rのportsだとなぜかうまくいきません。

portsを更新するか、自分でコンパイルすることになります。

diaのコンパイル

diaをコンパイルする前に、必要なライブラリをインストールしておきます。

portsで言うと/usr/ports/japanese/gnomelib, /usr/ports/graphics/gdk-pixbuf あたりでしょうか。たぶん、imlibとかも必要ですよね。

dia-0.86.tar.gzを取得し、展開します。

./configureコマンドを実行してmakeすれば基本的にはオッケーです。

が、なぜかPNG形式のエキスポートができないのでなんでかなー。 といろいろ思考錯誤した結果、

あたりを指定し、configureを実行する必要があります。 configureを実行した後config.hに#define HAVE_LIBPNG 1という行があればOKです。

また、config.logをチェックし、エラーが出ていないかどうか確認しましょう。

あとは、make; make installでオッケーです。

diaで日本語を出す

パッチを当てましょう。

CD-Rの作成 (mkisofs, burncd)

いままで認識すらしなかったATAPIのCD-RWドライブがちょっとした細工で 認識するようになったので、CD-Rの作成に挑戦しました。

ちょっとした細工といっても、IDEの設定で、マスターとスレーブを入れ換えた だけなんですけど、何故かそれ動くようになったんですが...

そのまえに準備です

当然ですが、デバイスがないと動きません。

二台のATAPIドライブをつないでいる私は、

cd /dev
./MAKEDEV acd1

かなんかで二台目のATAPI CDデバイスを作っておきました。 結果的にはこっちは使わなかったんですが。一応。

あとは、でかい空き容量のあるディスクがあればいいです。 これが結構きついのかもね。

CD-Rを作ろう

ISOイメージを作る (mkisofs)

まずは書き込むファイルをISOイメージファイルとして用意する必要があります。

ISOイメージファイルを作るコマンドはmkisofsです。 /usr/ports/sysutils/mkisofsから作りましょ。

終りましたか? 終ったら書き込みたいファイルを集めたディレクトリを作りま しょう (/usr/home/tokuda/cdrとしましょう)。

そのディレクトリをまとめてISOイメージファイル (cd.isoとします) にするに は次のようなコマンドを実行します。

mkisofs -o cd.iso cdr

ここで注意しなければならないのはcdrというディレクトリは作成されずに、 cdrというディレクトリにあるファイルがCDのルートディレクトリ置かれるという ことです。

また、WindowsなISOイメージを作るにはJOLIET形式で作成する必要があります。 そうしないと、8+3文字形式の寂しいISOイメージができあがっちまいます。

JOLIET形式にするにはJオプションです。

mkisofs -J -o cd.iso cdr

CD-Rに書き込む (burncd)

ATAPIのCD-Rドライブに書き込むためのコマンドがburncdです。 知らないうちに標準のコマンドとしてインストールされていてびっくりです。 manによるとFreeBSD4.0から登場したらしいです。

さっきのcd.isoをCD-Rに書き込むには次のようなコマンドを実行します。

burncd -f /dev/acd0c data cd.iso fixate

これだと標準速での書き込みなので、 4倍速で書き込みたければ-sオプションをつけるといいみたいです。 やってみたところ問題なく成功しました。 せっかちでお急ぎの御仁は試してみる価値ありでしょう。

burncd -f /dev/acd0c -s 4 data cd.iso fixate

設定ファイル

いまんとこ使っている設定ファイルです。 へぼいところがあったら (あるよね) おしえてください。

今となってはちょっと古くさいですね。


HOME/ FreeBSD/ FreeBSD Life

$Lastupdate: Mon Mar 18 02:30:03 2002 $