ブログ

環境変数の定義

at_takuya.sasaki
2014年6月5日 14時43分

Armadilloにログインした際に、設定される環境変数はどこで設定されているのか?を Armadillo-840を例に簡単にですが説明します。

Armadillo-840にログインして環境変数を見てみます。

[root@armadillo840-0 (ttySC2) ~]# env
USER=root
HOSTNAME=armadillo840-0
LD_LIBRARY_PATH=/opt/firmware/sgx/linux/armhf
OLDPWD=/root
HOME=/root
PS1=[\u@\h (ttySC2) \w]\$
QML2_IMPORT_PATH=/lib/qt5/qml
VISUAL=vi
LOGNAME=root
TERM=vt102
PATH=/bin:/usr/bin:/sbin:/usr/sbin
HISTSIZE=1000
SHELL=/bin/ash
GST_PLUGIN_SCANNER_1_0=/usr/lib/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner
PWD=/root
QT_PLUGIN_PATH=/lib/qt5/plugins
GST_PLUGIN_SYSTEM_PATH_1_0=/usr/lib/gstreamer-1.0
TZ=JST-9
EDITOR=vi

上記のようにいくつかの環境変数が設定されているのがわかります。 では、これはどのように設定されているのかというと、 ログイン時に自動的に/etc/profileを読み込んでおり、そこで定義されています。

[root@armadillo840-0 (ttySC2) ~]# cat /etc/profile
# /etc/profile
 
alias ll="ls -lF"
alias ls="ls -F"
alias rm="rm -i"
 
TZ=JST-9
 
PATH="/bin:/usr/bin:/sbin:/usr/sbin"
PS1="[\u@\h (`tty | cut -b6-`) \w]\\$ "
 
ulimit -c 0
if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
        umask 002
else
        umask 022
fi
 
USER=`id -un`
LOGNAME=$USER
 
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
 
EDITOR=vi
VISUAL=vi
 
export TZ PATH PS1 USER LOGNAME HOSTNAME HISTSIZE EDITOR VISUAL
 
for i in /etc/profile.d/*.sh ; do
        if [ -x $i ]; then
                . $i
        fi
done
 
unset i
 
LD_LIBRARY_PATH=/opt/firmware/sgx/linux/armhf
export LD_LIBRARY_PATH

ここで、/etc/profile.d配下のshファイルを探して実行しているのがわかります。 Armadillo-840のデフォルトイメージでは、以下の2つのshが用意されています。

[root@armadillo840-0 (ttySC2) ~]# ls -1 /etc/profile.d/
gst1_0_env.sh*
qt5_env.sh*

ここに新しく環境変数をexportするshを追加するようにユーザーランドを再作成することで、 ログイン時に読み込まれる環境変数を追加することも可能です。