IT pass HikiWiki - [Memo2018][ITPASS]パスの設定 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc}}
[((<ITPASS[((<[ITPASS2018]2018年度サーバ構築・運用ドキュメントログ>)) へ戻る]
#== 概要
#
#環境変数 PATH や man に関する環境変数
#(MANDATORY_MANPATH, MANPATH_MAP, MANDB_MAP) に関して,
#システム側でデフォルト値を設定する方法について記す.
#
#((*注意: このページは各プログラムの設定の中で,
#パスを設定する必要があるときに参照すること.*))
#
#環境変数 PATH は, 使用するシェル毎に異なった設定ファイルから読み込まれる.
#
#なお, ITPASS サーバでは管理者アカウントを利用する際に, sudo を
#用いることを前提としているため, 多少冗長に設定を行っている部分がある.
== 概要
サーバ再構築作業では, 様々なソフトウェア (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 #もし csh がインストールされていない場合があるので, 入っていない場合は apt-get で install を試みるしておく.
#csh, tcsh がインストールされていなかったため, インストールした.
# # apt-get install csh tcsh
インストールされていればその旨のメッセージが表示される.
/etc/csh/cshrc.cshrc (デフォルトでこのファイルが無ければ作成する)の((*冒頭*))に以下の下の記述を追加する確認した.
/etc/csh/cshrc はなかった.
また, 作業は行わなかった.
/etc/csh/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#zsh がインストールされていなかったため, インストールした.
インストールされていればその旨のメッセージが表示される.# # 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[((<[ITPASS2018]2018年度サーバ構築・運用ドキュメントログ>)) へ戻る]
#== 概要
#
#環境変数 PATH や man に関する環境変数
#(MANDATORY_MANPATH, MANPATH_MAP, MANDB_MAP) に関して,
#システム側でデフォルト値を設定する方法について記す.
#
#((*注意: このページは各プログラムの設定の中で,
#パスを設定する必要があるときに参照すること.*))
#
#環境変数 PATH は, 使用するシェル毎に異なった設定ファイルから読み込まれる.
#
#なお, ITPASS サーバでは管理者アカウントを利用する際に, sudo を
#用いることを前提としているため, 多少冗長に設定を行っている部分がある.
サーバ再構築作業では, 様々なソフトウェア (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 がインストールされていなかったため, インストールした.
/etc/csh/cshrc はなかった.
また, 作業は行わなかった.
/etc/csh/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 が入っていない
下の記述を確認した. 作業は行わなかった.
/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