次のページ 前のページ 目次へ

4. ソフトウェアの設定

これから以下のファイルについて設定ファイルのカスタマイズを説明します。 /etc/profile /etc/bashrc .bashrc .bashrc .bash_profile .bash_logout .inputrc .less .lessrc .xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xmodmap.num .Xdefaults .jedrc .abbrevs.sl .joerc .emacs 。 システムの設定が終わるまではユーザの追加を行わないでください。これら のドットファイルは /etc/skel に入れます。

4.1 bash(1)

おそらく、カーネルの次に重要なソフトウェアです。bash の動作を 設定するには以下のファイルを編集します:

これらのファイルの例を以下に示します。まずは最も重要な /etc/profile です。このファイルは、後の節で出てくる Linux マシンの特徴の多くを決めます。 後でまた参照してください。


# /etc/profile

# System wide environment and startup programs
# Functions and aliases go in /etc/bashrc

# This file sets up the following features and programs:
#
#   o path
#   o prompts
#   o a few environment variables
#   o colour ls
#   o less
#   o rxvt
#
# Users can override these settings and/or add others in their
# $HOME/.bash_profile

# set a decent path
PATH="$PATH:/usr/X11R6/bin:$HOME/bin:."

# notify the user: login or non-login shell. If login, the prompt is
# coloured in blue; otherwise in magenta. Root's prompt is red.
# See the Colour-ls mini HOWTO for an explanation of the escape codes.
USER=`whoami`
if [ $LOGNAME = $USER ] ; then
  COLOUR=44  # blue
else
  COLOUR=45  # magenta
fi

if [ $USER = 'root' ] ; then
  COLOUR=41  # red
  PATH="$PATH:/usr/local/bin"
fi

ESC="\033"
PROMPT='\h'    # hostname
STYLE=';1m'    # bold
# PROMPT='\u'  # username
# STYLE='m'    # plain
PS1="\[$ESC[$COLOUR;37$STYLE\]$PROMPT:\[$ESC[37;40$STYLE\]\w\\$ "
PS2="> "

# no core dumps, please
ulimit -c 0

# set umask
if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
  umask 002
else
  umask 022
fi

# a few variables
USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"  # sendmail, postfix, smail
# MAIL="$HOME/Mailbox"        # qmail
NNTPSERVER=news.myisp.it      # put your own here
VISUAL=jed
EDITOR=jed
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
HISTFILESIZE=1000
export PATH PS1 PS2 USER LOGNAME MAIL NNTPSERVER
export VISUAL EDITOR HOSTNAME HISTSIZE HISTFILESIZE

# enable colour ls
eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-s -F -T 0 --color=yes'

# customize less
LESS='-M-Q'
LESSEDIT="%E ?lt+%lt. %f"
LESSOPEN="| lesspipe.sh %s"
LESSCHARDEF=8bcccbcc13b.4b95.33b. # show colours in ls -l | less
# LESSCHARSET=latin1
PAGER=less
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARDEF

# fix the backspace key in rxvt/xterm
CTRL_H="\010"
NULL_STRING=" $CTRL_H" # space + backspace
if [ "$NULL_STRING" != "" ] ; then
  stty erase ^?
else
  stty erase ^H
fi

# set xterm title: full path
case $TERM in
  xterm*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
    ;;
esac      

for i in /etc/profile.d/*.sh ; do
  if [ -x $i ]; then
    . $i # beware - variables and aliases might get overridden!
  fi
done

# call fortune, if available
if [ -x /usr/games/fortune ] ; then
  echo ; /usr/games/fortune ; echo
fi

次は /etc/bashrc です:


# /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile
# Insert PS1 definitions here if you experience problems.

export CDPATH="$CDPATH:~"

# common aliases
alias cp='cp -i'
alias l=less
alias ls="ls $LS_OPTIONS"
alias mv='mv -i'
alias rm='rm -i'
alias rmbk='/bin/rm -f .*~ *~ *aux *bak *log *tmp 2> /dev/null'
alias u='cd ..'
alias which="type -path"
alias x=startx

# A few useful functions
c ()    # cd to the new directory and list its contents
{
  cd $1 ; ls
}

inst()  # Install a .tar.gz archive in current directory
{
  if [ $# != 0 ]; then tar zxvf $1; fi
}

cz()    # List the contents of a .zip archive
{
  if [ $# != 0 ]; then unzip -l $*; fi
}

ctgz()  # List the contents of a .tar.gz archive
{
  for file in $* ; do
    tar ztf ${file}
  done
}

tgz()   # Create a .tgz archive a la zip.
{
  if [ $# != 0 ]; then
    name=$1.tar; shift; tar -rvf ${name} $* ; gzip -9 ${name}
  fi
}

crpm()  # list information on an .rpm file
{
  if [ $# != 0 ]; then rpm -qil $1 | less; fi
}

これは .bashrc の例です。


# $HOME/.bashrc
# Source global definitions

if [ -f /etc/bashrc ]; then
  . /etc/bashrc
fi

# this is needed to notify the user that they are in non-login shell
if [ "$GET_PS1" = "" ] ; then
  COLOUR=45; ESC="\033"; STYLE=';1m';  # STYLE='m'
  USER=`whoami`
  export PS1="\[$ESC[$COLOUR;37$STYLE\]$USER:\[$ESC[37;40$STYLE\]\w\\$ "
fi

# personal aliases
alias backup='tar -Mcvf /dev/fd0'
alias dial='eznet up myisp'
alias f='cd ~/fortran'
alias hangup='eznet down'
alias lyx='lyx -width 580 -height 450'
alias restore='tar -M -xpvf /dev/fd0'

# personal functions
xj()    # Launch xjed and a file in background
{
  xjed $1 &
}

これは .bash_profile の例です。


# $HOME/.bash_profile

# User specific environment and startup programs
# This file contains user-defined settings that override
# those in /etc/profile

# Get user aliases and functions
if [ -f ~/.bashrc ]; then
  GET_PS1="NO"  # don't change the prompt colour
  . ~/.bashrc
fi
    
# set a few `default' directories
export CDPATH="$CDPATH:$HOME:$HOME/text:$HOME/text/geology"

これは .inputrc の例です。


# $HOME/.inputrc

# key bindings
"\e[1~": beginning-of-line
"\e[3~": delete-char
"\e[4~": end-of-line
# (F1 .. F5) are "\e[[A" ... "\e[[E"
"\e[[A": "info \C-m"

set bell-style visible          # please don't beep
set meta-flag On                # allow 8-bit input (i.e, accented letters)
set convert-meta Off            # don't strip 8-bit characters
set output-meta On              # display 8-bit characters correctly
set horizontal-scroll-mode On   # scroll long command lines
set show-all-if-ambiguous On    # after TAB is pressed

xterm や 他の X11 アプリケーションで backspace と del キーを 正しく動作させるには以下のようにしてください:

rxvt の場合には、コンパイル時のいくつかのオプションが動作に 影響するなど、ほんの少しだけ複雑です。詳しくは上記の /etc/profile を見てください。

さらに詳しい情報については man ページの bash(1) や readline(3) を見てください。

全てのアプリケーションが正しく動くとは考えないでください! 例えば xterm 上で joe を実行すると、一部のキーは動作しませ ん。同じ問題が一部のバージョンの rxvt でも起こります。

4.2 ls(1)

ls はファイル形式ごとに違った色でファイル一覧を表示できます。 この機能を有効にするためには、/etc/profile に上で示した行 をいくつか追加する必要があります。しかし、rxvt のバージョンによっ てはきちんと動きません。代わりに xterm 系の端末エミュレータを 使ってください。古い rxvt の一部には、環境によっては環境変数 を引き継げなくなるというバグがあるようです。

Caldera の ls では色が出ないようですが、これと同等の color-ls があります。以下の行を /etc/bashrc に追 加してください:

alias ls="color-ls $LS_OPTIONS"

4.3 less(1)

この優れたページャを用いると、テキスト文書だけでなく、gzip で圧縮さ れたファイル、tar や zip のアーカイブ、 man ページなどを読むことができ ます。設定は以下のように行います:

4.4 emacs(1)

私はたまにしか emacs を使いませんので、いくつかの tips しかお 教えできません。 いくつかの emacs ディストリビューションでは色付けや構文強調表 示が最初は設定されていません。以下の行を .emacs に追加してく ださい:

(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)

これは、X11 でだけ有効です。さらに アクセント付き文字を使えるようにする には、以下の行を追加してください。

(standard-display-european 1)

自分の要望に合うように設定するために emacs のすべてのドキュ メントを熟読するのは、読者の皆さんにお任せします。もしかするとハッキン グには何ヵ月もかかるかもしれませんが。Dotfile generator ( 設定プログラム をご覧ください)は良い手 助けとなるでしょう。

4.5 joe(1)

joe のいくつかのバージョンは、コンソールで色が使えません。ま たいくつかの特殊キーが動作しません。前者の問題の手っ取り早い解決方法は (あまりきれいではありませんが)以下のとおりです:

~$ export TERM=vt100
~$ joe myfile
   (edit your file)
~$ export TERM=linux

特殊キーを動作させるためにすることは、.joerc, .jstarrc あるいはお気に入りのエミュレーションのファイルの編集だけです。 まずは /usr/lib/joe にあるシステム全体の設定ファイルから 見るとよいでしょう。そして、4 番目のセクション(キー割り当て)を探してく ださい。Home キーと End キーを有効にする設定は以下のようになります:

bol ^[ [ 1 ~    Go to beginning of line
eol ^[ [ 4 ~    Go to end of line

使いたいエスケープシーケンスを調べるには、cat を実行してから その特殊キーを押します。

4.6 jed(1)

これは私のお気に入りのエディタです。動作が軽くて、emacs よ りも設定が簡単で、他のエディタを忠実にエミュレートしてくれるという、ま さに私の求めていたものです。 私の大学でも、VMS のシステムエディタ EDT をエミュレートするために、 多くのユーザが jed を使っています。

jed の設定ファイルは、.jedrc と /usr/lib/jed/lib/* で、前者は後者の jed.rc を利 用して作ることができます。

4.7 pine(1)

/usr/lib/pine.conf にある全体の設定を編集してください。そ の際には、少なくとも以下のフィールドに注意してください: user-domain, smtp-server, nntp-serverinbox-path はお使いの MTA によって異なる点に注意してください。 sendmailpostfix を使っている場合には、パスは var/spool/mail/$USER になるでしょう。Qmail の場合には /home/$USER/Mailbox となります(ただし root ユーザは /var/qmail/alias/Mailbox を使います)。

4.8 minicom(1)

root が全体の設定ファイルを用意しない限り、ユーザは minicom を使えません。設定ファイルの作成を忘れないようにしましょう。

4.9 efax(1)

このパッケージは簡単なファックスのやりとりにはもっとも便利でしょう。 /usr/bin/fax スクリプトを少し変える必要があるかもしれません。 大した仕事ではありませんが、頭の痛い部分もあります:

これが終わったら、root 以外のユーザでもファックスの送受信をできるよう にするために、いくつかのパーミッションを変更します。ディレクトリ /var/lock と /var/spool/fax は書き込み可能で なければなりません。書き込み可能にするには、グループ faxusers を作成し、このグループにユーザを追加し、以下のコマンドを実行します:

~# chown root.faxusers /var/lock
~# mkdir /var/spool/fax
~# chown root.faxusers /var/spool/fax; chmod g+w /var/spool/fax

4.10 Ghostscript

この重要なツールは、ちょっとした障害の影響を受けます。アメリカ合衆国 の有名な輸出制限のため、pdf2ps は暗号化された .pdf ファイルに 対して動作しないのです。ですが心配することはありません: WWW ブラウザで http://www.ozemail.com.au/~geoffk/pdfencrypt に行き、 pdf_sec.ps をダウンロードし、これを Ghostscript の配布に含ま れている同名のファイルと差し替えてください。

4.11 TeX とその仲間たち

teTeX を持っていると仮定します。

4.12 PPPで問題を起こさないために

あなたのカーネルに、PPP と TCP/IP がサポートされており、 ループバック デバイスが使えるようになっていて、pppd パッケージが正しくイン ストールされ、root に suid されているとします。 もちろん、お使いのプロバイダが PPP をサポートしていなければなりません。

PPP を動かすには2つの方法があります。a) 手で設定する方法と、 b) 魔法のように自動的に設定を行ってくれるプログラムを利用する方法です。 どちらにしても、以下の情報は必要です:

手動での設定は厄介な作業です。厄介なのはファイルの編集やスクリプトの記 述の部分です。これは大した作業ではないのですが、間違いを起こしやすく、 多くの場合、初心者にはとっつきにくい作業です。PPP-HOWTO は用意されてい ますが、これ以外にも上の情報を尋ねてきて、後は自動でやってくれるツー ルがあります。

Gnome と KDE にはそれぞれ gnome-pppkppp というツー ルが付属しており、これを使って簡単に設定を行えます。これ以外にも、 2 つの tty ベースのツールをお勧めしておきます。 wvdialeznet です。 これらのプログラムに ISP の電話番号、あなたの名前、パスワードを与えれ ば PPP が使えます。ホームページは http://www.worldvisions.ca/wvdialhttp://www.hwaci.com/sw/eznet です。どちらも良いツールです が、筆者は後者のほうが好みです。

すぐ使える eznet

まず最初に、以下のような /etc/resolv.conf を作成します:

nameserver w.x.y.z

ここには、あなたのプロバイダのネームサーバのアドレスを入力してください。 eznetを用いてアカウントを作成するには、以下のコマンドを実行し てください:

#~ eznet add service=YOUR_ISP user=NAME password=PASSWORD phone=PHONE

これにより /var/eznet/eznet.conf が作成されます。所有者は root.root でパーミッションは 600 です。誰でも読めるようにしたければ、 666 に chmod してください。それから eznet up YOUR_ISP として ISP に電話をかけてください。電話がずっとダイアルトーンを待っていて接続 しないようであれば、以下のコマンドを試してください:

#~ eznet change YOUR_ISP init0=atx3

電話を切るには eznet down コマンドを使います。たったこれだけ です!

すぐ使える wvdial

wvdialの設定はもっと早く終わります。 wvdialconf /etc/wvdial.conf を実行し、これが出力するファイル を編集してユーザ名、パスワード、電話番号を書き込みます。そして wvdial を試しに実行してから、十字を切って祈ります。電話を切る には、Ctrl-C でプログラムを止めます。

4.13 POP クライアント

POP サーバからメールを取り込むには、fetchpopfetchmail などの POP クライアントを使います。後者の方が機能は 優れていますが、sendmail が動作している必要があります。 これは性能の低いマシンでは、少し負担になります。どちらのソフトウェアも ftp://metalab.unc.edu/pub/Linux/system/mail/pop から入手できます。

これらのクライアントは以下のように設定します:

4.14 X ウィンドウシステム(XFree86)

X サーバの設定

さあ始めましょう。昔ほどは難しくありませんから…。 全てのメジャーなディストリビューションには X11を設定 するためのツール が入っています (例えば XConfigurator, sax, XF86Setup。少なくとも xf86configくらいは入っています)。 最近では X の設定は事実上自動ですが、うまく行かないビデオカードもいく つかあるようです。私の場合、X の設定で問題が出たときには、必ず動く 単純な方法を使っています:

私の場合にはこれで今までうまく行っていますが、あなたの場合にはそうでな いかもしれません。X11 が起動しないのは多くの場合、モニタに対して選んだ スペックが高すぎる(!)ことが理由なのを覚えておいてください。 最初は 800x600 ドット 256 色などの安全側に寄った設定から始め、そこから 設定を上げていきましょう。警告: これらの操作は危険であり、 モニタを壊してしまうかもしれません。

テンキー

これまで、いくつかの特殊キーを動作させるやり方をいくつか見てきました。 サンプルの .Xmodmap は Xjed ではちゃんと使えますが、テンキー は使えません。下に示す .Xmodmap.num というもう一つの設定ファ イルが必要です:

! Definitions can be found in <X11/keysymdef.h>

keycode 77  = Num_Lock
keycode 112 = KP_Divide
keycode 63  = KP_Multiply
keycode 82  = KP_Subtract
keycode 86  = KP_Add
keycode 79  = KP_7
keycode 80  = KP_8
keycode 81  = KP_9
keycode 83  = KP_4
keycode 84  = KP_5
keycode 85  = KP_6
keycode 87  = KP_1
keycode 88  = KP_2
keycode 89  = KP_3
keycode 90  = KP_0
keycode 91  = KP_Decimal

/etc/X11/XF86Configに以下の 3 行がないことを確認してください:

  ServerNumLock
  Xleds
  XkbDisable

もしあったら、コメントアウトしてください。テンキーを再び利用可能にする には、xmodmap .Xmodmap.num を実行してください。

xdm を使ったグラフィカルなログイン

グラフィカルログインを使いたいなら、/etc/inittab を編集してください。 以下のような行があるはずです:

x:5:respawn:/usr/bin/X11/xdm -nodaemon

ここで、5 は X11 に対応するランレベルです(S.u.S.E の場合は 4 です)。 デフォルトランレベルの定義(通常 2 か 3)をこのランレベルに修正します:

id:5:initdefault:

色数は /etc/X11/xdm/Xserver で指定されています:

:0 local /usr/X11R6/bin/X :0 -bpp 16 vt07  # first X server, 65k colours
:1 local /usr/X11R6/bin/X :1 -bpp 32 vt08  # second X server, true colour

もし既に .xinitrc があるなら、.xsession にコピーし、 chmod +x .xsession として実行可能にしてください。 ここで、telinit 5 を実行すれば、うまく動作するはずです。

ウィンドウマネージャ

X が動くようになったら、その先の設定には無限の可能性があります。設定の 可能性は利用するウィンドウマネージャによります。選べるウィンドウマネー ジャは何十個もあります。多くの場合は、ホームディレクトリにある 1 つあ るいは複数の ASCII ファイルを編集することになります。場合によっては、 こういった編集の必要はなく、アプレットやメニューを使います。

例をいくつか挙げます:

まとめ: 設定ファイルの編集が苦でないなら icewm, fvwm*, blackbox など、そうでないなら今のところは KDE や Gnome, WindowMaker, XFCE がよいでしょう。

更に、.xinitrc が適切であることも重要です。以下に例を示します:

#!/bin/sh
# $HOME/.xinitrc

usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap

xset s noblank  # turn off the screen saver
xset s 300 2    # screen saver start after 5 min
xset m 10 5     # set mouse acceleration

rxvt -cr green -ls -bg black -fg white -fn 7x14 \
  -geometry 80x30+57+0 &

if [ "$1" = "" ] ; then  # default
  WINMGR=wmaker
else
  WINMGR=$1
fi

$WINMGR

絶対に必要なわけではありませんが、chmod +x .xinitrc として実行可能にしておきます。

この.xinitrc でウィンドウマネージャが選択されます:

$ startx startkde # or other w.m.

(ただし、一部のバージョンの S.u.S.E では動作しません。)

X11 アプリケーションのデフォルト値

app-defaults ディレクトリがある場所を見つけてください(こ れは /usr/X11R6/lib/X11/app-defaults のはずです)。ここに 設定ファイルがあるアプリケーションがいくつかあります。

4.15 ユーザごとの設定

ソフトウェアの設定の節でやったように、ドット ファイルの編集が終ったら /etc/skel にコピーしてください。

4.16 .rpm の作成

rpm は、.tar.gz アーカイブからのインストールは面倒だけど、 非常に特殊なケース(例えばセキュリティ)に含まれるパッケージを管理する 方法としてはとても優れています。tar アーカイブをインストールする場合は、 これを .rpm アーカイブに変換してからインストールすることを考慮しましょ う。その方法については RPM HOWTO をご覧ください。また、 egcspgcc といった最近のバージョンの gcc を使う場合は、以下の設定を /etc/rpmrc に入れておくとよいかも しれません:

optflags: i386 -O2 -mpentium

4.17 アップグレード

マシンのアップグレードをする時には、通常通りのバックアップに加えて、 いくつかのファイルを保存しておくようにしてください。 /etc/X11/XF86Config, /usr/bin/fax, /usr/local 内の全て、カーネルの設定ファイル、 /etc 全部、/var/spool/mail 内の全てのメール 等です。

それから、ディストリビューションの付属のアプリケーションのアップグレード (たまにダウングレードのことも!)やパッケージの追加を行います。 扱ったパッケージのリストは保存しましょう。


次のページ 前のページ 目次へ