AlpineLinux 3.8: シェルのbashをインストールする

busyboxの/bin/ashからbashを使う手順をインストールします。

1 bashのインストール

  • bashとbash-completionをインストールします。
  • 既存のユーザのSHELLを/bin/ashから/bin/bashに変更します。
  • byobuのように~/.profileや/etc/profile.dを読み込まずに直接~/.bashrc をロードするアプリケーションの為にPS1を~/.bashrcで設定します。
  • ~/.profileからも~/.bashrcをロードするようにします。
#!/bin/sh -e


# Install bash and bash-completion.
sudo apk add bash bash-completion

# Change shell of existing users.
sudo sed -e 's;/bin/ash$;/bin/bash;g' -i /etc/passwd

# Create ~/.bashrc and add PS1 setting.
# Some application like byobu loads ~/.bashrc directly.
cat <<EOF > ~/.bashrc
PS1="\[\e[1;32m\]\u@\h:\[\e[0m\]\w\[\e[1;32m\]$ \[\e[0m\]"
EOF

# Make ~/.profile to load ~/.bashrc.
cat <<EOF >> ~/.profile
if [ "\${SHELL}x" = "/bin/bashx" ]; then
  if [ -f "\${HOME}/.bashrc" ]; then
    . "\${HOME}/.bashrc"
  fi
fi
EOF

2 実行結果

0001_bash.png