もう1つのヒューリスティックは、現在実行中のOSのパッケージのソースを確認することです。
単純な(そしておそらくエラーが発生しやすい)バリアント:
fgrep -r /debian/ /etc/apt/sources.list \
| egrep -v '^ *#' \
| awk '{print $3}' \
| egrep -v '[-/]' \
| uniq
より信頼できる方法は、apt-cache policy(追加のパラメーターなしで)の出力から詳細を解析することです。
apt-cache policy \
| fgrep o=Debian, \
| fgrep ,l=Debian, \
| fgrep ,c=main, \
| awk -F '[,=]' '{print $6}'
apt-cache policyローカルシステムで使用中のすべてのAPTリポジトリを一覧表示します。Debianに由来するものDebian(つまり、ラベルが付いていないものDebian debug)を除外し、メインアーカイブ(contribまたは以外non-free)のみを調べて、対応する値を選択します。
さらに安定したアプローチは、要素の順序に依存せずn=、残りの行で値を見つけることです。
apt-cache policy \
| fgrep o=Debian, \
| fgrep ,l=Debian, \
| fgrep ,c=main, \
| egrep -o 'n=[^, ]*' \
| awk -F= '{print $2}'
さらに別の可能性は、/var/lib/apt/lists/*Releaseファイルを解析せずに自分で解析することapt-cacheです。
egrep -l '^Origin: Debian$' /var/lib/apt/lists/*Release \
| xargs egrep -l '^Label: Debian$' \
| xargs egrep -L 'Codename: .*-' \
| xargs fgrep Codename \
| awk '{print $2}'
lsb_release