星期四, 3月 05, 2015

在 shell script 判別發行套件

一般來說,可以用 lsb_release -i ,但是如果沒安裝 lsb-release 的話,就不會有這個指令可以用;uname 只會提供架構、核心版本等資訊;/etc/issues 的話,每個發行套件對這個檔案的內容都不盡相同,難以用規則來解析。
這 時候倒是可以利用 /etc/os-release ,我檢查了 Arch Linux、Ubuntu、Raspbian、Debian 幾個發行套件,發現都會有這個檔案。在檔案裡,就有不少資訊可供判別,至少都會有 ID 跟 NAME ,有些則會多了 ID_LIKE 。
  • ID 是標識,以 Ubuntu 為例,ID=ubuntu
  • NAME 是發行套件名稱,以 Ubuntu 為例,NAME="Ubuntu"
  • ID_LIKE 是描述從哪個發行套件繁衍出來的,以 Ubuntu 為例,ID_LIKE=debian
透過 . /etc/os-release 或 source /etc/os-release ,就可以藉著使用 ID、NAME、ID_LIKE 這些變數來判別發行套件了。
參考自:command line - How to get Ubuntu distribution's full code name? - Ask Ubuntu

沒有留言: