QNAPのOSであるQTS
Linuxとしてみた場合、Linux Kernel + BusyBox + Bash + いろいろ
なのでホームディレクトリーを他のLinux/Unix系OSと共有した場合は.profile
, .bash_profile
などでの工夫が必要。
ディストロ判別方法
/etc/os-release
NAME="QTS"
VERSION="5.1.7 (20240520)"
ID=qts
PRETTY_NAME="QTS 5.1.7 (20240520)"
VERSION_ID="5.1.7"
上記を参考に次の様な感じで判別できる。
if [[ -f /etc/os-release ]]; then
source /etc/os-release
if [ $ID = "qts" ]; then
echo "QNAP/QTS"
fi
fi
BusyBox対応
上記に書いた通りBusyBoxなのだが、BusyBoxに内包されているコマンドへのリンクが貼られておらず、実行できないコマンドがある。例えば代表的なものだとless
など。
$ which tail
/usr/bin/tail
$ ls -l /usr/bin/tail
lrwxrwxrwx 1 admin administ 12 Jul 15 04:03 /usr/bin/tail -> /bin/busybox*
$ ls -l /usr/bin/less
ls: /usr/bin/less: No such file or directory
シンボリックリンク等をroot権限でシステム上に行っても良いが、今後のバージョンアップでどうなるかわからないのでエイリアスで対応する。BusyBox内に組み込まれたコマンドはbusybox function
で実行可能。
~/.profile
if [[ -f /etc/os-release ]]; then
source /etc/os-release
if [ $ID = "qts" ]; then
alias less='busybox less'
alias fold='busybox fold'
# 他にも色々必要なやつを
fi
fi