Linuxのディストリビューションを判定する - lisp-cookbook-ja/common-lisp GitHub Wiki
Linuxのディストリビューションごとにリリースバージョンを格納したファイルがそれぞれ固有のファイル名で存在するようですので、これらのファイルを検出することで判定が可能でしょう。
定義例
(defvar *distro-alist*
'((:SuSE
"/etc/SuSE-release")
(:redhat
"/etc/redhat-release"
"/etc/redhat_version")
(:fedora
"/etc/fedora-release")
(:slackware
"/etc/slackware-release"
"/etc/slackware-version")
(:debian
"/etc/debian_release"
"/etc/debian_version"
"/etc/os-release")
(:mandrake
"/etc/mandrake-release")
(:yellowdog
"/etc/yellowdog-release")
(:gentoo
"/etc/gentoo-release")))
(defun detect-distro ()
(car (or (find-if (lambda (x)
(find-if #'probe-file (cdr x)))
*distro-alist*)
'(:unknown))))
動作
(detect-distro)
;=> :debian