[ITPASS2017]パスの設定

[ITPASSサーバ構築・運用ドキュメント へ戻る]

概要

サーバ再構築作業では, 様々なソフトウェア (bind, apache, qmail など) をインストールすることになる. ソフトウェアをインストールしたディレクトリは, 各ユーザのパスにデフォルトで設定されているとは限らない. そこで, 今後, ソフトウェアをインストールした際には, 下に示す方法に従って, システムが持っているシェルの設定ファイルに, ソフトウェアインストール先のパスを追記しておく.

注意: つまり, このページは各ソフトウェアのインストール後の設定の中で, パスを設定する必要があるときに参照する. OS インストール直後に実行することはない.

以下では, 環境変数 PATH や man に関する環境変数 (MANDATORY_MANPATH, MANPATH_MAP, MANDB_MAP) に関して, システム側でデフォルト値を設定する方法について記す.

環境変数 PATH は, 使用するシェル毎に異なった設定ファイルから読み込まれる.

なお, ITPASS サーバでは管理者アカウントを利用する際に, sudo を 用いることを前提としているため, 多少冗長に設定を行っている部分がある.

各シェルの設定

以下に従い, <一般ユーザ用コマンドのパス>, <システム管理用コマンドのパス> の部分に PATH に追加したいパスを書き加えること.

sh, bash

/etc/bash.bashrc の冒頭に以下の記述を追加する.

# add PATH for local installed softwares
PATH="${PATH}:<一般ユーザ用コマンドのパス>"
# add PATH for local installed softwares (for root)
if [ "`id -u`" -eq 0 ]; then
PATH="${PATH}:<システム管理用コマンドのパス>"
fi

export PATH

csh,tcsh

csh, tcsh がインストールされていない場合があるので, apt-get で install を試みる.

# apt-get install csh tcsh

インストールされていればその旨のメッセージが表示される.

/etc/csh/cshrc.cshrc (デフォルトでこのファイルが無ければ作成する)の冒頭に以下の記述を追加する.

# add PATH for local installed softwares
set path = ($path /usr/local/bin /usr/bin /bin <一般ユーザ用コマンドのパス>)
# add PATH for local installed softwares (for root)
if ( "`id -u`" == 0 ) then
set path = ($path /usr/local/sbin /usr/sbin /sbin <システム管理用コマンドのパス>)
endif

zsh

zsh が入っていない場合があるので, apt-get で install しておく.

# apt-get install zsh

インストールされていればその旨のメッセージが表示される.

/etc/zsh/zshenv (デフォルトでこのファイルが無ければ作成する)に以下の記述を追加する.

#
# This file should contain commands to set the command
# search path, plus other important environment variables.
# This file should not contain commands that produce
# output or assume the shell is attached to a tty.
#
# Global Order: zshenv, zprofile, zshrc, zlogin

if [[ -z "$PATH" || "$PATH" == "/bin:/usr/bin" ]]
then
        export PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
fi

# add PATH for local installed softwares
export PATH="$PATH:<一般ユーザ用コマンドのパス>"

# add PATH for local installed softwares (for root)
if [ "`id -u`" -eq 0 ]; then
        export PATH="$PATH:<システム管理用コマンドのパス>"
fi

# delete duplicated path setting
typeset -U path 

man 関連のパスの設定

man に関連するパスの設定は /etc/manpath.config にて行う. 設定する環境変数としては,

  • MANDATORY_MANPATH
  • MANPATH_MAP
  • MANDB_MAP

があり, 以下のように設定値を記述する (manpath.config ファイルの冒頭部参照).

MANDATORY_MANPATH                     manpath_element
MANPATH_MAP           path_element    manpath_element
MANDB_MAP             global_manpath  [relative_catpath]

例えば, Apache2 に関する man 形式のマニュアルが以下のように配置されて いたとする.

$ tree /usr/local/apache2/man/

/usr/local/apache2/man/
|-- man1/
|   |-- dbmmanage.1
|   |-- htdbm.1
|   |-- htdigest.1
|   `-- htpasswd.1
`-- man8/
    |-- ab.8
    |-- apachectl.8
    |-- apxs.8
    |-- htcacheclean.8
    |-- httpd.8
    |-- logresolve.8
    |-- rotatelogs.8
    `-- suexec.8

この場合, それぞれの環境変数に関して, 以下のような記述を /etc/manpath.config に記述すると良い.

MANDATORY_MANPATH                          /usr/local/apache2/man
MANPATH_MAP        /usr/local/apache2/bin  /usr/local/apache2/man
MANDB_MAP          /usr/local/apache2/man  /usr/local/apache2/man

[ITPASSサーバ構築・運用ドキュメント へ戻る]